ansible-playbook unarchive模塊


先 進行  pause模塊的 記錄:

pause

在playbook執行的過程中暫停一定時間或者提示用戶進行某些操作

常用參數:

minutes:暫停多少分鍾

seconds:暫停多少秒

prompt:打印一串信息提示用戶操作

示例:

 - name: wait on user input

   pause: prompt="Warning! Detected slight issue. ENTER to continue CTRL-C a to quit" 

- name: timed wait

  pause: seconds=30
wait_for

在playbook的執行過程中,等待某些操作完成以后再進行后續操作

常用參數:

connect_timeout:在下一個任務執行之前等待連接的超時時間

delay:等待一個端口或者文件或者連接到指定的狀態時,默認超時時間為300秒,在這等待的300s的時間里,wait_for模塊會一直輪詢指定的對象是否到達指定的狀態,delay即為多長時間輪詢一次狀態。

host:wait_for模塊等待的主機的地址,默認為127.0.0.1

port:wait_for模塊待待的主機的端口

path:文件路徑,只有當這個文件存在時,下一任務才開始執行,即等待該文件創建完成

state:等待的狀態,即等待的文件或端口或者連接狀態達到指定的狀態時,下一個任務開始執行。當等的對象為端口時,狀態有started,stoped,即端口已經監聽或者端口已經關閉;當等待的對象為文件時,狀態有present或者started,absent,即文件已創建或者刪除;當等待的對象為一個連接時,狀態有drained,即連接已建立。默認為started

timeout:wait_for的等待的超時時間,默認為300秒

示例:

- wait_for: port=8080 state=started     #等待8080端口已正常監聽,才開始下一個任務,直到超時

- wait_for: port=8000 delay=10    #等待8000端口正常監聽,每隔10s檢查一次,直至等待超時

- wait_for: host=0.0.0.0 port=8000 delay=10 state=drained    #等待8000端口直至有連接建立

- wait_for: host=0.0.0.0 port=8000 state=drained exclude_hosts=10.2.1.2,10.2.1.3    #等待8000端口有連接建立,如果連接來自10.2.1.2或者10.2.1.3,則忽略。

- wait_for: path=/tmp/foo    #等待/tmp/foo文件已創建

- wait_for: path=/tmp/foo search_regex=completed    #等待/tmp/foo文件已創建,而且該文件中需要包含completed字符串

- wait_for: path=/var/lock/file.lock state=absent    #等待/var/lock/file.lock被刪除

- wait_for: path=/proc/3466/status state=absent        #等待指定的進程被銷毀

- local_action: wait_for port=22 host="{{ ansible_ssh_host | default(inventory_hostname) }}" search_regex=OpenSSH delay=10    #等待openssh啟動,10s檢查一次
add_host

在playbook執行的過程中,動態的添加主機到指定的主機組中

常用參數:

groups:添加主機至指定的組

name:要添加的主機名或IP地址

示例:

- name: add a host to group webservers

  hosts: webservers

  tasks:

    - add_host name={{ ip_from_ec2 }} group=webservers foo=42    #添加主機到webservers組中,主機的變量foo的值為42
group_by

在playbook執行的過程中,動態的創建主機組

示例:

- name: Create operating system group

  hosts: all

  tasks:

    - group_by: key=os_{{ ansible_distribution }}           #在playbook中設置一個新的主機組

 

- name: Run on CentOS hosts only

  hosts: os_CentOS

  tasks:

    - name: Install Apache

      yum: name=httpd state=latest

 

- name: Run on Ubuntu hosts only

  hosts: os_Ubuntu

  tasks:

    - name: Install Apache

      apt: pkg=apache2 state=latest
fail

用於終止當前playbook的執行,通常與條件語句組合使用,當滿足條件時,終止當前play的運行。可以直接由failed_when取代。

選項只有一個:

msg:終止前打印出信息

示例:

- fail: msg="The system may not be provisioned according to the CMDB status."
  when: cmdb_status != "to-be-staged"
unarchive模塊
用於解壓文件,模塊包含如下選項:
    copy:在解壓文件之前,是否先將文件復制到遠程主機,默認為yes。若為no,則要求目標主機上壓縮包必須存在。
    creates:指定一個文件名,當該文件存在時,則解壓指令不執行
    dest:遠程主機上的一個路徑,即文件解壓的路徑 
    grop:解壓后的目錄或文件的屬組
    list_files:如果為yes,則會列出壓縮包里的文件,默認為no,2.0版本新增的選項
    mode:解決后文件的權限
    src:如果copy為yes,則需要指定壓縮文件的源路徑 
    owner:解壓后文件或目錄的屬主
示例如下:
    - unarchive: src=foo.tgz dest=/var/lib/foo
    - unarchive: src=/tmp/foo.zip dest=/usr/local/bin copy=no
    - unarchive: src=https://example.com/example.zip dest=/usr/local/bin copy=no

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM