2015-11-20 59 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 –

相關問題