【发布时间】:2018-07-05 17:06:02
【问题描述】:
自从迁移到 Puppet 5.3.3 后,我在运行任何启动或调用进程的 powershell 脚本时都遇到了 puppet 退出代码 1。例如,我有一个打开记事本的 powershell 脚本:
Write-Host "Starting notepad ..."
[System.Diagnostics.Process] $proc = Start-Process -FilePath notepad -PassThru -Wait -ErrorAction stop
$EXIT_CODE=$proc.exitcode
Write-Host "notepad exit code is (${EXIT_CODE})"
直接在 Powershell 中运行此脚本即可完成 OK 并返回预期结果。通过以下 Puppet 清单运行时,我收到错误“返回 1 而不是 [0] 之一”
Exec {
provider => powershell,
}
exec { 'test':
command => 'C:/build/test.ps1',
timeout => '0',
logoutput => true,
}
这在 Puppet 4.x 上没有问题。它执行第一个 Write-Host 和 Start-Process 函数,但在进程完成后退出。完整错误如下:
[Notice: /Stage[main]/Ingres::Win_installation/Exec[test]/returns: Starting notepad ...
[Notice: Applied catalog in 23.19 seconds
[Error: 'C:/build/test.ps1 notepad' returned 1 instead of one of [0]
[Error: /Stage[main]/Ingres::Win_installation/Exec[test]/returns: change from 'notrun' to ['0'] failed: 'C:/build/test.ps1 notepad' returned 1 instead of one of [0]
任何帮助表示赞赏!
【问题讨论】:
标签: powershell puppet