0

我们定期重启研发 Linux 和 Windows 服务器以进行服务器修补和其他额外维护。服务器上托管了许多不同的服务和开发环境,需要在重新启动服务器之前和之后停止/启动。

Puppet 可用于启动服务,并确保服务在工作时间内运行(作为守护程序)。我们可以在重新启动服务器之前使用 Puppet 停止服务吗?我正在考虑分别为启动和停止编写清单,禁用启动清单,然后手动应用停止清单。

但是,如果启动服务清单未禁用并且“重新启动”所依赖的资源正在尝试停止服务,而守护程序代理正在确保保持服务启动。我想知道那时会发生什么。

任何想法?

4

2 回答 2

0

我的建议是引入仪器(除了配置管理)。看看 MCollective[1] 和 Nanite[2]。两者都允许您编写自定义代理来执行自定义操作。MCollective 具有与 Puppet 紧密集成的优势。您可以使用它来编写自定义代理作为部署工作流程的一部分,这将停止服务等。无论如何,看看它是否对您有用。

  1. http://puppetlabs.com/mcollective/introduction/
  2. https://github.com/ezmobius/nanite
于 2012-09-09T10:49:35.973 回答
0

是的你可以。

根据您的配置:

  1. 如果 puppet 发送了重启信号,你可以在通过 ssh 重启之前执行命令:
ssh user@machine "command"

命令可能在哪里:

service your_service stop
  1. 如果 puppet 不知道机器何时重新启动/关闭,您可以添加一个挂钩以便在关闭时执行脚本(停止服务)。
于 2012-09-09T09:28:26.993 回答