Как выполнить задачу на всех хостах из группы, когда playbook выполняется с ограниченными хостами?

Сценарий
У меня есть группа A в моем инвентаре, где A содержит a1,a2,a3 хосты. Это означает, что я могу написать в своей книге X.yml:

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

Проблема заключается в том, что playbook X запускается с ограниченным числом хостов, а именно запуск ansible-playbook X ограничен хостом a1. Этот сценарий X вызывает роль r (которая выполняется на хосте a1). Я бы не хотел менять это поведение (другими словами, я хотел бы сохранить это ограничение, пожалуйста, не спрашивайте зачем).

Вопрос
Можно ли написать задачу в роли r таким образом, чтобы она выполнялась на всех хостах из группы A, даже если playbook ограничен хостом a1? Учтите, что в моем инвентаре есть группа A.

Если нет, не могли бы вы предложить мне другой подход?
Я могу сделать следующее:

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

person Tom    schedule 15.05.2019    source источник
comment
С import_playbook в любой комбинации ролей и хостов можно.   -  person Vladimir Botka    schedule 15.05.2019
comment
Если вы используете ansible с --limit, я не думаю, что вы сможете заставить его выполняться на любых хостах, которые не являются частью текущей конфигурации ограничения.   -  person larsks    schedule 15.05.2019


Ответы (1)


Я не знаю наверняка, но это может сработать:

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

Не обещаю.

person Jack    schedule 15.05.2019