bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

Asible學習筆記--常用模塊(三)-創新互聯

Ansible常用模塊

本節包括的模塊:

創新互聯公司堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網站設計、成都網站制作、企業官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯網時代的滿城網站設計、移動媒體設計的需求,幫助企業找到有效的互聯網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!

(1)定時任務模塊cronvar

(2)歸檔模塊archive

(3)解包模塊unarchive

(4)下載模塊get_url

(5)wait_for模塊

(6)script模塊

定時任務模塊cronvar

除了 cron 模塊本身可以管理 cron 的環境變量,另一個模塊 cronvar 也可以定義定時任務的環境變量。

cronvar--Ansible官方使用說明文檔

ansible-doc -s cronvar
- name: Manage variables in crontabs
  cronvar:
      backup:     # (yes/no)如果設置了,則會在修改遠程cron_file前備份這些文件
      cron_file:  # 自定義cron_file的文件名,使用相對路徑則表示在/etc/cron.d中
      state:      # present用于創建變量,absent用于移除變量
      user:       # 指定哪個用戶的crontab將要被修改,默認為root
      value:      # 環境變量的值,要求state=present

(1)例如:創建一個job,每2分鐘進行一次時間同步,并且自定義cron_file。

ansible test -m cron -a 'name="ntpdate" job="/usr/sbin/ntpdate ntp1.aliyun.com" cron_file=ntpdate_cron user=root minute=*/2' -o -f 8

驗證是否添加正確。

ansible test -m shell -a 'cat /etc/cron.d/ntpdate_cron'

192.168.246.187 | CHANGED | rc=0 >>
#Ansible: ntpdate
*/2 * * * * root /usr/sbin/ntpdate ntp1.aliyun.com

(2)移除一個job,要求name必須匹配。如有必要,需要同時指定cron_file和user。

ansible test -m cron -a 'name="ntpdate" state=absent cron_file=ntpdate_cron user=root' -o # /etc/cron.d/ntpdate_cron這個文件還是存在的(內容為空)

歸檔模塊archive

用于在遠端壓縮文件。當然,前提是在遠端主機上要有對應的壓縮工具。支持zip/gz/tar/bz2。

archive--Ansible官方使用說明文檔

ansible-doc -s archive
- name: Creates a compressed archive of one or more files or trees
  archive:
      dest:   # 目標歸檔文件名。除非path指定要壓縮的是單文件,否則需要dest選項
      format: # 指定壓縮格式,默認為gz格式
      group:  # 文件/目錄的所屬組
      owner:  # 文件/目錄的所有者
      mode:   # 設置文件/目錄的的權限,支持'0644'或'u+rwx'或'u=rw,g=r,o=r'等格式
      path:   # 要壓縮的文件,可以是絕對路徑,也可以是glob統配的路徑,還可以是文件列表
      remove: # 壓縮后刪除源文件

示例如下:

(1)將文件壓縮成默認的gz格式,由于path指定要壓縮的是單文件,所以可不使用dest:

ansible test -m archive -a 'path="/tmp/mu.txt"'

說明??:gz后綴壓縮包的解壓命令:gzip -d mu.txt.gz

(2)將目錄/path/to/foo/壓縮為/path/to/foo.tgz:

ansible test -m archive -a 'path="/tmp/xyz" dest=/tmp/xyz.tgz'

(3)將單文件/path/to/foo壓縮為zip格式:

ansible test -m archive -a 'path="/tmp/mu.txt" format=zip'

說明??:zip后綴壓縮包的解壓命令:unzip mu.txt.zip

(4)將給定的文件列表壓縮為bz2格式,壓縮包路徑為/path/file.tar.bz2:

- name: Create a bz2 archive of multiple files, rooted at /path
  archive:
    path:
    - /path/to/foo
    - /path/wong/foo
    dest: /path/file.tar.bz2
    format: bz2

解包模塊unarchive

默認復制ansible端的歸檔文件到被控主機,然后在被控主機上進行解包。如果設置選項remote_src=yes,則表示解包被控主機上的歸檔文件。

要求在被控主機上有對應的解包命令。unzip命令用于解壓".zip"文件,gtar(tar包提供)命令用于解壓".tar"、 ".tar.gz "、".tar.bz 2"和".tar.xz "。

unarchive--Ansible官方使用說明文檔

ansible-doc -s unarchive
- name: Unpacks an archive after (optionally) copying it from the local machine.
  unarchive:
      creates:         # 如果指定的文件存在則不執行該任務。可用于實現冪等性
      dest:            # 遠程機器上需要被解包的歸檔文件,要求是絕對路徑
      exclude:         # 列出解包過程中想要忽略的目錄和文件
      group:           # 文件/目錄的所屬組
      owner:           # 文件/目錄的所有者
      mode:            # 設置文件/目錄的的權限,支持'0644'或'u+rwx'或'u=rw,g=r,o=r'等格式
      keep_newer:      # 在解包過程中,如果目標路徑中和包中有同名文件,且比包中的文件更新,則保留新的文件
      list_files:      # 設置為true時,將返回歸檔文件中的文件列表
      remote_src:      # 設置為yes表示遠程主機上已有目標歸檔文件,即不再從本地復制歸檔文件到遠端,直接在遠端解包。
                       # 默認為no
      src:             # 如果remote_src=no,將復制本地歸檔文件到遠端,可相對路徑也可絕對路徑.
                       # 如果remote_src=yes, 將解包遠程已存在的歸檔文件
                       # 如果remote_src=yes且src中包含了"://",將指揮遠程主機從url中下載文件并解包

