Ansible中的同步模块(Synchronize)
例1:将主控方/tmp/test/ 目录文件推送到指定节点的/tmp/test/目录下。
[[email protected] ~]# ansible all -m synchronize -a ‘src=/tmp/test/ dest=/tmp/test/ compress=yes‘
例2:将主控方master上/data/stu01中的文件同步到client01主机的/data/soft的文件夹中。
[[email protected] 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 |
用于定义排除单独的文件夹和文件 |