gpt4 book ai didi

windows - Chef : Installing a Windows Service

转载 作者:可可西里 更新时间:2023-11-01 11:18:13 25 4
gpt4 key购买 nike

我是这个论坛的新手(如果我在错误的地方发帖,我深表歉意)而且对 Chef 也很陌生。我走遍了所有房屋,试图获得有关如何安装 Windows 服务的清晰示例。

基本上我想要相当于“SC create”的 Chef

我尝试使用的 Recipe 是这样的:

windows_package "RMS_EU" do
installer_type :msi
action :install
source "c:\Servies\V5.5\EUNTRouteManager\Routing.WindowsService.exe"
end

当我运行它时,我收到错误消息,提示 msi 有问题。

我已经尝试了这个脚本的多个变体,并且发现关于如何安装一个简单服务的清晰信息非常稀少。

所以有人知道我哪里出错了吗?正如我所说,当它起作用时,它应该在服务列表中显示为 Windows 服务。

文件已经在指定路径的服务上,我运行的是 Windows 2008 R2,PowerShell v4.0 和最新的 Chef 客户端安装。

我们将不胜感激。

感谢您的反馈

问候

斯科特

最佳答案

有几件事要看,首先将所有斜杠换成 "c:/Servies/V5.5/EUNRouteManager/Routing.WindowsService.exe"。 Ruby 和大多数编程语言使用反斜杠作为转义序列来编码您通常看不到的字符,例如 \n 用于换行符或 \t 用于制表符。

接下来是包安装,您告诉它该文件是一个 MSI,但它以 .exe 结尾,所以这不太可能。从你的文字来看,我猜你实际上并没有尝试安装包文件,但将来你必须将安装类型与一种已知类型(MSI、NSIS 等)相匹配。

最后,要控制您要使用的服务 service or windows_service资源,但您仍然需要创建它。幸运的是,有一个隐藏的 helper :

ruby_block 'create service' do
block do
Chef::Application::WindowsServiceManager.new(
service_name: "EUNTRouteManager",
service_display_name: "Something",
service_description: "Longer something.",
service_file_path: "c:/Servies/V5.5/EUNTRouteManager/Routing.WindowsService.exe",
).run(%w{-a install})
end
end

service 'EUNTRouteManager' do
action [:enable, :start]
end

我没有 Windows 机器来测试它,但我认为它应该可以工作。

关于windows - Chef : Installing a Windows Service,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27620367/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com