Azure Virtual Machineをビルドバージョン(イメージバージョン)を指定して作成する方法

Azure Virtual Machineを複数作成する際、バージョン(ビルド)を統一したいということがあります。
例えば、本番環境とステージング環境で完全に同じ構成のVMを作る場合がこれに該当します。
この記事では、Windows Server2019 Datacenter の構築を題材に、VMのバージョンを固定して作成する方法を記載します。

Azure PortalからはLatestしか指定できない

Azure Portalから、イメージを選択すると、下図のようにイメージの種類の選択はできますが、バージョンまでは指定できません。

実際に、Azure Portalから作成したVMのバージョンをAzure CLIでVM情報を出力して確認すると、以下のように出力され、Versionはlatest指定になっていて、VM作成時の最新である、"17763.3125.2112070401"で作成されたことがわかります。

ビルドバージョンを指定するには

ビルドのバージョンを指定するために利用される主要な方法は、以下のいずれかになります。
・Azure Powershellを利用する
・Azure CLIを利用する
・ARMテンプレートを利用する
※確認していないのですが、REST APIでもバージョン指定できるのではないかと思います。

以降では、AzrureCLIを利用する方法について紹介します。

Azure CLIを利用してバージョンを指定する

Azure CLIで利用バージョンを指定してVMをデプロイする手順は、以下のような手順になります。
1.  利用可能なVMイメージのリストとバージョンを取得する
2. VM作成時のコマンドにoffer, publisher, sku, versionのオプションを指定する

以下では、実際に手順を試してみます。

手順1:利用可能なVMイメージのリストとバージョンを取得

Azure CLIでVMイメージのリストの取得は以下のように実施します。
az vm listコマンドを利用します。
この際に、以下のオプションを指定します。
--location:AzureVMをデプロイでする場所を指定します
--publisher:イメージの作成者です。
      今回はMicrosoftWindowsServerを指定します
--offer:OSとして何を利用するかを指定します。
    今回は、WindowsServerを指定します。
--sku:OSのバージョンに相当する部分です。
    今回は2019-datacenter-gensecondを指定します。
--all:インターネットから最新のイメージリストを取得できます

実行結果に出力されている、Version部分がイメージのビルドバージョンになります。
なお、VM作成時に使う情報は、Urnの列の情報になります。これは、Publisher, Offer, Sku, Versionの情報を「Publisher:Offer:Sku:Version」の形式で繋いだものとなります。

手順2:VM作成時のコマンドでオプションを指定する

次にVMの作成に移ります。
ポイントは、手順1で確認したUrnの情報をaz createコマンドに--imageオプションとして設定することです。
例えば、以下のようなコマンドを設定します。

az vm create --resource-group <リソースグループ名> --name <VM名> --image <イメージUrl(Publisher:Offer:Sku:Version)>
※その他のVMサイズやパブリックIPなどのオプションも併せて設定することが可能です。

デプロイした結果の確認をしていきます。
Windowsイメージのバージョンは、OSのビルドバージョンと一致します。
そのため、作成したVMにログインして、OSのビルドバージョンを確認すると、実際のOSのBuildもイメージのバージョンと一致していることが確認できます。

今回は、イメージのバージョンを指定してVMを作成する方法を記載しました。イメージバージョンを指定すると、OSのバージョンを固定することができますので、利用したいシーンに合わせてご利用してみてください。

参考


この記事が気に入ったらサポートをしてみませんか?