Поиск и использование образов виртуальных машин в Azure Marketplace с помощью Azure PowerShell
Применимо к: ✔️ Виртуальные машины Linux ✔️ Виртуальные машины Windows ✔️ Универсальные масштабируемые наборы
В этой статье описывается, как с помощью Azure PowerShell находить образы виртуальных машин в Azure Marketplace. Таким образом, при создании виртуальной машины вы сможете просто указывать образ из Marketplace и информацию из плана.
Также, с помощью Microsoft Azure Marketplace или Azure CLI, вы сможете просматривать доступные образы и предложения.
Терминология
Атрибуты образа Marketplace в Azure:
- Издатель. Организация, создавшая образ. Примеры: Canonical, MicrosoftWindowsServer.
- Предложение. Имя группы связанных образов, созданных издателем. Примеры: Ubuntu Server, WindowsServer
- Номер SKU. Экземпляр предложения, например основной выпуск дистрибутива. Примеры: 18.04-LTS, 2019-Datacenter
- Версия. Номер версии SKU образа.
Эти значения можно передавать по отдельности или в виде образаURN, объединив эти значения через двоеточие (:). Например: Издатель:Предложение:SKU:Версия. Можно заменить номер версии в URN на latest
(самая последняя), чтобы получить последнюю версию образа.
Если издатель изображений предоставляет другие условия лицензии и покупки, необходимо принять их, прежде чем использовать образ. Дополнительные сведения см. в разделе Принятие условий плана покупки.
Изображения по умолчанию
PowerShell предлагает несколько предварительно определенных псевдонимов изображений, чтобы упростить процесс создания ресурсов. Существуют различные образы ресурсов с операционной системой Windows или Linux. Несколько командлетов PowerShell, например New-AzVM
и New-AzVmss
позволяют ввести имя псевдонима в качестве параметра.
Например:
$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
По определенному издателю и его предложению составьте список доступных SKU, с помощью команды Get-AzVMImageSku.
$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 (значения, разделенные ":"). Передайте этот URN с параметром -Image
при создании виртуальной машины с помощью командлета New-AzVM. При необходимости вы можете заменить номер версии в URN словом latest
(самая последняя), чтобы получить последнюю версию образа.
При развертывании виртуальной машины с шаблоном Resource Manager необходимо задать параметры образа отдельно в свойствах imageReference
. Ознакомьтесь со статьей о справочнике по шаблонам.
Просмотрите условия плана покупки
Некоторые образы виртуальных машин в Azure Marketplace имеют другие условия лицензии и покупки, которые необходимо принять перед их программным развертыванием. Необходимо принять условия образа один раз на подписку.
Чтобы просмотреть сведения о плане покупки образа, выполните командлет 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 : []
В примере ниже показана подобная команда для образа Виртуальной машины для обработки и анализа данных в 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. Необходимо принять условия соглашения для каждой подписки в образе. Обязательно используйте только строчные буквы в значениях параметров.
$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
Если у вас уже есть информация о том какой образ вы будете использовать, чтобы добавить эти сведения в конфигурацию виртуальной машины, отправьте их в командлет Set-AzVMSourceImage. В следующих разделах содержатся сведения о поиске и добавлении образов, доступных в 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
...
Затем нужно передать конфигурацию виртуальной машины (вместе с другими объектами конфигурации) в командлет New-AzVM
. Подробный пример использования конфигурации виртуальной машины с применением PowerShell см. в этом скрипте.
Если вы получите сообщение о принятии условий образа, обратитесь к предыдущему разделу Принятие условий плана покупки.
Создание новой виртуальной машины с виртуального жесткого диска с использованием информации из плана покупки
Если у вас уже есть виртуальный жесткий диск, созданный с помощью образа из Azure Marketplace, при создании виртуальной машины на базе этого диска, вам может понадобиться информация из плана покупки.
Если у вас до сих пор осталась исходная виртуальная машина или у вас есть другая виртуальная машина, созданная с помощью того же образа, вы можете получить имя плана, издателя и сведения о продукте с помощью команды Get-AzVM. В данном примере мы видим виртуальную машину с именем myVM из группы ресурсов myResourceGroup, а далее отображается информация плана покупки.
$vm = Get-azvm `
-ResourceGroupName myResourceGroup `
-Name myVM
$vm.Plan
Если у вас нет информацию из плана, перед тем как удалять первоначальную виртуальную машину, можно разместить Запрос в службу поддержки. Запрос на поддержку должен иметь минимальное имя виртуальной машины, идентификатор подписки и метку времени операции удаления.
Чтобы создать виртуальную машину на базе виртуального жесткого диска обратитесь к статье Создание виртуальной машины со специального виртуального жесткого диска и добавьте соответствующим образом информацию из плана в конфигурацию виртуальной машины. Это делается с помощью командлета Set-AzVMPlan, аналогично следующему примеру:
$vmConfig = Set-AzVMPlan `
-VM $vmConfig `
-Publisher "publisherName" `
-Product "productName" `
-Name "planName"
Следующие шаги
Инструкции по быстрому созданию виртуальной машины с помощью командлета New-AzVM
на основе полученных данных образа см. в статье Создание виртуальной машины Windows с помощью PowerShell.
Дополнительные сведения об использовании образов Azure Marketplace для создания пользовательских образов в Коллекции вычислений Azure (ранее известная, как Коллекция общих образов) см. в статье Предоставление информации из плана покупки в Azure Marketplace при создании образов.