2015-11-20 55 views
0

我想使用Ansible将文件从一台服务器复制到另一台服务器。 下面的例子使用Ansible将文件从一台服务器复制到另一台服务器

Server A ------> Server B 
Server C ------> Server D 

我有一个文件在服务器A和特别希望该文件复制到服务器B,和同为服务器C到D文件夹保存文件的目的地是相同。我可以为2或3个主机做。但是,我怎么能动态地创建,让我们说100个节点将特定的单个文件分配复制到所需的服务器。

回答

3

您可以使用fetchcopy的组合来执行此操作。

假设是结构像这样的清单:

[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 
+0

谢谢...它的工作... – Bhotu

+0

嗨@MahelaRanawat如果这个或任何答案已经解决您的问题,请考虑[接受它](http://meta.stackexchange.com/q/5234/179419)通过点击复选标记。这向更广泛的社区表明,您已经找到了解决方案,并为答复者和您自己提供了一些声誉。没有义务这样做。 – ydaetskcoR

+0

真的非常感谢! @ydaetskcoR –

相关问题