Ответ
Для последовательного (rolling) развертывания роли на группе хостов используется параметр serial в плейбуке. Он контролирует, сколько хостов обрабатывается одновременно, что критично для обновлений без простоя (zero-downtime).
Пример базового использования:
- name: Apply security updates to web servers
hosts: webservers
serial: 1 # Обрабатывать строго по одному серверу
roles:
- security_updates
Сложные стратегии: Можно задавать процент от общего числа хостов или список шагов.
serial:
- 1 # Первый хост (кандидат для smoke-теста)
- "30%" # Затем 30% от оставшихся
- "100%" # Все остальные
Контроль ошибок: Параметр max_fail_percentage позволяет прервать выполнение при превышении порога неудач.
serial: 2
max_fail_percentage: 25 # Остановиться, если >25% хостов в текущей партии упадут
На практике я использую serial вместе с обработчиками (handlers) для перезапуска сервисов и паузами (pause) для ручной проверки после каждой партии.