由於synchronize模塊會調用rsync命令,因此首先要記得提前安裝好rsync軟件包。
synchronize模塊用於將Ansible機器的指定目錄推送(push)到客戶機器的指定目錄下,
命令如下:
ansible 192.168.1.206 -m synchronize -a "class="lazy" src="//p2.ttnews.xyz/loading.gif" data-original=/usr/local/src/ dest=/usr/local/src/ delete=yes compress=yes "
若未安裝rsync則運行時,會報如下錯誤:
[root@ansible ~]# ansible 192.168.5.153 -m synchronize -a "class="lazy" src="//p2.ttnews.xyz/loading.gif" data-original=/root/ dest=/root/ansible/ delete=yes compress=yes"
192.168.5.153 | FAILED! => {
"changed": false,
"failed": true,
"msg": "Failed to find required executable rsync in paths: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/sbin"
}
[root@ansible ~]#
安裝rsync後,繼續運行Ansible命令:
[root@ansible ~]# echo "test" > /ansible/test
[root@ansible ~]# ansible 192.168.5.153 -m synchronize -a "class="lazy" data-original=/ansible/ dest=/ansibe/ delete=yes compress=yes"
192.168.5.153 | FAILED! => {
"changed": false,
"cmd": "/usr/bin/rsync --delay-updates -F --compress --delete-after --archive --rsh=/usr/bin/ssh -S none -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null --out-format=<
"failed": true,
"msg": "Warning: Permanently added '192.168.5.153' (ECDSA) to the list of known hosts.\r\nbash: rsync: command not found\nrsync: connection unexpectedly closed (0 bytes received so far) [sender]\nrsync error: remote command not found (code 127) at io.c(605) [sender=3.0.9]\n",
"rc": 127
}
該報錯是由於客戶端也沒有安裝rsync的原因,在client安裝rsync後,就可以正常操作了。
[root@ansible ~]# ansible 192.168.5.153 -m synchronize -a "class="lazy" data-original=/ansible/ dest=/ansibe/ delete=yes compress=yes"
192.168.5.153 | SUCCESS => {
"changed": true,
"cmd": "/usr/bin/rsync --delay-updates -F --compress --delete-after --archive --rsh=/usr/bin/ssh -S none -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null --out-format=<
"failed": false,
"msg": "cd+++++++++ ./\n "rc": 0, "stdout_lines": [ "cd+++++++++ ./", " ] } [root@ansible ~]# ansible 192.168.5.153 -m synchronize -a "class="lazy" data-original=/ansible/ dest=/ansibe/ delete=yes compress=yes" 192.168.5.153 | SUCCESS => { "changed": false, "cmd": "/usr/bin/rsync --delay-updates -F --compress --delete-after --archive --rsh=/usr/bin/ssh -S none -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null --out-format=< "failed": false, "msg": "", "rc": 0, "stdout_lines": [] }
閱讀更多 海淵haiyuan 的文章