🏗️
Azure VM Image BuilderがGUI対応していたらしいので試す
モチベ
- そもそもAzure VM Image Builder触ったことない
- 触っておきたい
用語
- Azure Compute Gallery(ACG)
- イメージの共有のためのサービス
- イメージ定義
- イメージのメタデータ的なもの。例えばそれがWindowsなのかLinuxなのか等を記述しておくもの
- イメージテンプレートの中でイメージ定義を指定する
- つまり、一連のイメージのバージョン管理単位とも言える
- イメージテンプレート
- 具体的なイメージバージョンを作成するための"テンプレート"
- Marketplaceやカスタムイメージをもとにして作成
- イメージテンプレートを"ビルド"することによって、特定バージョンのイメージの実体が作成される
- Azure VM Image Builder
- イメージテンプレートからビルドするタイミングで元となるイメージをカスタマイズするための機能
- 元となるイメージに対してPowerShellのコマンドやスクリプトを実行させたり、再起動させたりといった処理を行ったうえでイメージとして発行できる
- 例:
- MarketplaceのWindows Server 2019を日本語化して発行する
- Azure Compute Galleryに発行されているカスタムイメージに最新のWindows Updateを適用してから新しいバージョンとして再度Azure Compute Galleryにイメージを発行する
- どうやら超直近でGUI対応したらしい
- VMイメージバージョン
- Image Builderによってイメージテンプレートからビルドされるイメージの実体
- 特定のVMイメージバージョンからVMを作成することが可能
- VMイメージバージョンのビルドにはかなり時間を要するが、一度VMイメージバージョンとして発行しておけば、そこからはVMの作成時に指定するだけでよい
検証
- AVDのセッションホストのイメージを日本語化して展開するようなシナリオを想定
- 後述のPowerShellのスクリプトがクライアントOSにしか対応していないため
- 最初はWindows Server 2022でやろうとしたが、Install-Languageコマンドが使えないということが発覚して急遽路線変更した(時間溶けた)
- マルチセッションOSで使えるかの確認もついでに行う
- Windows Serverでの日本語化はもっと作りこみが必要なので注意
Azure Compute Galleryの作成
-
Azure Compute Galleryを作成
-
ACG側からVMイメージ定義(VMイメージバージョンの管理単位)を作成することができるが、イメージテンプレート作成時に新規作成できるため、事前作成の必要はなし
イメージテンプレートの作成
-
AVDでの利用を想定して、windows11のシングルセッションOSとマルチセッションOSで試す
-
ターゲットとなるACGは選択し、イメージ定義はここで新規作成する
-
このあたりはイメージからVMをデプロイするときにオーバーライドできるため一旦そのままでよい
-
重要なところはここ
-
スクリプトを使用してカスタマイズが可能
- 以下のようなスクリプトを使って日本語化する
powershell
Install-Language ja-JP -CopyToSettings
Set-SystemPreferredUILanguage ja-JP
Set-WinHomeLocation -GeoId 0x7a
Copy-UserInternationalSettingsToSystem -WelcomeScreen $True -NewUser $True
Set-TimeZone -Id "Tokyo Standard Time"
参考:
-
念のため再起動も追加する
-
このあたりの設定がGUIでできるようになったのがアップデートらしく、もともとはローカルで開発しなければならなかったものがAzure Portalで完結するようになった
-
そして裏ではAzure Image Builderがイメージのビルド時にこのカスタマイズを加えたうえで、Azure Compute Galleryにイメージを発行してくれる
イメージテンプレートのビルドによる"VMイメージバージョン"の作成
- イメージテンプレートを選択し、「ビルドの開始」をクリック
- ビルドが開始されると、グレーアウトする
- コマンドにエラーがなければ、日本語化処理によって数時間単位で時間がかかる
- 逆に、いろいろとカスタムしているのにすぐに終わる場合は、スクリプトがエラー終了している可能性が高い
VMの作成
- イメージバージョンが発行されたら、
VMイメージ定義
もしくはVMイメージバージョン
の画面からVMの作成を行う - 通常のVM作成の画面が開くので、画面に従ってVMを作成
日本語化されていることの確認
-
VMのデプロイが終了したらRDP接続して言語を確認する
-
Windows Modules Installerが走っている画面が出た(ただこの時点ですでに日本語化されていることが分かる)
-
しばらく待つと、日本語化されたマルチセッションOSに無事にログインできた
-
シングルセッションOSも日本語化されていることが確認できた
おわり
- Image Builderのビルドは時間がかかるものの、一度ビルドしてしまえばそこからすぐにVMを立てることができるため同じ構成のVMを大量に作成するようなAVDのワークロードとかなり相性がいい
- 日本語化のコマンドもマルチセッションOSでも使える
- しかもそれがAzure Portal内で完結するようになったということで、ユーザも増えそうな予感
GitHubで編集を提案
Discussion