【Azure/Virtual Machines】Azure VMで利用可能なMarketplaceイメージ(OSイメージ)を検索する方法

こんにちは、Aireです。

今回はAzure VMで利用可能なOSイメージを、Azure CLIを使用して検索する方法を紹介します。

目次

Azure CLIでOSイメージを表示する

Azure CLIを使用してaz vm image listコマンドを実行すると、利用可能なOSイメージを表示できます。

<実行例>

以下、コマンドの実行時に指定するオプションを記載します。(イメージの絞り込みまたは出力に関するオプションのみ記載します)

<オプション>

オプション情報必須/任意オプションの説明
--all任意全てのイメージを表示します。省略すると、オフラインでキャッシュされたイメージのみが表示されます。
--location
または
-l
任意イメージの共有元となるリージョンを指定します。あらかじめaz configure --defaults location=<location>コマンドで既定のリージョンを指定しておくと、本オプションは省略可能です。
--architecture任意イメージのアーキテクチャを指定します(x64またはArm64)。
--offer
または
-f
任意イメージのグループ名を指定します(WindowsServerやRHELなど)。完全一致ではなく部分一致による検索が行われます。
--publisher
または
-p
任意イメージの発行元を指定します(MicrosoftWindowsServerやRedHatなど)。完全一致ではなく部分一致による検索が行われます。
--sku
または
-s
任意イメージのメジャーリリースを指定します(2019-datacenter-gensecondや8-lvm-gen2など)。完全一致ではなく部分一致による検索が行われます。
--query任意グローバルパラメータの1つ。コマンドの結果に対してJMESPathクエリを実行できます。 JMESPathは、CLI の出力からデータを選択して変更できるようにする、JSON用のクエリ言語です。
--output
または
-o
任意グローバルパラメータの1つ。実行結果の表示形式を指定します。表示形式の種類は以下のAzure公式ドキュメントを参照してください。

<コマンドの出力情報>

出力情報出力情報の説明出力例
Architectureイメージのアーキテクチャx64
Publisherイメージの発行元MicrosoftWindowsServer
OfferイメージのグループWindowsServer
Skuイメージのメジャーリリース2022-datacenter-azure-edition
VersionSKUのバージョン20348.1487.230106
Urnイメージの識別子。publisher、offer、sku、versionをコロン(:)で連結した値MicrosoftWindowsServer:WindowsServer:2022-datacenter-azure-edition:20348.1487.230106

特定のOSのイメージを新しい順に表示する

各OSのイメージを新しい順に表示するためのコマンド例を紹介します。また、表示するOSイメージの前提として、ここでは第2世代仮想マシンのイメージのみを表示します。

第1世代仮想マシンと第2世代仮想マシンの違いは以下の公式サイトを参照してください。

Windows Server

Windows Serverを表示する場合、イメージの発行元に関連するオプション--offer--publisherの値をそれぞれ以下のように指定します。

オプション引数値
--offerWindowsServer
--publisherMicrosoftWindowsServer

以下、Windows Serverの各バージョンの表示方法を紹介します。

Windows Server 2019

--queryオプションでaz vm image listコマンドの出力結果からsku2019-datacenter-gensecond且つversionの先頭が17763から始まるイメージを抽出し、version情報に含まれる日付でソートします。出力結果には、urnのみを含めています。

<コマンド例>

<実行結果>

Windows Server 2022

Windows Server 2022の場合は、az vm image listコマンドの出力結果を、version情報に含まれる日付で直接ソートしても上手くできませんでした。

理由は、version情報の20348.xxxx.yyyyyyに含まれるxxxxの部分について、最新イメージ(以下実行例の場合、1726)よりも特定の古いイメージ(以下実行例の場合、887)の方が先頭の値が大きいためです。

そのため、以下のコマンド例では、--queryオプションでsku2022-datacenter-azure-edition(通常エディションが良い場合は2022-datacenter-g2を指定)であるイメージのurnのみをtsvフォーマットで抽出し、その後、sortコマンドを使用して、20348.xxxx.yyyyyyに含まれるyyyyyyの部分を対象にソートしています。

<コマンド例>

<実行結果>

Red Hat Enterprise Linux Server

Red Hat Enterprise Linux Serverを表示する場合、イメージの発行元に関連するオプション--offer--publisherの値をそれぞれ以下のように指定します。

オプション引数値
--offerRHEL
--publisherRedHat

以下、Red Hat Enterprise Linux Serverの各バージョンの表示方法を紹介します。

RHEL 8

--sku gen2で第2世代仮想マシンを指定し、--queryオプションでaz vm image listコマンドの出力結果からofferRHEL且つversionの先頭が8.(マイナーバージョンまで絞り込む場合は8.6など)から始まるイメージを抽出し、version情報に含まれる日付でソートします。出力結果には、urnのみを含めています。

<コマンド例>

<実行結果>

RHEL 9

RHEL 8と同じように、--sku gen2で第2世代仮想マシンを指定し、--queryオプションでaz vm image listコマンドの出力結果からofferRHEL且つversionの先頭が9.(マイナーバージョンまで絞り込む場合は9.2など)から始まるイメージを抽出し、version情報に含まれる日付でソートします。出力結果には、urnのみを含めています。

<コマンド例>

<実行結果>

Ubuntu Server

Ubuntu Serverを表示する場合、イメージの発行元に関連するオプション--offer--publisherの値をそれぞれ以下のように指定します。

オプション引数値
--offerバージョンが20.04より前:UbuntuServer
バージョンが20.04以降:0001-com-ubuntu-server
--publisherCanonical

以下、Ubuntu Serverの各バージョンの表示方法を紹介します。

Ubuntu Server 20.04より前

--sku lts-gen2で第2世代仮想マシンおよび長期サポート版(LTS)のイメージを指定し、--queryオプションでaz vm image listコマンドの出力結果をversion情報に含まれる日付でソートします。出力結果には、urnのみを含めています。その後、grepコマンドでイメージ名にdaily_0-が含まれるものを除外します。

<コマンド例>

<実行結果>

特定のバージョンを表示する場合は、以下のようにstarts_with関数を使用します。

<コマンド例>

<実行結果>

Ubuntu Server 20.04以降

--sku lts-gen2で第2世代仮想マシンおよび長期サポート版(LTS)のイメージを指定し、--queryオプションでaz vm image listコマンドの出力結果をversion情報に含まれる日付でソートします。出力結果には、urnのみを含めています。その後、grepコマンドでイメージ名にdailyが含まれるものを除外します。

<コマンド例>

<実行結果>

特定のバージョンを表示する場合は、以下のようにstarts_with関数を使用します。

<コマンド例>

<実行結果>

この記事を書いた人

目次