Azure仮想マシンのイメージ管理をAzure Compute Galleryに移行する-ARM Template編-

はじめに

前回までで、仮想マシン作成時のVMイメージ管理にAzure Compute Galleryを使う目途がつきました。

blog.jbs.co.jp

ですが、実際にこのイメージを利用するときはARM Templateを使っていました。VMイメージからAzure Compute Galleryに変更した時、どの程度ARM Template側を編集すればいいか、そもそも元と同じように作成できるのか、実際にやってみたいと思います。

GUIでの作成(途中まで)

まず、Azure Compute Galleryから利用したいVMバージョンを選び、GUIで仮想マシンの作成を進めます。

作成確認画面まで進んだら実際にリソースは作成せず、Automation用のテンプレートをダウンロードします。

テンプレートファイルの確認

ダウンロードしたテンプレートファイルを確認します。imageReferenceの部分が今回のイメージに該当しそうです。

テンプレートの書き換え

元々のテンプレートでは、imageReferenceを変数で指定していました。

    "variables": {
        "imageReference": {
            "id": "/subscriptions/(Subscription-Id)/resourceGroups/(Resource-Group-Name)/providers/Microsoft.Compute/images/(VM-Image-Name)"
        },

(中略)
                "storageProfile": {
                    "imageReference": "[variables('imageReference')]",
                    "osDisk": {
                        "createOption": "FromImage",
                        "managedDisk": {
                            "storageAccountType": "Standard_LRS"
                        }
                    }
                },

変数部分だけ書き換えればいけそうです。

        "imageReference": {
            "id": "/subscriptions/(Subscription-Id)/resourceGroups/(Resource-Group-Name)/providers/Microsoft.Compute/galleries/(Azure-Compute-Gallery-Name)/images/(VM定義名)/versions/(バージョン)"
        },

テンプレートからのデプロイ

実際に実行してみたところ、エラーになってしまいました。

The value of parameter imageReference.id is invalid.

調べてみると、apiVersionが古いと発生してしまうようです。(最初に作ったときのままで2016-04-30-previewになっていました...)

Azure ARM Deployment VM Creation from Shared Image Gallery Image Errors

apiVersionを上げると他の部分も要検証になってしまうのですが、ひとまず仮想マシンのみapiVersionを2022-03-01に上げて再実行したところ、うまくデプロイ出来ました。

おわりに

正直、もう少しテンプレート修正は苦戦すると思っていたのですが、拍子抜けするくらい簡単でした。*1

もともと書きたかったAzure Compute Galleryに関する内容はここまでだったのですが、本記事を書く際に、Azureリソースの展開に利用するBicepという言語の存在を知りました。

learn.microsoft.com

せっかくなので、今回使ったARMテンプレートをBicepに対応させる、という記事を次回書きたいと思います。

*1:強いて言えばapiVersionで引っかかりましたが

執筆担当者プロフィール
舟越 匠

舟越 匠(日本ビジネスシステムズ株式会社)

人材開発部に所属。社内向けの技術研修をメインにしつつ、JBS Tech BlogやMS認定資格取得の推進役もやっています。資格としてはAzure Solutions Architect Expertを所持。好きなサービスはPower Automate / Logic Apps。好きなアーティストはZABADAK。

担当記事一覧