#ansible #wait #ansible-playbook
#подождите #ansible
Вопрос:
Итак, я заметил, что в моих сборниках игр ansible, если я нацеливаю несколько хостов на один и тот же сборник, каждая задача должна быть завершена для всех хостов, прежде чем она перейдет к следующей задаче.
Возможно ли определить сценарий таким образом, чтобы задача по завершении немедленно запускала следующую задачу, не дожидаясь завершения задачи на всех других хостах?
Ответ №1:
Этим поведением Ansible можно управлять с помощью плагинов стратегии.
По умолчанию Ansible использует линейный плагин:
Все хосты будут запускать каждую задачу до того, как какой-либо хост запустит следующую задачу, используя количество форков (по умолчанию 5) для распараллеливания.
Другая доступная стратегия free
:
Выполнение задачи выполняется синхронно для каждого пакета хостов, как определено serial (по умолчанию all ). До предела разветвления хосты будут выполнять каждую задачу одновременно, а затем следующую серию хостов, пока пакет не будет завершен, прежде чем перейти к следующей задаче.
Установите стратегию следующим образом:
- hosts: all
strategy: free
tasks:
Если невозможно использовать free
стратегию, вы можете установить пакеты с serial
помощью директивы.