尝试使用Packer SysPrep AWS Windows Server 2016实例时,会引发以下错误:
Build 'amazon-ebs' errored: Script exited with non-zero exit status: 1. Allowed exit codes are: [0]
我正在调用http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2launch.html#ec2launch-sysprep中指定的SysprepInstance.ps1
脚本。
Castrohenge的答案设置了正确的path,但是我更愿意将“-NoShutdown”开关传递给SysprepInstance.ps1来实现相同的目标。
C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\SysprepInstance.ps1 -NoShutdown
另外请记住,需要重新启动的function可以lockingsysprep,并将无法向打包者报告。 为了解决这个问题,我简单地在sysprep之前使用packer中的' restart '预配器。
该问题是由SysprepInstance.ps1
脚本使用以下命令closures实例引起的:
# Finally, perform sysprep. Start-Process -FilePath $sysprepPath -ArgumentList ("/oobe /shutdown /generalize `"/unattend:{0}`"" -f $answerFilePath) -Wait -NoNewWindow
我在运行之前通过修改SysprepInstance.ps1
来解决这个问题,如下所示:
$sysPrepInstanceFile = "C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\SysprepInstance.ps1" (Get-Content $sysPrepInstanceFile -Verbose).Replace("/shutdown ", "") | Set-Content $sysPrepInstanceFile -Verbose