ansible之synchronize模块
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ansible之synchronize模块相关的知识,希望对你有一定的参考价值。
例:将主控方/root/test.yml 目录推送到指定节点的/tmp 目录下[[email protected] ~]# ansible all -m synchronize -a ‘src=/tmp/test dest=/data/soft/ compress=yes‘
[email protected]‘s password: client02 | SUCCESS => {
"changed": true,
"cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --rsh ‘ssh -S none -o StrictHostKeyChecking=no‘ --out-format=‘<<CHANGED>>%i %n%L‘ \"/tmp/test\" \"client02:/data/soft/\"",
"msg": "<f+++++++++ test\n",
"rc": 0,
"stdout_lines": [
"<f+++++++++ test"
]
}
client01 | SUCCESS => {
"changed": true,
"cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --rsh ‘ssh -S none -o StrictHostKeyChecking=no‘ --out-format=‘<<CHANGED>>%i %n%L‘ \"/tmp/test\" \"client01:/data/soft/\"",
"msg": "<f+++++++++ test\n",
"rc": 0,
"stdout_lines": [
"<f+++++++++ test"
]
}
[email protected]‘s password: 111111此处输入密码原因是master自身没有做ssh免秘钥处理
master.test.com | SUCCESS => {
"changed": true,
"cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --rsh ‘ssh -S none -o StrictHostKeyChecking=no‘ --out-format=‘<<CHANGED>>%i %n%L‘ \"/tmp/test\" \"master.test.com:/data/soft/\"",
"msg": "<f+++++++++ test\n",
"rc": 0,
"stdout_lines": [
"<f+++++++++ test"
]
}
[[email protected] ~]# ll /data/soft/test
-rw-r--r-- 1 root root 4 Jul 30 2016 /data/soft/test
}
[[email protected] tmp]# ll /data/soft/test
-rw-r--r-- 1 root root 4 Jul 30 23:31 /data/soft/test
执行效果:
delete=yes 使两边的内容一样(即以推送方为主)
compress=yes 开启压缩,默认为开启
--exclude=.git 忽略同步.git 结尾的文件
由于模块,默认都是推送push。因此,如果你在使用拉取pull 功能的时候,可以参考如下来实现mode=pull 更改推送模式为拉取模式
例:将client01 节点的/root/stu01 目录拉取到主控节点的/data/soft 目录下
[[email protected] tmp]# ansible client01 -m synchronize -a ‘mode=pull src=/root/stu01 dest=/data/soft/ compress=yes‘
client01 | SUCCESS => {
"changed": true,
"cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --rsh ‘ssh -S none -o StrictHostKeyChecking=no‘ --out-format=‘<<CHANGED>>%i %n%L‘ \"client01:/root/stu01\" \"/data/soft/\"",
"msg": ">f+++++++++ stu01\n",
"rc": 0,
"stdout_lines": [
">f+++++++++ stu01"
]
}
[[email protected] tmp]# cat /data/soft/stu01
213
参数解释
dest_port=22 指定目的主机的端口,ansible 配置文件中的
ansible_ssh_port 变量优先级高于该dest_port
变量
rsync_path 指定rsync 命令来在远程服务器上运行。这个参
考rsync 命令的--rsync-path 参数,
--rsync-path=PATH 指定远程服务器上的rsync 命令所在路径信息
rsync_timeout 指定rsync 操作的IP 超时时间,和rsync 命令
的--timeout 参数效果一样
以上是关于ansible之synchronize模块的主要内容,如果未能解决你的问题,请参考以下文章