Могу ли я использовать puppet для остановки служб на серверах Linux?
Мы регулярно перезагружаем R&D серверы Linux и Windows для исправления сервера и другого дополнительного обслуживания. Множество различных служб и сред разработки размещаются на серверах и должны быть остановлены / запущены до и после перезагрузки серверов.
Puppet может использоваться для запуска служб и обеспечения их работы в рабочее время (как демон). Можем ли мы использовать Puppet, чтобы остановить службы перед перезагрузкой сервера? Я имею в виду написать манифест для запуска и остановки отдельно, отключить стартовый манифест, а затем применить манифест остановки вручную.
Однако, если начальный манифест служб не отключен, и ресурсы, от которых зависит "перезагрузка", пытаются остановить службы, в то время как агенты демона следят за тем, чтобы службы были запущены. Мне интересно, что будет потом.
Любая идея?
2 ответа
Мое предложение было бы ввести инструментарий (кроме управления конфигурацией). Посмотрите на MCollective[1] и Nanite[2]. Оба позволяют вам создавать собственные агенты для выполнения пользовательских действий. MCollective имеет преимущество в тесной интеграции с Puppet. Вы можете использовать его для написания пользовательских агентов как отдельного рабочего процесса развертывания, который остановит службы и т. Д. В любом случае, посмотрите, будет ли он вам полезен.
Да, ты можешь.
В зависимости от вашей конфигурации:
- Если puppet отправляет сигнал перезагрузки, вы можете выполнить команду перед перезагрузкой через ssh следующим образом:
ssh user@machine "command"
Где команда может быть:
service your_service stop
- Если puppet не знает, когда машины будут перезагружены / выключены, вы можете добавить ловушку для выполнения сценария (для остановки служб) при завершении работы.