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

Copying multiple files to hosts using ansible

我有四个不同的主机。 主机 1、主机 2、主机 3、主机 4

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

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}}

我想使用单个剧本完成此任务。

如何实现?

你应该使用 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']