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检查一次

 

posted @ 2017-10-20 16:05  陈佳鑫--007  阅读(368)  评论(0编辑  收藏  举报