Windows的Puppet exec返回2而不是0

时间:2014-11-03 07:36:11

标签: windows puppet

我正在尝试通过静默模式进行安装,使用以下示例代码定位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。
  • 路径目录通常用双反斜杠指定 单斜线用其他东西处理。
  • Windows命令通常以cmd.exe /C <your command>
  • 开头
  • 某些计算机不允许在主C:\根文件夹中保存文件 出于安全考虑。

如果代码中定义的内容被认为是正确的,包括使用双引号而不是单引号,那么我有点迷失为什么命令在这里继续返回2,这样可以理解是否有什么东西可以为它提供光照我们等待第4版。

顺便说一句,这个Puppet master正在使用3.6.0,目标机器是Windows 2008 R2 64-bit

0 个答案:

没有答案