您可以使用fetch
和copy
的组合来执行此操作。
假设是结构像这样的清单:
[source-servers]
ServerA
ServerC
[dest-servers]
ServerB source-server=ServerA
ServerD source-server=ServerB
然后跑到下面fetch
任务:
- name: fetch file from source servers
hosts: source-servers
fetch:
src: /path/to/file
dest: /tmp
会在ServerA文件/path/to/file
复制到Ansible控制主机/tmp/ServerA/path/to/file
下和/path/to/file
ServerB上的Ansible控制主机在/tmp/ServerB/path/to/file
从这里开始,我们需要确保每个dest-servers
都有一个变量,它定义了在主机变量var下在单独的主变量文件或in line in the inventory中与哪个服务器配对。
,然后我们可以把正确的文件右侧dest-server
这个copy
任务:
- name: copy the paired files to the right servers
hosts: dest-servers
copy:
src: "/tmp/{{ source-server }}/path/to/file"
dest: /path/to/dest
谢谢...它的工作... – Bhotu
嗨@MahelaRanawat如果这个或任何答案已经解决您的问题,请考虑[接受它](http://meta.stackexchange.com/q/5234/179419)通过点击复选标记。这向更广泛的社区表明,您已经找到了解决方案,并为答复者和您自己提供了一些声誉。没有义务这样做。 – ydaetskcoR
真的非常感谢! @ydaetskcoR –