Azure PowerShellを使ってVMを作成する

はじめに

こちらの記事にて、Azure CLIを使ってイメージの詳細を固定したVMの作成方法を紹介いたしました。
こちらは、Azure PowerShellを用いた方法となります。

イメージを選択する

AzureVMを作成する場合、まずはイメージの選択から始まります。
AzureVMのイメージでは、以下の四つを決定する決める必要があります。
・Publisher: イメージの提供元
・Offer(Plan): イメージの提供元によって分類されたイメージの区分 
・SKU: ディストリビューションのメジャー リリースなど、Offer(plan)のインスタンス
・バージョン: 個別イメージのバージョン(ビルド情報など)
仮想マシンのイメージ指定の際は、これら四つの情報をコロン(:)で繋いだ情報を用いて指定します。
AzurePowerShellではこれら四つの情報を一つずつ、コマンドレットを叩いて順番に取得することで、設定します。

以下では、イメージを指定するために、それぞれの情報を検索する方法をご紹介します。

Publisherを検索する

Get-AzVMImagePublisher -Location <リージョン名>

まず、上記コマンドを用いて、ご利用のリージョンで指定可能なPublisher情報を取得します。

PS /Users/yohei/work/testapp> Get-AzVMImagePublisher -Location japaneast                                   

PublisherName                                                                      Location  Id
-------------                                                                      --------  --
<中略>
MicrosoftWindowsDesktop                                                            japaneast /Subscriptions/XXXXXXXX-
MicrosoftWindowsServer                                                             japaneast /Subscriptions/XXXXXXXX-
<中略>

例えば、WindowsDesktopOSを利用したい場合、上記結果のMicrosoftWindowsDesktopを選択します。

Offerを検索する

次に、Offerを調べます。Offerは大体、OSのバージョンに位置します。
こちらは、Get-AzVMImageOfferコマンドレットを利用します。

PS > Get-AzVMImageOffer -Location <リージョン名> -PublisherName MicrosoftWindowsDesktop
Offer                                        PublisherName           Location  Id
-----                                        -------------           --------  --
<中略>
windows-10-ppe                               MicrosoftWindowsDesktop japaneast /Subscriptions/XXXXXXXXX..../Providers/Microsoft.Compute/Locations…
windows-11                         MicrosoftWindowsDesktop japaneast /Subscriptions/XXXXXXXXX..../Providers/Microsoft.Compute/Locations…
<中略>
PS > 

これにより、Offer(OSのバージョン)までが確定します。
Windowsの場合は、Publisherが少しわかりづらいので、必要なOSがOfferで出てこない場合は、それっぽいPublisherに変更して、再度探してみる必要があります。

SKUを検索する

これは、OSのマイナーバージョンを検索するようなイメージです。Windows10やWindows11で言うと、20H2や21H1, 21H2を選択するようなイメージです。
こちらは、Get-AzVMImageSkuコマンドレットを利用します。

PS > Get-AzVMImageSku -Location <リージョン名> -PublisherName MicrosoftWindowsDesktop -Offer Windows-11

Skus                 Offer      PublisherName           Location  Id
----                 -----      -------------           --------  --
win11-21h2-avd       Windows-11 MicrosoftWindowsDesktop japaneast /Subscriptions/XXXXXXXX-..../Providers/Microsoft.Compute/Locations/japaneast/Publishers/Mi…
win11-21h2-ent       Windows-11 MicrosoftWindowsDesktop japaneast /Subscriptions/XXXXXXXX-..../Providers/Microsoft.Compute/Locations/japaneast/Publishers/Mi…
win11-21h2-entn      Windows-11 MicrosoftWindowsDesktop japaneast /Subscriptions/XXXXXXXX-..../Providers/Microsoft.Compute/Locations/japaneast/Publishers/Mi…
win11-21h2-pro       Windows-11 MicrosoftWindowsDesktop japaneast /Subscriptions/XXXXXXXX-..../Providers/Microsoft.Compute/Locations/japaneast/Publishers/Mi…
win11-21h2-pro-zh-cn Windows-11 MicrosoftWindowsDesktop japaneast /Subscriptions/XXXXXXXX-..../Providers/Microsoft.Compute/Locations/japaneast/Publishers/Mi…
win11-21h2-pron      Windows-11 MicrosoftWindowsDesktop japaneast /Subscriptions/XXXXXXXX-..../Providers/Microsoft.Compute/Locations/japaneast/Publishers/Mi…

