Encontrei esta pergunta enquanto procurava por uma resposta à minha própria pergunta sobre 'sysprepping antes de o Packer encerrar a instância de compilação', e isso me deu a pista certa para resolver o problema.
Acontece que há um parâmetro opcional para o provisionador do Packger PowerShell chamado valid_exit_codes
. Como você está vendo um código de saída de 1, defina valid_exit_codes como "0,1". No seu Packer windows.json:
"valid_exit_codes": "0,1"
Eu não sei como isso é novo; Estou usando o Packer 0.12.2.
Meus resultados
Curiosamente, minha ec2config.exe -sysprep
run obteve uma saída de 0:
amazon-ebs: SysprepUtils: Sysprep args: '"/unattend:C:\Program Files\Amazon\Ec2ConfigService\sysprep2008.xml" /oobe /shutdown /generalize'
2017/01/23 20:18:33 packer: 2017/01/23 20:18:33 [INFO] command 'powershell -executionpolicy bypass -encodedCommand aQBmACAAKAB ..deleted.. GUAcwB0AC0A=' exited with code: 0
Outra opção possível
Uma outra coisa que você pode querer considerar tentar (ainda não devido a restrições de tempo):
Remova o sinalizador /shutdown
dos argumentos do sysprep. Você pode encontrar isso no C:\Program Files\Amazon\Ec2ConfigService\Settings\BundleConfig.xml
. Basta usar um script do PowerShell para encontrar e substituir.
Espero que isso ajude!