Ansible 从本地主机同步到另一个不是playbook主机的主机

Ansible 从本地主机同步到另一个不是playbook主机的主机,ansible,rsync,Ansible,Rsync,我正在为主机a运行一个Ansible剧本。我将一些任务委托给主机b。 现在我想使用该模块将目录从localhost复制到host\b。但是这里的delegate\u to是错误的选项,因为这会导致从host\u b复制到host\u a 有可能这样做吗 - hosts: host_a tasks: - name: rsync directory from localhost to host_b synchronize: # files on localhost

我正在为
主机a
运行一个Ansible剧本。我将一些任务委托给
主机b
。 现在我想使用该模块将目录从
localhost
复制到
host\b
。但是这里的
delegate\u to
是错误的选项,因为这会导致从
host\u b
复制到
host\u a

有可能这样做吗

- hosts: host_a

  tasks:

  - name: rsync directory from localhost to host_b
    synchronize:
      # files on localhost
      src: files/directory

      dest: /directory/on/host_b

    # delegate_to does not work here
    # delegate_to: host_b
我能想到的唯一解决方案是删除目标目录,然后在复制模块中使用递归副本

我在模块文档中找不到任何内容

(使用ansible 2.4.2.0)


host\u b
单独执行此任务也不是一个真正的选项,因为此任务所需的变量取决于
host\u a

在这种情况下,最简单的解决方案是使用rsync命令,即

-主机:cache1
任务:
-名称:本地主机到主机的rsync目录
本地操作:命令rsync-az“{playbook_dir}}/files/directory”“{{hostvars['host_b']['ansible_host']}}:/directory/on/host_b”
{{playbook_dir}}
通过不在本地系统上硬编码路径来提供帮助