使用ansible将多个文件复制到主机

时间:2016-03-31 21:14:12

标签: ansible ansible-playbook devops

我有四个不同的主机。 host1,host2,host3,host4

我正在尝试更新这些主机上的以下文件。

host1
/var/www/foo1

host2
/var/www/foo1
/var/tmp/foo1

host3
/var/www/foo1

host4
/var/tmp/foo1

我能够用不同的库存文件和组变量编写两个不同的剧本来完成这项任务。

广告资源文件1

[group_foo1]
host1
host2
host3

群组变量

文件名:group_foo1

path:/var/www

广告资源文件2

[group_foo2]
host2
host4

群组变量

文件名:group_foo2

path:/var/tmp

任务

name: copy the file
copy: src=foo1 dest={{path}}

我想使用单一剧本来完成这项任务。

怎么做?

1 个答案:

答案 0 :(得分:2)

您应该使用synchronize module

# Synchronize two directories on one remote host.
synchronize:
    src: /first/absolute/path
    dest: /second/absolute/path
delegate_to: "{{ inventory_hostname }}"

此外,您可以尝试在所有主机上迭代任务:

with_items: groups['all']