自动化运维工具—Ansible常用模块二

注意:-a 参数后的命令用单引号;双引号有可能会出问题,特别是在user模块

模块一:从网络下载文件至远程主机,get_url模块

[root@ansible ~]# ansible test -m get_url -a 'url=http://nginx.org/download/nginx-1.6.3.tar.gz dest=/tmp'

常用选项:

backup        #创建一个包括时间戳信息的备份文件,这样你可以得到原始文件。
dest          #将文件下载到的绝对路径。
                如果dest是目录,则服务器提供的文件名,
                如果没有提供,则将使用远程服务器上的URL的基本名称。
                如果一个目录,force没有效果。
                如果dest是一个目录,文件将总是被下载(不管force选项),但是只有当内容改变时才被替换。
force         # 如果是的,dest不是目录,将每次下载文件,如果内容改变,替换文件。如果否,则只有在目标不存在时才会下载该文件。一般应该是只对小的本地文件。在0.6之前,此模块的行为好像是默认值。
group         #应该拥有文件/目录的组的名称,将被发送到chown。
mode          #模式文件或目录应该是。对于那些用于/ usr / bin / chmod的记住,模式实际上是八进制数字(如0644)。离开领先的零可能会有意想不到的结果。
owner         #应该拥有文件/目录的用户的名称,将被发送到chown。
imeout        #网址请求的超时(以秒为单位)
tmp_dest      #临时文件下载到的绝对路径。默认为TMPDIR,TEMP或TMP
url           #下载路径,可以是HTTP, HTTPS, or FTP URL 
url_password  #用于HTTP基本认证的密码。
url_username  #用于HTTP基本认证的用户名。
use_proxy     #如果没有,它将不使用代理,即使在目标主机上的环境变量中定义了一个代理。

参考:<https://docs.ansible.com/ansible/latest/modules/get_url_module.html>

参考:<https://www.iyunv.com/thread-321501-1-1.html>

模块二:用于解压缩文件,unarchive

[root@ansible ~]# ansible test -m unarchive -a 'src=/srv/tomcat8/apache-tomcat-8.0.29.tar.gz dest=/usr/local copy=no mode=0755'

常用选项:

copy     #默认为yes,
          当copy=yes,那么拷贝的文件是从ansible主机复制到远程主机上的,
          当copy=no,那么会在远程主机上寻找src源文件
src      #源路径,可以是ansible主机上的路径,也可以是远程主机上的路径,如果是远程主机上的路径,则需要设置copy=no
remote_src:   #设置yes可以控制远程主机文件
dest: #远程主机上的目标路径 mode: #设置解压缩后的文件权限

参考:<https://docs.ansible.com/ansible/latest/modules/unarchive_module.html>

参考:<https://www.cnblogs.com/gaoyuechen/p/7749892.html>

模块三:用于同步归档文件,synchronize

[root@ansible ~]# ansible test -m synchronize -a "src=/tmp/tst-syn dest=/opt/dst-syn"

常用选项:

archive:         #归档,相当于同时开启recursive(递归)、links、perms、times、owner、group、-D选项都为yes ,默认该项为开启
checksum:        #跳过检测sum值,默认关闭
compress:        #是否开启压缩
copy_links:     #复制链接文件,默认为no ,注意后面还有一个links参数
delete:          #删除不存在的文件,默认no
dest:           #目录路径
dest_port:      #默认目录主机上的端口 ,默认是22,走的ssh协议
dirs:           #传速目录不进行递归,默认为no,即进行目录递归
 rsync_opts:    #rsync参数部分
set_remote_user:主要用于/etc/ansible/hosts中定义或默认使用的用户与rsync使用的用户不同的情况
mode: push或pull 模块,push模的话,一般用于从本机向远程主机上传文件,pull 模式用于从远程主机上取文件

参考:<https://docs.ansible.com/ansible/latest/modules/synchronize_module.html>

参考:<https://www.cnblogs.com/hzpythoner/p/6915812.html>

原文地址:https://www.cnblogs.com/walkman-sky/p/9553696.html