在参数为所有清单主机的一台主机上执行命令

时间:2019-05-28 14:41:57

标签: ansible

是否可以在主机上执行命令,并且所有清单主机都在参数中?

例如: 库存文件:

host1
host2
host3

我只想从host1执行此命令:

ssh toto@host1:"touch /tmp/test"
ssh toto@host2:"touch /tmp/test"
ssh toto@host3:"touch /tmp/test"

为此,我使用此代码,但无法正常工作。该代码仅在一台主机上执行

name: Execute test
  command: ssh toto@{{ inventory_hostname }}:"touch /tmp/test"
  delegate_to: host1

1 个答案:

答案 0 :(得分:1)

怎么样:

- hosts: host1
  tasks:
    - name: execute test
      command: ssh toto@{item} touch /tmp/test
      loop: "{{ groups.all }}"

这将遍历groups.all,其中包含清单中每个主机的名称。