сервисов в item и надо чтоб они запускались с небольшой задержкой
include_tasks + loop, а в тасках запуск сервиса из loop и pause
Для чего задержка?
У меня плейбук запускает java сервисы в гите, они между собой связаны, и во время запуска идёт компиляция
и все это в ansible?
Нет. Я образно написал. Там все делает pipeline
У вас есть какой-то внятный критерий - как определить, что сервис готов, кроме тупого ожидания?
Нет. Только среднее время выполнения mvn deploy
Ну или что джоба в gitlab выполнилась
Вы явно что-то делаете не так. У mvn есть выхлоп, он пишет логи. Должны быть какие-то критерии завершения задачи
хорошо, тогда опишу более детально свой кейс. Есть гитлаб, есть сервисы у каждого свой репозиторий. Есть задача нужно отрезать релизную ветку, на каждом этом сервисе. для этого используется данный playbook https://pastebin.com/m21fyUMH Playbook запускается в Gitlab job соответственно - когда у сервиса создается новая ветка, запускается автоматически pipeline у этого сервиса и там первым идет шаг запуска MVN DEPLOY. Playbook отрабатывает успешно, к нему претензий нет, но вот у сервисов падает Job MVN DEPLOY, так как сервисы запускаются все и сразу и не успевают опубликовать свои артефакты для зависимостей. Соответственно, тут самое простое решение сделать небольшой timeout между каждым Loop
самое простое, это то что предложил выше @Alex_5252 сделать самой последней таску с pause. Можно конечно попробовать завязаться за выполнение Job в Gitlab - но это слишком Overhead для моего кейса
У меня-то задача была, чтобы не сразу все сервисы рестартовали, а с некоторой паузой, чтобыплавно прошло обновление, а в Вашем случае надо завязаться на корректное исполнение таски. У меня-то плей остановится если сервис не будет перезапущен корректно.
Обсуждают сегодня