Автоматизация и первонах

Сказ про NGINX и Dehydrated. 

Проблема. 

Есть у меня в подчинении NGINX с кучей хостов. Практически на каждом хосте SSL-сертификат.

Для получения и обновления сертификатов я использую Dehydrated — он гораздо удобнее LetsEncrypt'а.

Вот с обновлением сертификатов-то как раз и возникла проблема. Начнём с того, что я уже таки умею в автоматизацию рутинных процессов и уже конечно догадался запуск Dehydrated для автообновления сертификатов положить в cron. Более того (!) у Dehydrated есть хуки, с помощью которых можно очень круто отслеживать действия с сертификатами. А вот теперь боль — хук срабатывает на каждый обновлённый сертификат, а у меня в один день было выпущено около 20 сертификатов и, соответственно, обновляются все они в один день. И всё бы было хорошо, но NGINX не умеет подтягивать новые сертификаты через service nginx reload, он их подтягивает только при service nginx restart. В таком разрезе использование хука приводит у меня к перезапуску NGINX аж целых 20 раз.


Решение. 

"На каждую жопу у нас найдётся свой ствол с гвоздями" — кто-то из великих.

Посмотрел я на то безобразие и понял, что делать с этим всё равно что-то придётся. Если не использовать автоматизацию, то придётся сидеть и каждый день отслеживать сертификаты, а этого я вообще не хочу.

Собственно родился скриптик на bash, который (естественно) запускается по крону раз в день и при наличии обновлённых сертификатов один раз перезапускает NGINX. Вся магия в хуке Dehydrated — в функции deploy_cert() я просто в нужном месте создаю файл-флаг, который потом и отслеживает скрипт.

Всё гениальное — просто!

Вот вам ссылка репозиторий на GitHub. Пользуйтесь.

Комментарии

Популярные сообщения из этого блога

Оживил бубен

Итоги интерактива и анонс