例1:将主控方/tmp/test/ 目录文件推送到指定节点的/tmp/test/目录下。
[root@master ~]# ansible all -m synchronize -a ‘src=/tmp/test/ dest=/tmp/test/ compress=yes‘
例2:将主控方master上/data/stu01中的文件同步到client01主机的/data/soft的文件夹中。
[root@master tmp]# ansible client01 -m synchronize -a ‘src=/data/stu01 dest=/data/soft/ compress=yes delete=yes checksum=yes --exclude=.git‘
执行效果:
delete=yes 使两边的内容一样(即以推送方为主)
compress=yes 开启压缩,默认为开启
checksum=yes 检测sum值,防止文件篡改,默认关闭
--exclude=.git 忽略同步.git 结尾的文件
由于模块,默认都是推送push。因此,如果你在使用拉取pull 功能的时候,可以参考如下来实现mode=pull 更改推送模式为拉取模式
参数解释:
参数 | 必填 | 默认值 | 选项 | 说明 |
archive | no | yes | yes no | 显示rsync的存档标志所属信息 |
checksum | no | no | yes no | 校验 |
compress | no | yes | yes no | 在传送过程中压缩文件数据 |
dest | yes | 目标路径,路径可以绝对或相对 | ||
delete | no | no | yes no | 删除srv中不存在的文件 |
copy_links | no | no | yes no | 复制符号链接,是映射的文件复制 |
dest_port | no | 22 | yes no | 目标主机端口号(ansible_ssh_port优先于此值) |
group | no | 存档选项值 | yes no | 保留文件的所属组 |
owner | no | 存档选项值 | yes no | 保留文件的所属者(只有超级用户可以操作) |
perms | no | 存档选项值 | yes no | 保留文件的权限 |
rsync_opts | no | no | 通过此选项指定其他的rsync的选项 | |
rsync_path | no | 指定rsync命令到远程主机上运行 | ||
rsync_timeout | no | 0 | 指定rsync的timeout时间以秒为单位 | |
src | yes | 源地址(路径可以是绝对或相对的) | ||
times | no | 存档选项值 | yes no | 保留文件的修改时间 |
exclude-from | no | no | yes no | 用于定义排除多个文件夹和文件 |
exclude | no | no | yes no | 用于定义排除单独的文件夹和文件 |