我想在Puppet上安装/卸载Windows服务,但我找不到内置功能。我想出了下面的脚本,它工作正常,但很难看。
exec{ "install_service" :
command => "${Sys32}\\cmd.exe /c installutil -i /LogFile=\"${logFile}\" \"${sourcePath}\" | exit 0",
path => $Framework4x64,
}
有更好的方法吗?我试图搜索插件但尚未找到它。
答案 0 :(得分:3)
我不认为Puppet内置了一些东西。 "手动"的通用方式在Windows中创建服务是使用sc.exe
实用程序(注意之后的空格, =
字符之前没有):
exec { "install_service" :
command => "${Sys32}\\sc.exe create MyService start= auto binPath= \"C:\\path\\to\\your.exe\"",
path => $Framework4x64,
unless => "${Sys32}\\sc.exe query MyService",
}
或PowerShell(最好使用PowerShell provider):
exec { "install_service" :
command => "New-Service -Name MyService -StartupType Automatic -BinaryPathName \"C:\\path\\to\\your.exe\"",
path => $Framework4x64,
provider => 'powershell',
unless => "Get-Service MyService; exit (1-[int]$?)",
}
答案 1 :(得分:-1)
阅读有关安装packages using puppet on Windows的文档。
它与在* nix上使用包资源的方式基本相同。他们的文档示例:
他们给出的例子:
package { 'mysql':
ensure => '5.5.16',
source => 'N:/packages/mysql-5.5.16-winx64.msi',
install_options => ['INSTALLDIR=C:\mysql-5.5'],
}