Python Ansible Synchronize不考虑从控制机器到控制机器的委托| Rsync

Python Ansible Synchronize不考虑从控制机器到控制机器的委托| Rsync,python,deployment,ansible,rsync,ansible-2.x,Python,Deployment,Ansible,Rsync,Ansible 2.x,我需要将一个目录从控制计算机rsync到控制计算机(源和目标是localhost)。我按照指令在脚本中添加了一个委托给:localhost。尽管如此,synchronize指令尝试将远程计算机用作目标,但失败了 - name: Copy node_modules over if exists synchronize: src: "{{ node_modules_path }}" dest: "{{ deploy_helper.new_release_path }}/{{ de

我需要将一个目录从控制计算机rsync到控制计算机(源和目标是localhost)。我按照指令在脚本中添加了一个
委托给:localhost
。尽管如此,synchronize指令尝试将远程计算机用作目标,但失败了

- name: Copy node_modules over if exists
  synchronize:
    src: "{{ node_modules_path }}"
    dest: "{{ deploy_helper.new_release_path }}/{{ deploy_app_name }}/"
  become: true
  become_method: sudo
  delegate_to: localhost
  run_once: true
  when: node_modules.stat.exists
以下是输出:

致命:[panda->panda.herokuapp.com]:失败!=>{“更改”:错误, “cmd”:“/usr/bin/rsync--延迟更新-F--压缩--归档--rsh” 'ssh-S none-o StrictHostKeyChecking=no'--rsync path=\'sudo rsync\' --输出格式=“%i%n%L'\”/root/node\u modules/\“\”root@panda.herokuapp.com:/home/deploy/releases/20170404121408/\“”, “失败”:true,“msg”:“\r\n同步:mkdir \“/home/deploy/releases/20170404121408/\”失败:没有这样的文件 或目录(2)\n同步错误:位于的文件IO(代码11)中出错 main.c(605)[接收器=3.0.9]\nrsync:连接意外关闭(9 到目前为止已接收字节)[发送方]\nrsync错误:rsync协议中的错误 io.c(605)[发送方=3.0.9]\n,“rc”:12}处的数据流(代码12)

Ansible版本:Ansible 2.2.1.0


显然,Rsync命令正在尝试同步到远程服务器,而不是本地主机。我可以保证路径
/home/deploy/releases/20170404121408/
存在于localhost上,但不存在于panda上。我遗漏了什么?

引用以下相关段落:

对于
同步
模块,“本地主机”是同步任务发起的主机,“目标主机”是同步连接的主机

此外:

模式
(默认值:
推送
)指定同步的方向。在推送模式下,本地主机或委托是源;在拉模式下,上下文中的远程主机是源


@techraf是的,我有。下面是我特别引用的一段话:
#同步控制机器上的两条路径-synchronize:src:some/relative/path dest:/some/absolute/path delegate\u to:localhost
@techraf是src是相对路径吗?在我的例子中,src和dest都是绝对路径。我认为这不会影响行为,但是我很乐意尝试一下。仍然无法理解同一页上的这个特定示例:
#在控制计算机上同步两个路径-synchronize:src:some/relative/path dest:/some/absolute/path delegate_to:localhost
这个示例没有指定模式,顶部的注释说这是与控制机器进行rsync的语法。我遗漏了什么?这个示例在编写时没有任何意义,它缺少播放正在哪个主机上运行的信息。这是否意味着我实际上无法从同一台控制机器进行同步,因为我似乎无法控制目标主机?我知道我可以在同一台远程机器之间进行rsync。我觉得这个例子很清楚,它的预期功能是在控制机器上同步两条路径——这个例子可能是错误的,但它的预期用途有什么不明确之处呢?你可以,只是不能在与另一个目标运行的游戏中。