如何告诉Puppet在关机时停止服务而不保持其运行?

扎克B

语境:

在linux(RedHat家族)系统上,我有一个基于init-script的服务,该服务通常在大多数时间手动启动/停止,并且通常仅在响应特定的不常见情况时运行。初始化脚本是我无法控制的代码的精简包装。

如果服务被杀死而未stop在其初始化脚本上运行该操作,则该服务将被异常终止,并使系统处于损坏状态,需要人工干预才能修复。

当运行该服务的系统关闭时,它们会干净地杀死它。我可以注册该服务,chkconfig以便在主机关闭时通过init脚本关闭该服务这样就可以解决每个主机的问题。

问题:

我想将此服务的配置自动化,以通过Puppet关机。

如何通知Puppet向其注册服务,chkconfig以便在系统关闭时可以通过init脚本停止该服务,而不会由Puppet进行管理?

我尝试过的

exec在Puppet中做了一个chkconfig直接调用的hokey语句,但是感觉不太优雅(并且可能会以我未曾想到的某种方式破坏)。

我玩过Puppet中类型noop标志service,但是似乎没有达到预期的效果。

约翰·布林格

Puppet没有任何内置的支持来配置服务运行在哪个运行级别上,也没有任何内置的通用支持chkconfig通常,向服务注册是服务安装的责任chkconfig从系统RPM安装的服务以这种方式注册。

此外,根据LSB约定,chkconfig会在initscripts的顶部识别结构化注释,以确定该服务默认在哪个运行级别运行只需向chkconfig注册适当的初始化脚本即可设置默认运行级别-尤其是要在运行级别0和6中将其设置为停止,这就是您要执行的操作。

如果您要滚动自己的初始化脚本并手动或直接通过Puppet部署它们(而不是打包并通过Yum安装它们),那么最好的选择可能是建立一个定义类型来管理该初始化脚本及其注册。您不需要并且可能不需要Service资源,但是File需要将适当的文件放置在适当的位置的Exec资源以及用于处理注册资源听起来是正确的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章