Chef windows_service资源 - 配置现有服务
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Chef windows_service资源 - 配置现有服务相关的知识,希望对你有一定的参考价值。
我遇到了一些问题,确保在创建Windows服务资源后正确配置它。我正处于由单独的安装程序(.exe)处理服务创建的情况。
我之后需要配置此服务以使用其他用户。
这是我的资源定义:
windows_service 'Service' do
action [:configure_startup, :start]
service_name 'service'
startup_type :automatic
run_as_user agent_credentials['user']
run_as_password agent_credentials['password']
only_if { ::Win32::Service.exists?('myservice') }
end
我正在从加密数据包中提取凭据。
我面临的问题是服务运行的帐户永远不会更新。在我的客户端运行中,它看到安装.exe后不需要应用资源操作:
* windows_service[Service] action configure_startup (up to date)
* windows_service[Service] action start (up to date)
如果首先停止服务,我只能获取我的资源,安装后立即停止,但事实并非如此。我是否必须先使用Chef来阻止它然后再次启动它?我以为它能够检测到服务的配置与定义的资源的配置不匹配,然后纠正它...
谢谢
答案
只需将:stop
添加到action
数组中,例如
windows_service 'Service' do
action [:configure_startup, :stop, :start]
service_name 'service'
startup_type :automatic
run_as_user agent_credentials['user']
run_as_password agent_credentials['password']
only_if { ::Win32::Service.exists?('myservice') }
end
如果即使服务停止服务也没有在停止时失败,那么这应该可以减轻您的痛苦。请注意,您可能需要将:stop
放在阵列上的其他位置,具体取决于服务行为。
以上是关于Chef windows_service资源 - 配置现有服务的主要内容,如果未能解决你的问题,请参考以下文章
厨师:为啥跳过“include_recipe”步骤中的资源?