beatF5run

技術系の話とか、勉強会とか

Azure Image Builderでイメージビルド中にターミナルを閉じてしまったら

はじめに

Azure Image Builderでイメージビルド中にターミナルを閉じてしまい、ビルドの結果を見失ったのでその対応について書きます。

Azure Image Builderでイメージを作成する

docs.microsoft.com

上記サイトを参考にVMイメージのビルドをしてみました。

ただし、上記サイトの日本語ページには誤記があるので下記のサイトを参考に一か所修正してビルドを実施する必要があります。

atmarkit.itmedia.co.jp

チュートリアルを開始するのに便利な機能

チュートリアルには実行するコマンドが記載されていますが、コマンドの右上にある「使ってみる」を押すと右ペインにAzure Cloud Shellが起動します。(自分のアカウントでログインすると利用できます)

「使ってみる」

チュートリアルを試すには便利な機能ですね。 (ただしMicorosoft Learnでのサンドボックスと違い課金される対象ですので注意)

チュートリアルでイメージのビルドを開始してみた

az resource invoke-action \
     --resource-group $imageResourceGroup \
     --resource-type  Microsoft.VirtualMachineImages/imageTemplates \
     -n helloImageTemplateWin01 \
     --action Run 

チュートリアルのなかで、上記コマンドでビルドを開始します。 「15分かかる」とチュートリアルには記載がありますが、私の場合30分以上かかったケースがありましたし、今回は1時間たってもビルドは終了しませんでした。(この時点で何かがおかしい気はしている)

いっこうに終わらないビルド…そして…

ビルドの最中はコマンドは次の操作を受け付けません。 ですが、この最中に自分のPCの通信回線が途切れてしまい、Azure Cloud Shellとの接続が途切れてしまいました。 慌てて再接続を試みましたが、Azure Cloud Shellは新しいセッションとして開始されてしまい、ビルドの結果が分からなくなってしまいました。

ビルドはどうなった?

Azureポータルで確認

Azureポータルであれば、イメージ テンプレートの詳細画面からビルドの実行状態が確認できました。

詳細画面

ビルド状況

拡大

ビルド実行状態の拡大

コマンドで確認する場合

azコマンドでビルド状況を確認できます。

az image builder show --name $imageTemplateName  --resource-group $imageResourceGroup

Building

まだビルド途中のようです。

そして結末へ

さらに待つこと数十分…。

イメージテンプレートの詳細画面

結末

失敗しとるやろがい。

Faild内容
Operation timed out. This happens because the build and image distribution have exceeded the `buildTimeoutInMinutes`. Please review the build customization.log, and examine for long running operations. If expected, consider increasing the `buildTimeoutInMinutes` property in the Image Builder Template. For more information on troubleshooting, go to https://aka.ms/azvmimagebuilderts.
Deepl訳
操作がタイムアウトしました。これは、ビルドとイメージの配布が `buildTimeoutInMinutes` を超えたために起こります。ビルドのcustomization.logを確認し、長時間実行されている操作がないか調べてください。予想される場合は、イメージビルダーテンプレートの`buildTimeoutInMinutes`プロパティを増やすことを検討してください。トラブルシューティングの詳細については、https://aka.ms/azvmimagebuilderts を参照してください。

同様の内容が

az image builder show --name $imageTemplateName  --resource-group $imageResourceGroup

でも確認できました。

おわりに

今回は長すぎるのを待っててもダメでした。「長いな」と思ったときに何かをするべきだったなと反省。 さてもう一度トライするか…。