Packer - O AWS Windows 2016 SysPrep retorna o código de saída 1

1

Ao tentar usar o SysPrep em uma instância do AWS Windows Server 2016 usando o Packer, o seguinte erro é lançado:

Build 'amazon-ebs' errored: Script exited with non-zero exit status: 1. Allowed exit codes are: [0]

Estou chamando o script SysprepInstance.ps1 , conforme especificado no link .

    
por Castrohenge 09.01.2017 / 17:50

2 respostas

2

A resposta de Castrohenge me colocou no caminho certo, mas eu preferi passar a opção '-NoShutdown' para SysprepInstance.ps1 para alcançar o mesmo objetivo.

C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\SysprepInstance.ps1 -NoShutdown

Lembre-se também de que os recursos que exigem reinicialização podem bloquear o sysprep e não serão relatados ao empacotador. Para resolver isso, basta usar o provisionador ' reiniciar ' no empacotador antes do sysprep.

    
por 09.06.2017 / 23:55
0

O problema foi causado pelo fato de o script SysprepInstance.ps1 desligar a instância, usando o seguinte comando:

# Finally, perform sysprep.
Start-Process -FilePath $sysprepPath -ArgumentList ("/oobe /shutdown /generalize '"/unattend:{0}'"" -f $answerFilePath) -Wait -NoNewWindow

Eu resolvi isso modificando o SysprepInstance.ps1 antes de executá-lo, da seguinte maneira:

$sysPrepInstanceFile = "C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\SysprepInstance.ps1"

(Get-Content $sysPrepInstanceFile -Verbose).Replace("/shutdown ", "") | Set-Content $sysPrepInstanceFile -Verbose
    
por 09.01.2017 / 17:50