我正在尝试通过静默模式进行安装,使用以下示例代码定位Windows代理:
if ($::operatingsystem == "Windows") {
file {
"C:\\tmp": ensure => directory,
}
file {
"C:\\tmp\fusioninventory-agent_windows_x64_2_3_12.exe":
ensure => file,
#provider => windows,
source => "puppet:///modules/${module_name}/fusioninventory-agent_windows-x64_2_3_12.exe",
source_permissions => ignore,
mode => 755,
require => File["C:\\tmp"],
}
exec {
"run-fusion-exe": path => "${::path};C:\\tmp",
provider => windows,
command => "cmd.exe /c c:\\tmp\fusioninventory-agent_windows_x64_2_3_12.exe /S /acceptlicense /debug=1 /server=http://10.1.64.149/mi-latte/plugins/fusioninventory /runnow",
require => File["C:\\tmp\fusioninventory-agent_windows_x64_2_3_12.exe"],
logoutput => true,
}
}
前两部分很好,只要每当Windows代理到达最后一部分时,它都会尝试执行命令(运行安装程序的静默模式,而不是运行GUI界面),但通常会显示
返回2而不是0
之一
据我所知:
$path
,因为Puppet没有Windows的内置shell。cmd.exe /C <your command>
C:\
根文件夹中保存文件
出于安全考虑。如果代码中定义的内容被认为是正确的,包括使用双引号而不是单引号,那么我有点迷失为什么命令在这里继续返回2,这样可以理解是否有什么东西可以为它提供光照我们等待第4版。
顺便说一句,这个Puppet master正在使用3.6.0
,目标机器是Windows 2008 R2 64-bit
。