Ansible 同步模块出错
Ansible synchronize module errors out
我 运行 在我的 MAC 上安装了 Ansible 2.9.11。我创建了一个剧本来将一些预定义的 freeswitch 配置同步到新的 Debian 10 服务器。我已经安装了 rsync 并遵循了 Ansible 站点上的所有要求。当我 运行 同步任务失败并显示以下消息时。这发生在 playbook 已经连接到 box 并执行其他任务(例如更新和安装先决条件)之后。
错误:
fatal: [dev-fs02b]: FAILED! => {"changed": false, "cmd": "sshpass -d3
/usr/bin/rsync --delay-updates -F --compress --archive
--rsh=/usr/bin/ssh -S none -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null --rsync-path=sudo rsync
--out-format=<<CHANGED>>%i %n%L /Users/User1/Documents/Ansible/files/sca
user1@1.1.1.127:/etc/freeswitch", "msg": "Warning: Permanently added
'1.1.1.127' (ECDSA) to the list of known hosts.\r\nsudo: no tty
present and no askpass program specified\nrsync: connection
unexpectedly closed (0 bytes received so far) [sender]\nrsync error:
error in rsync protocol data stream (code 12) at
/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/rsync/rsync-54.120.1/rsync/io.c(453)
[sender=2.6.9]\n", "rc": 12}
任务:
- name: "Copies files over"
synchronize:
src: /Users/User1/Documents/Ansible/files/fs1
dest: /etc/freeswitch
recursive: yes
synchronize 是 rsync 的包装器,可以使您的 playbook 中的常见任务快速简单。 它是 运行 并且起源于正在运行 Ansible 的本地主机 运行。当然,您可以只使用命令操作自己调用 rsync,但您还必须添加大量样板选项和主机信息。 synchronize 并非旨在提供对 rsync 全部功能的访问,但确实使最常见的调用更容易实现。根据您的用例,您可能仍然需要通过命令或 shell 直接调用 rsync。
这意味着您无法在远程服务器上同步。
我 运行 在我的 MAC 上安装了 Ansible 2.9.11。我创建了一个剧本来将一些预定义的 freeswitch 配置同步到新的 Debian 10 服务器。我已经安装了 rsync 并遵循了 Ansible 站点上的所有要求。当我 运行 同步任务失败并显示以下消息时。这发生在 playbook 已经连接到 box 并执行其他任务(例如更新和安装先决条件)之后。
错误:
fatal: [dev-fs02b]: FAILED! => {"changed": false, "cmd": "sshpass -d3
/usr/bin/rsync --delay-updates -F --compress --archive
--rsh=/usr/bin/ssh -S none -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null --rsync-path=sudo rsync
--out-format=<<CHANGED>>%i %n%L /Users/User1/Documents/Ansible/files/sca
user1@1.1.1.127:/etc/freeswitch", "msg": "Warning: Permanently added
'1.1.1.127' (ECDSA) to the list of known hosts.\r\nsudo: no tty
present and no askpass program specified\nrsync: connection
unexpectedly closed (0 bytes received so far) [sender]\nrsync error:
error in rsync protocol data stream (code 12) at
/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/rsync/rsync-54.120.1/rsync/io.c(453)
[sender=2.6.9]\n", "rc": 12}
任务:
- name: "Copies files over"
synchronize:
src: /Users/User1/Documents/Ansible/files/fs1
dest: /etc/freeswitch
recursive: yes
synchronize 是 rsync 的包装器,可以使您的 playbook 中的常见任务快速简单。 它是 运行 并且起源于正在运行 Ansible 的本地主机 运行。当然,您可以只使用命令操作自己调用 rsync,但您还必须添加大量样板选项和主机信息。 synchronize 并非旨在提供对 rsync 全部功能的访问,但确实使最常见的调用更容易实现。根据您的用例,您可能仍然需要通过命令或 shell 直接调用 rsync。
这意味着您无法在远程服务器上同步。