Ansible的synchronize模块拷贝目录时的一个坑

Ansible从控制节点拷贝文件到远程节点的常用模块有:copy和synchronize;与copy模块相比,由于synchronize模块是系统的rsync软件的高级封装,在同步很深的层级目录时速度比copy模块快的多~

今天从控制节点拷贝一个目录到远程节点时遇到一个坑,记录如下:
我想把控制节点的/tmp/test/目录拷贝到远程节点的/tmp/目录下,使用如下ad hoc命令:

ansible -i tmp.txt all  -m synchronize -a "src=/tmp/test dest=/tmp/test/ "  

然而在远程节点得到的确是如下目录:
/tmp/test/test/,不是预期的/tmp/test/
原因是上面的src=/tmp/test 后面少了个斜杠/,正确写法应该是src=/tmp/test/,所以正确命令应该是:

ansible -i tmp.txt all  -m synchronize -a "src=/tmp/test/ dest=/tmp/test/ "  

推荐阅读更多精彩内容