Может быть. Я в эфире, у меня нет возможности проверить эту идею, но здесь идет ...
Допустим, у вас есть GroupA
и GroupB
. Чтобы проверить связь каждого хоста в группе последовательно, но при этом группы будут работать параллельно, вы можете попробовать эту отвратительную конструкцию:
---
- hosts: localhost
tasks:
- ping:
delegate_to: "{{ item }}"
with_items: "{{ groups['groupA'] }}"
forks: 1
async: 0
poll: 0
- ping:
delegate_to: "{{ item }}"
with_items: "{{ groups['groupB'] }}"
forks: 1
async: 0
poll: 0
Ansible по-прежнему будет показывать вывод задачи отдельно.
Когда я запустил это, файлы были созданы в /home/ansible/.ansible_async
. Эти файлы показывают время запуска задачи, и это выглядело так, как будто она работает. Чтобы проверить, я запустил shell: sleep 5
вместо ping:
и увидел, что времена запуска в этих файлах правильно чередуются.
Удачи.