将文件从指定的主机复制到ansible中的其他主机

时间:2015-10-29 12:35:56

标签: ansible ansible-playbook

我的广告资源文件中有三个主机

[controller]
1.1.1.1
2.2.2.2
3.3.3.3

我在group_var文件夹中有一个变量,用于指定主节点

master=1.1.1.1

sql.conf位于我所有3个控制器主机的主目录(/home/ubuntu/sql.conf)中。

现在,我需要将文件(test.txt)从master复制到其他人。是否有任何方法可以将文件从一个特定的服务器复制到其他服务器。

我正在尝试这样但却无法实现。

- hosts: all
  sudo: yes
  tasks:
    - name: copy files
      local_action: command rsync -a /home/ubuntu/test.txt {{ master }}:///home/ubuntu/test.txt

1 个答案:

答案 0 :(得分:4)

一种选择是使用fetch模块将文件从主节点复制到本地节点,然后通常使用copy模块将该文件分发到其他节点。类似的东西:

- hosts: master
  tasks:
    - fetch: 
        src: /path/to/myfile.txt
        dest: tmp/

- hosts: all:!master
  tasks:
    - copy:
        src: tmp/master/myfile.txt
        dest: /path/to/myfile.txt