Вы можете поместить все повторяющиеся задачи в блок. В сочетании с сериал: 1
вы убедитесь, что только один блок выполняется за раз.
- хосты: узлы
сериал: 1
задачи:
- имя: получить состояние кластера
оболочка: "Команда RESTAPI 1"
run_once: да
- имя: перевести кластер в режим обновления
оболочка: "Команда RESTAPI 2"
run_once: да
- блокировать:
- имя: обновить Apache
оболочка: «обновить команду Apache»
- имя: запустить Apache
оболочка: «запустить команду Apache»
- имя: выполняется проверка работоспособности для Apache
оболочка: "Команда RESTAPI"
# повторов: 20
# задержка: 15
Я предполагаю, что команду для перевода кластера в режим обновления можно запустить на любом узле, поэтому вы можете просто использовать run_once
. Если это не так и его нужно запустить на определенном узле, вы можете использовать когда
ограничение для конкретного хоста.
Для здоровья проверьте параметры задерживать
и повторяет
может представлять интерес, если существует вероятность того, что проверка сначала завершится ошибкой, а затем завершится успешно, когда apache будет полностью запущен.
Чтобы использовать playbook в разных группах хостов, вы можете использовать хозяева: все
а затем ограничить хосты группой во время выполнения.
ansible-playbook upgrade.yml --limit dev_nodes