Chef infra 如何在chef for windows中检查是否安装了服务并启动服务(如果已安装),或者如果安装并启动服务
如何在chef for windows中检查是否安装了服务并启动服务(如果已安装),或者如果安装并启动服务Chef infra 如何在chef for windows中检查是否安装了服务并启动服务(如果已安装),或者如果安装并启动服务,chef-infra,action,Chef Infra,Action,如何在chef for windows中检查是否安装了服务并启动服务(如果已安装),或者如果安装并启动服务 if service "VigilEntAgent" supports :status => false then package 'VigilEntAgent' do source 'xxx' action :install end else service "VigilEntAgent" do action :start end 您可以检查windows服务是否
if service "VigilEntAgent"
supports :status => false then
package 'VigilEntAgent' do
source 'xxx'
action :install
end
else
service "VigilEntAgent" do
action :start
end
您可以检查windows服务是否安装了
::Win32::Service.exists?( '<service_name>' )
::Win32::Service.exists?(“”)
但是,如果您使用
package
资源来安装服务,很可能您只需要为package
资源提供一个正确的名称。您在控制面板\所有控制面板项目\程序和功能中看到的一个。Chef将检查已安装的软件包,不会再次尝试安装。Chef被设置为幂等,您应该做的是:
package 'VigilEntAgent' do
source 'xxx'
action :install
end
windows_service "VigilEntAgent"
action :start
end
服务名称必须与windows服务管理器中的服务短名称相匹配,您可以使用NET START
从命令行IIRC启动它
windows\u服务
资源自12日起可用
参考资料文档如下:不幸的是,Windows服务往往不是这样工作的,特别是
status\u命令
。Windows平台上的服务比Unix平台上的服务更复杂。我很确定我以前做过这件事(针对基于nssm的服务),但这可能仍然是由老客户机处理的,并且包含大量的黑客攻击。