解決したい事
Packerを利用して、Windows Update を実行した後、AMIを作成したい
環境
- AWS
- windws2016
- packer
- PowerShell(WinRM)
質問
PackerのprovisionersでPowerShell(WinRM)を指定した場合、シリアルな実行(下記★1の処理でWindowsUpdate処理を行っている)や、★2のsleep処理が効かずに処理が流れてしまい、Windowsアップデート処理が完了しないまま、最後のSysprepまで到達してしまいます。
この場合、どのように書けばシリアルな実行(Windowsアップデート処理)やsleepが有効となりますでしょうか?
※下記サンプルは参考のために、必要な部分しか記載していません。
json
1 "provisioners": [ 2 { 3 "type": "powershell", 4 "start_retry_timeout": "5m", 5 "inline": [ 6 "C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeInstance.ps1 -Schedule", 7 "Set-NetConnectionProfile -NetworkCategory Private", 8 ".\pre_create_build.ps1" ★1 9 ] 10 }, 11 { 12 "type": "powershell", 13 "start_retry_timeout": "60m", 14 "inline": [ 15 "aws inspector start-assessment-run --assessment-template-arn {{user `inspectorarn`}}", 16 "sleep 900", ★2 17 "AWSAgentInstall.exe /uninstall /passive", 18 "C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeInstance.ps1 -Schedule", 19 "C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\SysprepInstance.ps1" 20 ] 21 } 22 ] 23}
あなたの回答
tips
プレビュー