使用synchronize
模块和rsync_opts
运行ansible命令失败,错误为:
$ ansible all -i testvm, -m synchronize -a "src=./ dest=/etc/audit/rules.d mode=push owner=no group=no recursive=no rsync_opts=--chown=root:root" -b
testvm | FAILED! => {
"changed": false,
"cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --no-recursive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' --rsync-path='sudo -u root rsync' --chown=root:root --out-format='<<CHANGED>>%i %n%L' /Users/xxxxxxxx/auditd/rules.d/ testvm:/etc/audit/rules.d",
"msg": "rsync: --chown=root:root: unknown optionnrsync error: syntax or usage error (code 1) at /AppleInternal/Library/BuildRoots/xxxxxxxxxxxxxxxxxxx/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(1337) [client=2.6.9]n",
"rc": 1
}
我尝试使用不同的引号/转义符,但没有成功。
当我删除rsync_opts=--chown=root:root
时,命令本身工作正常
我需要将文件夹与ansible+同步,从本地用户变成目标系统,将最终位置的文件所有者更改为root:root。没有通过ssh直接访问too root帐户,所以我不能直接运行rsync。
复制模块速度太慢。
您收到的错误非常清楚:
rsync: --chown=root:root: unknown option
rsync error: syntax or usage error (code 1) at /AppleInternal/Library/BuildRoots/xxxxxxxxxxxxxxxxxxx/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(1337) [client=2.6.9]
该错误意味着您正在运行的rsync版本早于引入--chown
选项时的3.1.0版本。这由稍后输出中报告的版本[client=2.6.9]
进行备份。
为了使用此功能,您需要升级到支持它的rsync版本