下載模塊get_url

get_url--Ansible官方使用說明文檔

ansible-doc -s get_url
- name: Downloads files from HTTP, HTTPS, or FTP to node
  get_url:
      backup:     # 下載文件時同時創建一個名稱中包含時間戳的備份文件
      dest:       # 文件保存路徑,必須為絕對路徑。
                  # 如果dest是一個目錄,則使用url的base name作為文件名
                  # 如果dest是一個目錄,則'force'選項不生效
                  # 如果dest是一個目錄,則總是會下載目標文件,但只在已存在的文件變化了才會替換舊文件
      force:      # 如果設置為yes,且dest不是一個目錄時,則總是會下載文件,但只在已存在的文件變化了才會替換舊文件
                  # 如果設置為no(默認),則只會在目錄路徑下不存在該文件時才會進行下載。
      tmp_dest:   # 下載時臨時存放目錄,在任務執行完成前會刪除下載的臨時文件
      group:      # 文件/目錄的所屬組
      owner:      # 文件/目錄的所有者
      mode:       # 設置文件/目錄的的權限,支持'0644'或'u+rwx'或'u=rw,g=r,o=r'等格式
      timeout:    # 請求url時的超時時間,默認10秒鐘
      url:        # 要下載的url路徑,(http|https|ftp)://[user[:pass]]@host.domain[:port]/path
                  # 還支持file格式的路徑,實現復制功能。file:///path/to/file

注意,dest為目錄或者force=yes時,總是會下載文件到臨時存放目錄中,只不過不一定會替換舊文件。只有 force=no(默認)且dest是一個文件時,在文件已存在時才不會下載文件。

示例如下:

(1)下載foo.conf,若/etc/foo.conf已存在,則不下載該文件:

- name: Download foo.conf
  get_url:
    url: http://example.com/path/file.conf
    dest: /etc/foo.conf
    mode: '0440'

wait_for模塊

有些時候任務之間對狀態、文件、端口等資源是有依賴關系的,只有滿足了前提,任務才會繼續。wait_for模塊就是用于判斷任務在滿足什么條件的情況下會繼續。主要用來判斷端口是否開啟、文件是否存在、文件中是否存在某些字符串。

wait_for--Ansible官方使用說明文檔

ansible-doc -s wait_for
- name: Waits for a condition before continuing
  wait_for:
      delay:          # 在檢查操作進行之前等待的秒數
      host:           # 等待這個主機處于啟動狀態,默認為127.0.0.1
      port:           # 等待這個端口已經開放
      path:           # 這個文件是否已經存在
      search_regex:   # 在文件中進行正則匹配
      state:          # present/started/stopped/absent/drained.默認started
                      # 當檢查的是一個端口時:
                      # started:保證端口是開放的
                      # stopped:保證端口是關閉的
                      # 當檢查的是一個文件時:
                      # present/started:在檢查到文件存在才會繼續
                      # absent:檢查到文件被移除后才會繼續
      sleep:          # 兩次檢查之間sleep的秒數,默認1秒
      timeout:        # 檢查的等待超時時間(秒數,默認300)

示例如下:

(1)連接上主機后10秒后才檢查8000端口是否處于開放狀態,300秒(默認值)內未開放則超時。

- name: Wait for port 8000 to become open on the host, don't start checking for 10 seconds
  wait_for:
    port: 8000
    delay: 10

(2)直到/tmp/foo文件存在才會繼續

- name: Wait until the file /tmp/foo is present before continuing
  wait_for:
    path: /tmp/foo

(3)直到/tmp/foo文件中能匹配"completed"字符串才繼續

- name: Wait until the string "completed" is in the file /tmp/foo before continuing
  wait_for:
    path: /tmp/foo
    search_regex: completed

(4)直到/var/lock/file.lock這個鎖文件被移除了才繼續

- name: Wait until the lock file is removed
  wait_for:
    path: /var/lock/file.lock
    state: absent

(5)直到/proc/3466/status文件被移除才繼續,可用來判斷進程是啟動還是停止,pid文件是存在還是被移除等

- name: Wait until the process is finished and pid was destroyed
  wait_for:
    path: /proc/3466/status
    state: absent

script模塊

script模塊用于控制遠程主機執行腳本。在執行腳本前,ansible會將本地腳本傳輸到遠程主機,然后再執行。在執行腳本的時候,其采用的是遠程主機上的shell環境。

script--Ansible官方使用說明文檔

ansible-doc -s script
- name: Runs a local script on a remote node after transferring it
  script:
      chdir:       # 在遠程執行腳本前先切換到此目錄下。
      creates:     # 當此文件存在時,不執行腳本。可用于實現冪等性。
      removes:     # 當此文件不存在時,不執行腳本。可用于實現冪等性。
      free_form:   # 本地待執行的腳本路徑、選項、參數。之所以稱為free_form,是因為它是腳本名+選項+參數。

說明

本博文是參考馬龍帥大佬文章整理生成,屬于博主讀書筆記,如有侵權,請大佬與我聯系,立刪!

最后,感謝開源,擁抱開源~

另外有需要云服務器可以了解下創新互聯cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

當前文章:Asible學習筆記--常用模塊(三)-創新互聯
本文地址:http://vcdvsql.cn/article10/ddhsgo.html

成都網站建設公司_創新互聯,為您提供面包屑導航企業建站Google手機網站建設網站制作虛擬主機

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都網站建設公司