使用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']
我有四个不同的主机。 主机 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']