roles:
- apache
- nginx
- php
то по умолчанию сначала выполнятся все таски из всех ролей, потом все хендлеры из всех ролей. А можно поменять это поведение на (логичное) - сначала все таски/хендлеры из первой роли, потом из второй роли и т.д. ?
насколько помню хендлеры отрабаотают от первой роли и только потом пойдет вторая роль
Хендлеры отрабатывают в конце плея
Плохая практика, с flush тоже надо очень аккуратно пользоваться, а лучше не использовать
Не совсем верно. Они отрабатывают после pre_tasks, затем после roles, и потом после post_tasks.
Возможно, не пользуюс pre и post, а roles - это плей
Но есть flush-handlers
Хендлеры, которые триггернулись в роли, будут выполнены после всех ролей и всего блока tasks (если он есть), но перед post_tasks
Запуск сервиса в докере и ожидание выхода на готовность, например у нас сервис обучается 5 минут после старта и через uri+wait_for ждём готовности. Почему хендлер - сервис не всегда надо перезапускать, например мог поменяться связанный nginx А если не взлетел - нужно упасть с ошибкой всей букой.
не понял, как flush и хендлер связаны с тем, что надо ожидать запуск контейнера
Менять конфиг Notify Обновить docker-compose Notify То есть в этом блоке может и не быть рестарта вовсе
Потому что flush_handlers триггерит все хендлеры принудительно. Даже те, которые не changed
потому что идемпотентность не везде может быть
Не надо делать из хэндлеров священную корову. Они нужны всего-навсего для сокращения кол-ва перезапусков и всего подобного. Когда надо -- их можно флюшить сколько влезет.
Мне кажется, что вы ошибаетесь. Широко использую flush_handlers, и ни разу не видел, чтобы они триггерили что-то не нотифайнутое. Или я вас не так понял, может быть
А, не, вру. Он запускает только те хендлеры, которые уже были notified
Обсуждают сегодня