Localizar e usar imagens de VM do Azure Marketplace com Azure PowerShell
Aplica-se a: ✔️ VMs do Linux ✔️ VMs do Windows ✔️ Conjuntos de dimensionamento flexíveis ✔️ Conjuntos de dimensionamento uniformes
Este tópico descreve como usar o Azure PowerShell para localizar imagens de VM no Azure Marketplace. Você pode então especificar uma imagem do Marketplace e planejar informações ao criar uma VM.
Você também pode procurar imagens e ofertas disponíveis usando a vitrine do Azure Marketplace ou a CLI do Azure.
Terminologia
Uma imagem do Marketplace no Azure tem os seguintes atributos:
- Publicador: a organização que criou a imagem. Exemplos: Canonical, MicrosoftWindowsServer
- Oferta: Nome de um grupo de imagens relacionadas criadas por um publicador. 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 de versão de uma imagem de SKU.
Esses valores podem ser passados individualmente ou como uma URNde imagem, combinando os valores separados por dois-pontos (:). Por exemplo: Publicador:Oferta:SKU:Versão. Você pode substituir o número de versão na URN por latest
para usar a versão mais recente da imagem.
Se o distribuidor de imagens fornecer outros termos de licença e compra, você deverá aceitar esses termos antes de usar a imagem. Para obter mais informações, consulte Aceitar os 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. Há diferentes imagens 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 distribuidores de imagem usando Get-AzVMImagePublisher.
$locName="<location>" Get-AzVMImagePublisher -Location $locName | Select PublisherName
Para um determinado distribuidor, liste as ofertas dele usando Get-AzVMImageOffer.
$pubName="<publisher>" Get-AzVMImageOffer -Location $locName -PublisherName $pubName | Select Offer
Para um determinado distribuidor e oferta, liste os SKUs disponíveis usando Get-AzVMImageSku.
$offerName="<offer>" Get-AzVMImageSku -Location $locName -PublisherName $pubName -Offer $offerName | Select Skus
Para um 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 anterior específica.
Agora você pode combinar o editor, a oferta, a SKU e a versão selecionados em um URN (valores separados por :). Passe esse URN com o parâmetro -Image
quando criar uma VM com o cmdlet New-AzVM. Você pode substituir o número de versão na URN por latest
para usar a versão mais recente da imagem.
Se você implantar uma VM com um modelo do Resource Manager, você precisará definir os parâmetros da imagem individualmente nas propriedades imageReference
. Consulte a referência de modelo.
Ver as propriedades do plano de compra
Algumas imagens de VM no Azure Marketplace têm outros termos de licença e de compra que você deve aceitar antes de implantá-las programaticamente. Você precisa aceitar os termos da imagem uma vez para cada assinatura.
Para exibir as informações do plano de compra de uma imagem, execute o cmdlet Get-AzVMImage
. Se a propriedade PurchasePlan
na saída não for null
, isso significa que 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 informações de PurchasePlan
sãonull
:
$version = "2016.127.20170406"
Get-AzVMImage -Location $locName -PublisherName $pubName -Offer $offerName -Skus $skuName -Version $version
A saída deve ser semelhante ao seguinte exemplo:
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 da Máquina Virtual de Ciência de Dados - Windows 2016, que possui as seguintes PurchasePlan
propriedades: name
, product
e publisher
. Algumas imagens também têm um promotion code
propriedade. Para implantar essa imagem, consulte as seções a seguir para aceitar os termos e ativar 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 deve ser semelhante ao seguinte exemplo:
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 da 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 de parâmetros.
Get-AzMarketplaceterms -Publisher "microsoft-ads" -Product "windows-data-science-vm" -Name "windows2016"
A saída terá esta aparência:
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 cmlet 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 de 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 de uma imagem do Marketplace
Se você já tiver as informações sobre a imagem que deseja usar, você 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 Marketplace.
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 outros objetos de configuração para o cmdlet New-AzVM
. 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 os termos do plano de compra.
Criar uma nova VM 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 na mesma imagem, você pode 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, em seguida, exibe as informações do plano de compra.
$vm = Get-azvm `
-ResourceGroupName myResourceGroup `
-Name myVM
$vm.Plan
Se você não tiver as informações de plano antes da exclusão da VM original, 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 de um VHD especializado e adicionar uma linha para adicionar as informações do plano à configuração da VM usando Set-AzVMPlan semelhante ao seguinte:
$vmConfig = Set-AzVMPlan `
-VM $vmConfig `
-Publisher "publisherName" `
-Product "productName" `
-Name "planName"
Próximas etapas
Para criar uma máquina virtual rapidamente com o cmdlet New-AzVM
usando informações básicas de imagem, consulte Criar uma máquina virtual do Windows com o 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), confira Fornecer informações sobre o plano de compra do Azure Marketplace ao criar imagens.