Localizar e usar imagens de VM do Azure Marketplace com o Azure PowerShell
Aplica-se a: ✔️ VMs ✔️ Linux VMs ✔️ do Windows Conjuntos ✔️ de escala flexíveis Conjuntos de balanças uniformes
Este artigo descreve como usar o Azure PowerShell para localizar imagens de VM no Azure Marketplace. Em seguida, você pode especificar uma imagem do Marketplace e planejar informações ao criar uma VM.
Você também pode procurar imagens e ofertas disponíveis usando o Azure Marketplace ou a CLI do Azure.
Terminologia
Uma imagem do Marketplace no Azure tem os seguintes atributos:
- Editor: A organização que criou a imagem. Exemplos: Canonical, MicrosoftWindowsServer
- Oferta: o nome de um grupo de imagens relacionadas criadas por um editor. Exemplos: UbuntuServer, WindowsServer
- SKU: uma instância de uma oferta, como uma versão principal de uma distribuição. Exemplos: 18.04-LTS, 2019-Datacenter
- Versão: O número da versão de uma imagem SKU.
Estes valores podem ser passados individualmente ou como uma imagem URN, combinando os valores separados pelos dois pontos (:). Por exemplo: Publisher:Offer:Sku:Version. Você pode substituir o número da versão na URN por latest
para usar a versão mais recente da imagem.
Se o editor de imagens fornecer outros termos de licença e compra, você deverá aceitá-los antes de poder usar a imagem. Para obter mais informações, consulte Aceitar termos do plano de compra.
Imagens padrão
O Powershell oferece vários aliases de imagem predefinidos para facilitar o processo de criação de recursos. Existem imagens diferentes para recursos com um sistema operacional Windows ou Linux. Vários cmdlets do Powershell, como New-AzVM
e New-AzVmss
, permitem que você insira o nome do alias como um parâmetro.
Por exemplo:
$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
Os nomes de alias de imagem do Linux e seus detalhes são:
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
Os nomes de alias de imagem do Windows e seus detalhes são:
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
Listar imagens
Você pode usar o PowerShell para restringir uma lista de imagens se quiser usar uma imagem específica que não é fornecida por padrão. Substitua os valores das variáveis abaixo para atender às suas necessidades.
Liste os editores de imagem usando Get-AzVMImagePublisher.
$locName="<location>" Get-AzVMImagePublisher -Location $locName | Select PublisherName
Para um determinado editor, liste suas ofertas usando Get-AzVMImageOffer.
$pubName="<publisher>" Get-AzVMImageOffer -Location $locName -PublisherName $pubName | Select Offer
Para um determinado editor e oferta, liste as SKUs disponíveis usando Get-AzVMImageSku.
$offerName="<offer>" Get-AzVMImageSku -Location $locName -PublisherName $pubName -Offer $offerName | Select Skus
Para uma SKU, liste as versões da imagem usando Get-AzVMImage.
$skuName="<SKU>" Get-AzVMImage -Location $locName -PublisherName $pubName -Offer $offerName -Sku $skuName | Select Version
Você também pode usar
latest
se quiser usar a imagem mais recente e não uma versão mais antiga específica.
Agora você pode combinar o editor, a oferta, a SKU e a versão selecionados em uma URN (valores separados por :). Passe essa URN com o -Image
parâmetro ao criar uma VM com o cmdlet New-AzVM . Você também pode substituir o número da versão na URN para latest
obter a versão mais recente da imagem.
Se você implantar uma VM com um modelo do Gerenciador de Recursos, deverá definir os parâmetros de imagem individualmente nas imageReference
propriedades. Veja a referência de modelo.
Ver propriedades do plano de compra
Algumas imagens de VM no Azure Marketplace têm outros termos de licença e compra que você deve aceitar antes de implantá-las programaticamente. Você precisa aceitar os termos da imagem uma vez por assinatura.
Para exibir as informações do plano de compra de uma imagem, execute o Get-AzVMImage
cmdlet. Se a PurchasePlan
propriedade na saída não null
for , a imagem tem termos que você precisa aceitar antes da implantação programática.
Por exemplo, a imagem do Windows Server 2016 Datacenter não tem termos adicionais, portanto, as PurchasePlan
informações são null
:
$version = "2016.127.20170406"
Get-AzVMImage -Location $locName -PublisherName $pubName -Offer $offerName -Skus $skuName -Version $version
A saída é semelhante à seguinte saída:
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 : []
O exemplo abaixo mostra um comando semelhante para a imagem Data Science Virtual Machine - Windows 2016 , que tem as seguintes PurchasePlan
propriedades: name
, product
e publisher
. Algumas imagens também têm uma promotion code
propriedade. Para implantar essa imagem, consulte as seções a seguir para aceitar os termos e habilitar a implantação programática.
Get-AzVMImage -Location "westus" -PublisherName "microsoft-ads" -Offer "windows-data-science-vm" -Skus "windows2016" -Version "0.2.02"
A saída é semelhante à seguinte saída:
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 : []
Para exibir os termos de licença, use o cmdlet Get-AzMarketplaceterms e passe os parâmetros do plano de compra. A saída fornece um link para os termos da imagem do Marketplace e mostra se você aceitou os termos anteriormente. Certifique-se de usar todas as letras minúsculas nos valores dos parâmetros.
Get-AzMarketplaceterms -Publisher "microsoft-ads" -Product "windows-data-science-vm" -Name "windows2016"
A saída será semelhante à seguinte:
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
Aceitar os termos do plano de compra
Use o cmdlet Set-AzMarketplaceterms para aceitar ou rejeitar os termos. Você só precisa aceitar os termos uma vez por assinatura para a imagem. Certifique-se de usar todas as letras minúsculas nos valores dos parâmetros.
$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
Criar uma nova VM a partir de uma imagem de mercado
Se você já tiver as informações sobre qual imagem deseja usar, poderá passar essas informações para o cmdlet Set-AzVMSourceImage para adicionar informações de imagem à configuração da VM. Consulte as próximas seções para pesquisar e listar as imagens disponíveis no mercado.
Algumas imagens pagas também exigem que você forneça informações do plano de compra usando o 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
...
Em seguida, você passará a configuração da VM junto com os outros objetos de configuração para o New-AzVM
cmdlet. Para obter um exemplo detalhado de como usar uma configuração de VM com o PowerShell, consulte este script.
Se você receber uma mensagem sobre como aceitar os termos da imagem, consulte a seção anterior Aceitar termos do plano de compra.
Criar uma nova VM a partir de um VHD com informações do plano de compra
Se você tiver um VHD existente que foi criado usando uma imagem do Azure Marketplace, talvez seja necessário fornecer as informações do plano de compra ao criar uma nova VM a partir desse VHD.
Se você ainda tiver a VM original ou outra VM criada a partir da mesma imagem, poderá obter o nome do plano, o editor e as informações do produto usando Get-AzVM. Este exemplo obtém uma VM chamada myVM no grupo de recursos myResourceGroup e exibe as informações do plano de compra.
$vm = Get-azvm `
-ResourceGroupName myResourceGroup `
-Name myVM
$vm.Plan
Se você não obteve as informações do plano antes que a VM original fosse excluída, você pode registrar uma solicitação de suporte. A solicitação de suporte precisa, no mínimo, do nome da VM, da ID da assinatura e do carimbo de data/hora da operação de exclusão.
Para criar uma VM usando um VHD, consulte este artigo Criar uma VM a partir de um VHD especializado e adicionar uma linha para adicionar as informações do plano à configuração da VM usando Set-AzVMPlan semelhante à seguinte:
$vmConfig = Set-AzVMPlan `
-VM $vmConfig `
-Publisher "publisherName" `
-Product "productName" `
-Name "planName"
Próximos passos
Para criar uma máquina virtual rapidamente com o cmdlet usando informações básicas de imagem, consulte Criar uma máquina virtual do Windows com o New-AzVM
PowerShell.
Para obter mais informações sobre como usar imagens do Azure Marketplace para criar imagens personalizadas em uma Galeria de Computação do Azure (anteriormente conhecida como Galeria de Imagens Compartilhadas), consulte Fornecer informações do plano de compra do Azure Marketplace ao criar imagens.