当使用有限的主机执行剧本时,如何在组中的所有主机上执行任务?

时间:2019-05-15 16:49:00

标签: ansible ansible-2.x ansible-inventory ansible-role

场景
我的清单中有一个群组A,其中A包含a1,a2,a3个主机。这确实意味着我可以在剧本X.yml中写:

- hosts: A
  roles:
    - role:
      name: r

问题在于剧本X是在有限数量的主机上启动的,即ansible-playbook X的启动仅限于主机a1。该剧本X调用角色r(在主机a1上执行)。我不想更改此行为(换句话说,我想保留此限制,请不要问为什么)。

问题
是否可以将角色r写入任务,以使该任务将在A组的所有主机上执行,即使剧本仅限于主机a1也是如此?请记住,我的库存包含组A

如果没有,您能建议我另一种方法吗?
我可以做的是:

- hosts: A
  tasks:
    - name: "This task"       

1 个答案:

答案 0 :(得分:-1)

我不确定,但这可能有用:

- name: Run task on hosts in group A
  some_random_module:
    var1: value1
    var2: value2
  delegate_to: "{{ item }}"
  with_items: "{{ groups['A'] }}"

没有承诺。