ansible 模塊之在學習(2)

unarchive模塊:http://docs.ansible.com/ansible/unarchive_module.html

功能:解壓縮,這個模塊有兩種用法:

1、將ansible主機上的壓縮包在本地解壓縮後傳到遠程主機上,這種狀況下,copy=yes

2、將遠程主機上的某個壓縮包解壓縮到指定路徑下。這種狀況下,須要設置copy=no


參數:

copy:默認爲yes,當copy=yes,那麼拷貝的文件是從ansible主機複製到遠程主機上的,若是設置爲copy=no,那麼會在遠程主機上尋找src源文件

src:源路徑,能夠是ansible主機上的路徑,也能夠是遠程主機上的路徑,若是是遠程主機上的路徑,則須要設置copy=no

dest:遠程主機上的目標路徑

mode:設置解壓縮後的文件權限


命令演示:

 
ansible pms -m unarchive -a 'src=/srv/tomcat8/apache-tomcat-8.0.29.tar.gz dest=/usr/local copy=no mode=0755'


get_url模塊:http://docs.ansible.com/ansible/get_url_module.html

功能:從http、https、ftp下載文件到遠程主機

參數:

url:下載地址

dest:遠程主機上的目標徑路

mode:設置下載到遠程主機後的文件的權限

 
root@host1:/srv# ansible pms -m get_url -a 'url=ftp://ftp.cheyaoshicorp.com/pub/derby.init.sh dest=/tmp'      
192.168.0.10 | SUCCESS => {
    "changed": true, 
    "checksum_dest": null, 
    "checksum_src": "770a432e9847e594e0154e31c906062585d571e0", 
    "dest": "/tmp/derby.init.sh", 
    "gid": 0, 
    "group": "root", 
    "md5sum": "4564411c7e614859965c9ab5d76df22b", 
    "mode": "0644", 
    "msg": "OK (3934 bytes)", 
    "owner": "root", 
    "size": 3934, 
    "src": "/tmp/tmp5nqAsJ", 
    "state": "file", 
    "uid": 0, 
    "url": "ftp://ftp.cheyaoshicorp.com/pub/derby.init.sh"

 

pause 模塊   http://docs.ansible.com/ansible/pause_module.html

在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 模塊 http://docs.ansible.com/ansible/wait_for_module.html

在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檢查一次
相關文章
相關標籤/搜索