Azure PowerShell を使用して Azure Marketplace VM イメージを検索して使用する
適用対象: ✔️ Linux VM ✔️ Windows VM ✔️ フレキシブル スケール セット ✔️ 均一スケール セット
この記事では、Azure PowerShell を使用して Azure Marketplace 内で VM イメージを検索する方法について説明します。 その後、VM の作成時に Marketplace イメージとプランの情報を指定できるようになります。
また、Azure Marketplace または Azure CLI を使用して、使用できるイメージとオファーを参照することもできます。
用語
Azure Marketplace イメージには、次の属性があります。
- 発行元: イメージを作成した組織です。 例: Canonical、MicrosoftWindowsServer
- プラン: 発行元によって作成された関連するイメージのグループ名です。 例: UbuntuServer、WindowsServer
- SKU: ディストリビューションのメジャー リリースなど、プランのインスタンス。 例: 18.04-LTS、2019-Datacenter
- バージョン: イメージの SKU のバージョン番号。
これらの値は、個別に、またはイメージ URN として渡すことができます。その際、値はコロン (:) で区切って指定します。 例: Publisher:Offer:Sku:Version。 URN 内のバージョン番号を latest
に置き換えると、イメージの最新バージョンを使用することができます。
イメージの発行元が他のライセンスや購入契約条件を提示している場合、イメージを使用するには、それらに事前に同意する必要があります。 詳細については、「購入プランのご契約条件への同意」を参照してください。
既定のイメージ
Powershell には、リソース作成プロセスを容易にするために、事前に定義されたイメージのエイリアスがいくつか用意されています。 Windows または Linux オペレーティング システムを使用するリソースに対する、さまざまなイメージが存在します。 New-AzVM
や New-AzVmss
などのいくつかの Powershell コマンドレットを使用すると、エイリアス名をパラメーターとして入力できます。
たとえば次のような点です。
$rgname = <Resource Group Name>
$location = <Azure Region>
$vmName = "v" + $rgname
$domainNameLabel = "d" + $rgname
$securePassword = <Password> | ConvertTo-SecureString -AsPlainText -Force
$username = <Username>
$credential = New-Object System.Management.Automation.PSCredential ($username, $securePassword)
New-AzVM -ResourceGroupName $rgname -Location $location -Name $vmName -image Ubuntu2204 -Credential $credential -DomainNameLabel $domainNameLabel
Linux イメージのエイリアス名とその詳細は次のとおりです。
Alias Architecture Offer Publisher Sku Urn Version
----------------------- -------------- ---------------------------- ---------------------- ---------------------------------- ------------------------------------------------------------------------------ ---------
Debian11 x64 Debian-11 Debian 11-backports-gen2 Debian:debian-11:11-backports-gen2:latest latest
FlatcarLinuxFreeGen2 x64 flatcar-container-linux-free kinvolk stable kinvolk:flatcar-container-linux-free:stable:latest latest
OpenSuseLeap154Gen2 x64 opensuse-leap-15-4 SUSE gen2 SUSE:opensuse-leap-15-4:gen2:latest latest
RHELRaw8LVMGen2 x64 RHEL RedHat 8-lvm-gen2 RedHat:RHEL:8-lvm-gen2:latest latest
SLES x64 sles-15-sp3 SUSE gen2 SUSE:sles-15-sp3:gen2:latest latest
Ubuntu2204 x64 0001-com-ubuntu-server-jammy Canonical 22_04-lts-gen2 Canonical:0001-com-ubuntu-server-jammy:22_04-lts-gen2:latest latest
Windows イメージのエイリアス名とその詳細は次のとおりです。
Alias Architecture Offer Publisher Sku Urn Version
----------------------- -------------- ---------------------------- ---------------------- ---------------------------------- ------------------------------------------------------------------------------ ---------
Win2022AzureEdition x64 WindowsServer MicrosoftWindowsServer 2022-datacenter-azure-edition MicrosoftWindowsServer:WindowsServer:2022-datacenter-azure-edition:latest latest
Win2022AzureEditionCore x64 WindowsServer MicrosoftWindowsServer 2022-datacenter-azure-edition-core MicrosoftWindowsServer:WindowsServer:2022-datacenter-azure-edition-core:latest latest
Win10 x64 Windows MicrosoftVisualStudio Windows-10-N-x64 MicrosoftVisualStudio:Windows:Windows-10-N-x64:latest latest
Win2019Datacenter x64 WindowsServer MicrosoftWindowsServer 2019-Datacenter MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest latest
Win2016Datacenter x64 WindowsServer MicrosoftWindowsServer 2016-Datacenter MicrosoftWindowsServer:WindowsServer:2016-Datacenter:latest latest
Win2012R2Datacenter x64 WindowsServer MicrosoftWindowsServer 2012-R2-Datacenter MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:latest latest
Win2012Datacenter x64 WindowsServer MicrosoftWindowsServer 2012-Datacenter MicrosoftWindowsServer:WindowsServer:2012-Datacenter:latest latest
イメージの一覧表示
既定で提供されていない特定のイメージを使用する場合は、PowerShell を使用してイメージの一覧を絞り込むことができます。 必要に応じて、以下の変数の値を置き換えてください。
Get-AzVMImagePublisher を使用して、イメージの発行元を一覧表示します。
$locName="<location>" Get-AzVMImagePublisher -Location $locName | Select PublisherName
指定されたパブリッシャーについては、Get-AzVMImageOffer を使用してプランを一覧表示します。
$pubName="<publisher>" Get-AzVMImageOffer -Location $locName -PublisherName $pubName | Select Offer
特定の発行元とプランについては、Get-AzVMImageSku を使用して、利用可能な SKU を一覧表示します。
$offerName="<offer>" Get-AzVMImageSku -Location $locName -PublisherName $pubName -Offer $offerName | Select Skus
SKU の場合は、Get-AzVMImage を使用してイメージのバージョンを一覧表示します。
$skuName="<SKU>" Get-AzVMImage -Location $locName -PublisherName $pubName -Offer $offerName -Sku $skuName | Select Version
特定の古いバージョンではなく、最新のイメージを使用する場合は、
latest
を使用することもできます。
これで、選択した発行元、プラン、SKU、およびバージョンを URN (: で区切られた値) へと結合することができます。 New-AzVM コマンドレットで VM を作成するときに、この URN を -Image
パラメーターを使用して渡します。 また、URN 内のバージョン番号を latest
に置き換えて、最新バージョンのイメージを取得することもできます。
Resource Manager テンプレートを使って VM をデプロイする場合は、imageReference
プロパティでイメージ パラメーターを個別に設定する必要があります。 テンプレート リファレンスをご覧ください。
購入プランのプロパティを表示する
Azure Marketplace の一部の VM イメージには、プログラムでデプロイする前に同意する必要がある他のライセンスや購入契約条件があります。 サブスクリプションごとに 1 回、イメージの契約条件に同意する必要があります。
イメージの購入プラン情報を表示するには、Get-AzVMImage
コマンドレットを実行します。 出力内の PurchasePlan
プロパティが null
ではない場合、イメージには、プログラムによるデプロイの前に同意しなければならない使用条件があります。
たとえば、Windows Server 2016 Datacenter イメージに追加条項がないのは、PurchasePlan
情報が null
であるためです。
$version = "2016.127.20170406"
Get-AzVMImage -Location $locName -PublisherName $pubName -Offer $offerName -Skus $skuName -Version $version
出力は次の出力のようになります。
Id : /Subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Providers/Microsoft.Compute/Locations/westus/Publishers/MicrosoftWindowsServer/ArtifactTypes/VMImage/Offers/WindowsServer/Skus/2016-Datacenter/Versions/2019.0.20190115
Location : westus
PublisherName : MicrosoftWindowsServer
Offer : WindowsServer
Skus : 2019-Datacenter
Version : 2019.0.20190115
FilterExpression :
Name : 2019.0.20190115
OSDiskImage : {
"operatingSystem": "Windows"
}
PurchasePlan : null
DataDiskImages : []
下の例は、Data Science Virtual Machine - Windows 2016 イメージの同様のコマンドを示しています。次の PurchasePlan
プロパティが表示されます: name
、product
、および publisher
。 イメージによっては、promotion code
プロパティもあります。 このイメージをデプロイするには、次のセクションを参照して使用条件に同意し、プログラムによるデプロイを有効にします。
Get-AzVMImage -Location "westus" -PublisherName "microsoft-ads" -Offer "windows-data-science-vm" -Skus "windows2016" -Version "0.2.02"
出力は次の出力のようになります。
Id : /Subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Providers/Microsoft.Compute/Locations/westus/Publishers/microsoft-ads/ArtifactTypes/VMImage/Offers/windows-data-science-vm/Skus/windows2016/Versions/19.01.14
Location : westus
PublisherName : microsoft-ads
Offer : windows-data-science-vm
Skus : windows2016
Version : 19.01.14
FilterExpression :
Name : 19.01.14
OSDiskImage : {
"operatingSystem": "Windows"
}
PurchasePlan : {
"publisher": "microsoft-ads",
"name": "windows2016",
"product": "windows-data-science-vm"
}
DataDiskImages : []
ライセンス条項を表示するには、Get-AzMarketplaceterms コマンドレットを使用し、購入プラン パラメーターを渡します。 出力には、Marketplace イメージの使用条件へのリンクと、以前その使用条件に同意したかどうかが表示されます。 パラメーターの値は全小文字で入力してください。
Get-AzMarketplaceterms -Publisher "microsoft-ads" -Product "windows-data-science-vm" -Name "windows2016"
出力は次のようになります。
Publisher : microsoft-ads
Product : windows-data-science-vm
Plan : windows2016
LicenseTextLink : https://storelegalterms.blob.core.windows.net/legalterms/3E5ED_legalterms_MICROSOFT%253a2DADS%253a24WINDOWS%253a2DDATA%253a2DSCIENCE%253a2DVM%253a24WINDOWS2016%253a24OC5SKMQOXSED66BBSNTF4XRCS4XLOHP7QMPV54DQU7JCBZWYFP35IDPOWTUKXUC7ZAG7W6ZMDD6NHWNKUIVSYBZUTZ245F44SU5AD7Q.txt
PrivacyPolicyLink : https://www.microsoft.com/EN-US/privacystatement/OnlineServices/Default.aspx
Signature : 2UMWH6PHSAIM4U22HXPXW25AL2NHUJ7Y7GRV27EBL6SUIDURGMYG6IIDO3P47FFIBBDFHZHSQTR7PNK6VIIRYJRQ3WXSE6BTNUNENXA
Accepted : False
Signdate : 1/25/2019 7:43:00 PM
購入プランの契約条件に同意する
Set-AzMarketplaceterms コマンドレットを使用して、使用条件に同意するか、または拒否します。 使用条件に同意する必要があるのは、イメージのサブスクリプションごとに 1 回だけです。 パラメーターの値は全小文字で入力してください。
$agreementTerms=Get-AzMarketplaceterms -Publisher "microsoft-ads" -Product "windows-data-science-vm" -Name "windows2016"
Set-AzMarketplaceTerms -Publisher "microsoft-ads" -Product "windows-data-science-vm" -Name "windows2016" -Terms $agreementTerms -Accept
Publisher : microsoft-ads
Product : windows-data-science-vm
Plan : windows2016
LicenseTextLink : https://storelegalterms.blob.core.windows.net/legalterms/3E5ED_legalterms_MICROSOFT%253a2DADS%253a24WINDOWS%253a2DDATA%253a2DSCIENCE%253a2DV
M%253a24WINDOWS2016%253a24OC5SKMQOXSED66BBSNTF4XRCS4XLOHP7QMPV54DQU7JCBZWYFP35IDPOWTUKXUC7ZAG7W6ZMDD6NHWNKUIVSYBZUTZ245F44SU5AD7Q.txt
PrivacyPolicyLink : https://www.microsoft.com/EN-US/privacystatement/OnlineServices/Default.aspx
Signature : XXXXXXK3MNJ5SROEG2BYDA2YGECU33GXTD3UFPLPC4BAVKAUL3PDYL3KBKBLG4ZCDJZVNSA7KJWTGMDSYDD6KRLV3LV274DLBXXXXXX
Accepted : True
Signdate : 2/23/2018 7:49:31 PM
Marketplace イメージから VM を作成する
使用するイメージに関する情報が既にある場合は、その情報を Set-AzVMSourceImage コマンドレットに渡して、イメージ情報を VM 構成に追加することができます。 Marketplace で入手できるイメージの検索と一覧表示については、次のセクションを参照してください。
一部の有料イメージでは、Set-AzVMPlan を使用して購入プランの情報も提供する必要があります。
...
$vmConfig = New-AzVMConfig -VMName "myVM" -VMSize Standard_D1
# Set the Marketplace image
$offerName = "windows-data-science-vm"
$skuName = "windows2016"
$version = "19.01.14"
$vmConfig = Set-AzVMSourceImage -VM $vmConfig -PublisherName $publisherName -Offer $offerName -Skus $skuName -Version $version
# Set the Marketplace plan information, if needed
$publisherName = "microsoft-ads"
$productName = "windows-data-science-vm"
$planName = "windows2016"
$vmConfig = Set-AzVMPlan -VM $vmConfig -Publisher $publisherName -Product $productName -Name $planName
...
その後、VM 構成と他の構成オブジェクトを New-AzVM
コマンドレットに渡します。 PowerShell で VM 構成を使用する詳細な例については、このスクリプトを参照してください。
イメージの使用条件への同意に関するメッセージが表示された場合は、前のセクション「購入プランのご契約条件への同意」を参照してください。
購入プラン情報を使用して VHD から新しい VM を作成する
Azure Marketplace イメージを使用して作成された既存の VHD がある場合は、その VHD から新しい VM を作成するときに、購入プランの情報を指定することが必要になる場合があります。
元の VM、または同じイメージから作成した他の VM がある場合は、Get-AzVM を使用して、そこからプラン名、発行元、および製品情報を取得できます。 この例では、myResourceGroup リソース グループの myVM という名前の VM を取得し、購入プラン情報を表示します。
$vm = Get-azvm `
-ResourceGroupName myResourceGroup `
-Name myVM
$vm.Plan
元の VM が削除される前にプラン情報を取得しなかった場合は、サポート リクエストを提出できます。 サポート リクエストには、少なくとも VM 名、サブスクリプション ID、削除操作のタイム スタンプが必要です。
VHD を使用して VM を作成するには、「特殊化した VHD から VM を作成する」の記事を参照して、Set-AzVMPlan を使用して以下のように VM の設定にプラン情報を追加する行を追加します。
$vmConfig = Set-AzVMPlan `
-VM $vmConfig `
-Publisher "publisherName" `
-Product "productName" `
-Name "planName"
次のステップ
基本イメージ情報を使用し、New-AzVM
コマンドレットを使って仮想マシンをすばやく作成するには、「PowerShell で Windows 仮想マシンを作成する」をご覧ください。
Azure Marketplace イメージを使用して Azure Compute Gallery (旧称 Shared Image Gallery) にカスタム イメージを作成する方法の詳細については、イメージ作成時に Azure Marketplace 購入プラン情報を提供する方法に関する記事を参照してください。