PS > 

例えば、Windows11 Enterprise Edition 21h2を利用する場合は、win11-21h2-entとなります。

バージョンを選択する

最後にバージョンを指定することで、細かいビルドを指定します。
特にビルドは拘らないから、最新のものと言う方は、latestを指定することも可能です。

PS > Get-AzVMImage -PublisherName MicrosoftWindowsDesktop -Offer Windows-11 -Skus win11-21h2-ent -Location <リージョン名>

Version          Skus           Offer      PublisherName           Location  Id
-------          ----           -----      -------------           --------  --
22000.438.220116 win11-21h2-ent Windows-11 MicrosoftWindowsDesktop japaneast /Subscriptions/XXXXXXXX-....../Providers/Microsoft.Compute/Locations/japaneast/Pu…
22000.493.220201 win11-21h2-ent Windows-11 MicrosoftWindowsDesktop japaneast /Subscriptions/XXXXXXXX-....../Providers/Microsoft.Compute/Locations/japaneast/Pu…

PS > 

例えば、以降の作業では、バージョン22000.438.220116を指定してみようと思います。

実際にVMを作成する

実際にイメージを指定したVMの作成をしていきます。
今回は、以下の情報でVMを作成します。
・Publisher: MicrosoftWindowsDesktop
・Offer(Plan): Windows-11
・SKU: win11-21h2-ent
・バージョン: 22000.438.220116

そのため、VM作成時に指定するVMのイメージ情報は以下の以下のような形となります。

MicrosoftWindowsDesktop:Windows-11:win11-21h2-ent:2000.438.220116

上記のイメージを指定して、VMを作成してみます。

PS > New-AzVM -Location japaneast -ResourceGroupName rg-test -Name vm-test -Image "MicrosoftWindowsDesktop:Windows-11:win11-21h2-ent:22000.438.220116"

cmdlet New-AzVM at command pipeline position 1
Supply values for the following parameters:
Credential
User: adminuser
Password for user adminuser: ************

No Size value has been provided. The VM will be created with the default size Standard_D2s_v3.
                                                                                                                        
                                                                                                                        
ResourceGroupName        : rg-test                                                                                      
Id                       : /subscriptions/d76ce56a-2c1f-405e-a670-19627b182404/resourceGroups/rg-test/providers/Microsoft.Compute/virtualMachines/vm-test
VmId                     : 6f9c8ffa-44fc-453a-bb8e-4d7a3b1c60f4                                                         
Name                     : vm-test                                                                                      
Type                     : Microsoft.Compute/virtualMachines                                                            
Location                 : japaneast                                                                                    
Tags                     : {}                                                                                           
HardwareProfile          : {VmSize}                                                                                     
NetworkProfile           : {NetworkInterfaces}                                                                          
OSProfile                : {ComputerName, AdminUsername, WindowsConfiguration, Secrets, AllowExtensionOperations, RequireGuestProvisionSignal}
ProvisioningState        : Succeeded                                                                                    
StorageProfile           : {ImageReference, OsDisk, DataDisks}                                                          
FullyQualifiedDomainName : vm-test-661af5.japaneast.cloudapp.azure.com                                                  
                                                                                                                        
                                                                                                                        
PS >          

上記のように、イメージ以外は、デフォルト値ですが、VMImageを指定してのVM作成が完了しました。
下記のように今回指定したOS Build(2000.438)でVMが構築されていることが確認できます。
※Windowsの場合は、Versionとビルドが一致しますが、他のOSでは異なる可能性もあります。

まとめ

今回は、VMのイメージを選択する方法を記載いたしました。
VMのサイズは今回説明したものと同様、AzurePowerShellコマンドレットで情報を調べて、New-AzVMのオプションとして指定することで作成可能ですが、OSディスクの種類(Standard SSDやHDD)の選択では、もう少し細かい選択方法をしているする必要があります。
次回は、こちらについて設定する方法についてご紹介予定です。

参考


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