【问题标题】:how do i create a new windows service with chef?如何使用厨师创建新的 Windows 服务?
【发布时间】:2016-08-18 05:19:46
【问题描述】:

因此 chef 没有任何内置支持来创建 new 服务。我在其中一个食谱中创建了一个新的 Windows 服务:

 powershell_script "Derp" do
  code <<-EOH
  new-service \
  -name derp "C:/path/myservice.exe" \
  -displayName "derp" \
  -StartupType Automatic \
  -Description "derp Service"
  EOH

所以这在第一次运行时运行良好,但随后会为后续运行产生错误,因为该服务已经存在。

这是我自己做守卫的唯一解决方案吗?我喜欢尽可能避免在我的食谱中做我自己的条件。我不能是唯一一个遇到这个问题的人,但是我在网上找不到很多关于如何以厨师的方式解决这个问题的例子。

【问题讨论】:

    标签: chef-infra chef-recipe cookbook recipe


    【解决方案1】:

    不知道您为什么认为 Chef 不支持创建服务,service 资源的 :enable 操作在 Windows 上与其他任何地方一样工作。

    【讨论】:

    • 什么?你能给我一个例子,说明我如何使用 :enable 创建一个运行“C:/path/myservice.exe”的新 Windows 服务。我不认为它可以做到这一点。
    • 不确定您的意思,服务通常会自行注册,然后 Chef 会设置启动参数。 myservice.exe 是普通的可执行文件还是实际的服务? Windows 服务不像 Linux,您可以在其中使用任何普通程序。
    • 您可以看到我在该脚本中所做的事情,创建一个指向 exe 的新 Windows 服务 - 一个可能已经存在也可能不存在的新服务。
    • 但是这个exe是不是一个实际的服务?
    • 基本上我们有一些像Win32::Service.exists?(name)这样的助手可以用于幂等性检查,但这取决于具体情况。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多