postgresql – 如何确保服务正在运行,使用Chef?

postgresql – 如何确保服务正在运行,使用Chef?,第1张

概述我的情况是Chef可能会开始服务(postgres),但随后可能会在带外停止.我想要一个后续的Chef运行来使服务运行.我试过这个: service "postgresql" do action :startend 但它没有效果,说(最新)大概是因为厨师知道它已经开始并且无法判断它已经停止了. (可能是因为服务……状态如何适用于此服务?)如果我这样写: # anti-pattern wa 我的情况是Chef可能会开始服务(postgres),但随后可能会在带外停止.我想要一个后续的Chef运行来使服务运行.我试过这个:
service "postgresql" do    action :startend

但它没有效果,说(最新)大概是因为厨师知道它已经开始并且无法判断它已经停止了. (可能是因为服务……状态如何适用于此服务?)如果我这样写:

# anti-pattern warning!execute "force-start-postgresql" do  command "service postgresql start || /etc/init.d/postgresql start"  action :runend

我得到了理想的行为.还有一个动作:restart使它运行.然而,由于便携性,这些似乎是反模式(并且在后一种情况下再次启动之前可能会停止它).

那么,我怎么能告诉Chef强行启动服务,即使它认为它已经运行了?

这是使用由OpsCode托管的Chef 11.6和默认的postgresql配方. (注意这是类似的,但我认为与How to force actions on “up to date” resources in Chef?不完全相同.)

—编辑(jtimberland帖子后的澄清)—

这里的-l调试显示:

DEBUG: service[postgresql] supports status,runningDEBUG: service[postgresql] is running

即使它没有运行.所以这听起来像一个BUG,我对此感兴趣.但是我主要想知道是否有办法告诉Chef“总是调用服务启动命令,跳过状态检查”.这就是问题所在.

(我不是专家,但我认为确保服务正在运行的最便携方式是启动服务,这几乎总是幂等.OTOH检查服务是否运行不太一致,我不明白为什么我们应该关心!)

默认情况下,Chef将检查服务是否正在运行,如果服务未运行则启动它.

它如何确定服务正在运行取决于.

默认情况下,Chef将尝试使用ps匹配进程表中的服务名称(此处为postgresql).

ps -ef | grep postgresql

实质上.检查进程表时,服务名称将用于模式匹配.这可能是你想要/不需要的,特别是取决于平台以及它如何命名“postgresql”服务.

但是,您可以告诉Chef该服务支持“status”命令,这意味着Chef通常会执行类似的 *** 作,

/etc/init.d/postgresql status

并使用返回代码来确定它是否正在运行(非零未运行).

默认情况下,Chef不会这样做,因为并非所有服务脚本都支持状态命令(令人沮丧),而且Chef天生就不知道正确的做法是什么.它试图做出理智的默认事情,但有时天真.因此,您可以告诉Chef该资源具有状态命令而不是那么天真.

service "postgresql" do  supports :status => true  action :startend

现在,如果服务实际上没有命名为“postgresql”,而是“postgresql-92”或类似服务,则可以这样做:

service "postgresql-92" do  supports :status => true  action :startend

要么

service "postgresql" do  service_name "postgresql-92"  supports :status => true  action :startend

您也可以通过运行带调试输出的Chef来更详细地了解正在发生的事情:

chef-clIEnt -l deBUG
总结

以上是内存溢出为你收集整理的postgresql – 如何确保服务正在运行,使用Chef?全部内容,希望文章能够帮你解决postgresql – 如何确保服务正在运行,使用Chef?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1168866.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存