Могу ли я использовать puppet для остановки служб на серверах Linux?

Мы регулярно перезагружаем R&D серверы Linux и Windows для исправления сервера и другого дополнительного обслуживания. Множество различных служб и сред разработки размещаются на серверах и должны быть остановлены / запущены до и после перезагрузки серверов.

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

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

Любая идея?

2 ответа

Мое предложение было бы ввести инструментарий (кроме управления конфигурацией). Посмотрите на MCollective[1] и Nanite[2]. Оба позволяют вам создавать собственные агенты для выполнения пользовательских действий. MCollective имеет преимущество в тесной интеграции с Puppet. Вы можете использовать его для написания пользовательских агентов как отдельного рабочего процесса развертывания, который остановит службы и т. Д. В любом случае, посмотрите, будет ли он вам полезен.

  1. http://puppetlabs.com/mcollective/introduction/
  2. https://github.com/ezmobius/nanite

Да, ты можешь.

В зависимости от вашей конфигурации:

  1. Если puppet отправляет сигнал перезагрузки, вы можете выполнить команду перед перезагрузкой через ssh следующим образом:
ssh user@machine "command"

Где команда может быть:

service your_service stop
  1. Если puppet не знает, когда машины будут перезагружены / выключены, вы можете добавить ловушку для выполнения сценария (для остановки служб) при завершении работы.
Другие вопросы по тегам