Как донакатить ansible-playbook на сервер, который был выключен?
Представим такой сценарий.
У нас 1000 серверов. На всех нужно обновить версию Nginx (допустим security bugfix).
Но у нас один из серверов сейчас выключен, т.к. у него сгорел блок питания.
Обновляем версию nginx в ansible playbook и запускаем его на всех серверах. Да, мы предварительно все оттестировали на тестовом окружении.
Соответственно nginx обновится на 999 серверах, а на одном нет (он выключен).
Блок питания починили, сервер включается и, ВОТ ТУТ ВАЖНО, на нем старый необновленный nginx.
Это хорошо, что я помню, что на нем не обновлен nginx. Я после включения могу снова проиграть playbook. НО это же делается руками. А что если у меня из 1000 было выключено 10 и они включаеются в разное время разными сотрудниками?
Я хочу автоматику!
Суть вопроса вот в чем: как при старте сервера автоматически проиграть на нем последний актуальный playbook и только после этого уже пустить его в строй?
Например, у нас в ha-proxy настроен healt check и если нода недоступна, то запросы на нее не шлются.
А если доступна, то запросы на нее идут. В примере выше с точки зрения ha-proxy ожившая нода вполне в порядке. На запросы отвечает штатно. Только вот версия nginx там дырявый.
К nginx просьба не цепляться. Обновлено могло быть совершенно любое ПО или библиотека. Это сути вопроса не меняет.
Кто как решает описанную выше проблему?
Или может быть у меня в целом подход неверный? Если да, то подскажите в какую сторону смотреть?
Это понятно. Но я написал, что не хочу руками запускать повторно. А что, если сервер включат через неделю? Я же забуду, что между его выключением и включением я что-то обновлял. Хочу исключить человеческий фактор. Тем более, что админов много и вероятность человеческой ошибки повышается.
Как я в вопросе написал - повторю еще раз "Я хочу автоматику"
Дмитрий Лабутин: Ставьте Ansible локально, это будет самым простым вариантом. В автозапуске забираем с центрального сервера последний сценарий и запускаем.
Я как раз и интересуюсь - есть ли общепринятое стороннее решение для приведенного сценария. Неужели ни у кого нет таких проблем? Как все выкручиваются?