шеф-повар автоматически обновляет конфигурацию

Я использую конфигурацию chef-server и chef-client.

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

Сейчас я просто запускаю chef-client каждые 5 минут в cron, что не лучшее решение.

В общем, даже если я изменю рецепт, знает ли chef-client, что он должен перезапустить рецепт? (Откуда он узнает и сколько времени может потребоваться, чтобы определить изменения в рецепте)

Если мне нужно повторно запустить рецепт без изменений в самом рецепте, как это сделать правильно?

Спасибо!


person com    schedule 26.12.2012    source источник


Ответы (2)


Если мне нужно повторно запустить рецепт без изменений в самом рецепте, как это сделать правильно?

См. ответ Марка. повар-клиент -i 3600 -s 600

В общем, даже если я изменю рецепт, знает ли шеф-клиент, что он должен перезапустить рецепт?

Нет. Оно не знает. Если вы измените и загрузите рецепт на шеф-сервер, он предоставит эту версию (при условии отсутствия переопределения версии на основе среды) шеф-клиенту в следующий раз, когда он запросит у шеф-сервера набор рецептов, необходимых для конвергенции. .

Чтобы удовлетворить оба ваших варианта использования, лучше всего иметь внешнюю систему контроля версий (такую ​​как git) в качестве источника правды для ваших рецептов, написать post-commit-hook, который будет загружать каждую новую версию рецепта. к шеф-серверу, и, возможно, даже сервер CI прослушивает проверки и организует запуск шеф-клиента. Несколько хороших ответов здесь:

https://serverfault.com/questions/283470/what-are-the-benefits-of-running-chef-server-instead-of-chef-solo

person ottodidakt    schedule 27.12.2012

Вот сценарий запуска Debian, который будет использовать параметры -i и -s шеф-повара и запускать шеф-повар при запуске системы:

https://github.com/opscode/chef/blob/4edd48d5b546542ed566b1b3f491774e9f36065d/distro/debian/etc/init.d/chef-client

person benathon    schedule 18.02.2014