Ansible rsync远程计算机上的两个本地绝对路径?

Ansible rsync远程计算机上的两个本地绝对路径?,ansible,Ansible,Ansible版本和操作系统信息: ansible 2.5.0 config file = None configured module search path = [u'/home/naftuli/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules'] ansible python module location = /home/naftuli/.local/lib/python2.7/site-packa

Ansible版本和操作系统信息:

ansible 2.5.0
  config file = None
  configured module search path = [u'/home/naftuli/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /home/naftuli/.local/lib/python2.7/site-packages/ansible
  executable location = /home/naftuli/.local/bin/ansible
  python version = 2.7.12 (default, Dec  4 2017, 14:50:18) [GCC 5.4.0 20160609]
这是基础操作系统Loki,它是Ubuntu 16.04,运行内核4.13.0-38-generic

在中,对于在远程计算机上执行角色的用户来说,
synchronize
任务失败

由于我一直在使用
connection:local
在我自己的机器上应用程序,所以直到有人向我报告后,我才遇到这种情况

任务的定义如下:

- name: sync man pages
  synchronize:
    src: "{{ rust_user_home }}/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/share/man/man1/"
    dest: "/usr/local/share/man/man1/"
  become: true
因为我总是在本地运行,“远程”机器和本地机器是一样的,所以这非常有效;使用上述代码,
src
将从本地主机复制到远程主机上的
dest

然后,我在该PR中对以下内容进行了更改:

- name: sync man pages
  synchronize:
    src: "{{ rust_user_home }}/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/share/man/man1/"
    dest: "/usr/local/share/man/man1/"
  delegate_to: "{{ inventory_hostname }}"
  become: true
但是,现在在本地运行时,Ansible会尝试使用SSH连接到本地计算机。使用
同步
,很难找到执行以下操作的方法:

rsync -a /src/dir/ /dest/dir/

如何使用
synchronize
模块来近似此行为?

似乎我能够通过使用un(der)文档化的
ansible\u连接找到一种解决方法
事实:

-名称:建立连接类型
设定事实:
连接是本地的吗|-
{%-如果ansible_连接==“本地”-%}
真的
{%-else-%}
假的
{%-endif-%}
-名称:同步手册页(本地)
使同步:
src:{rust\u user\u home}/.rustup/toolschains/stable-x86\u 64-unknown-linux-gnu/share/man/man1/“
目的地:“/usr/local/share/man/man1/”
时间:连接是本地的吗
变成:真的
-名称:同步手册页(远程)
使同步:
src:{rust\u user\u home}/.rustup/toolschains/stable-x86\u 64-unknown-linux-gnu/share/man/man1/“
目的地:“/usr/local/share/man/man1/”
委托给:“{{inventory\u hostname}”
何时:非本地连接
变成:真的
如果远程连接,它将使用委托在正确的位置运行,如果是本地的,它将按照预期使用本地文件系统