Trovare e usare immagini di macchine virtuali di Azure Marketplace con Azure PowerShell

Attenzione

Questo articolo fa riferimento a CentOS, una distribuzione Linux prossima allo stato EOL (End of Life, fine del ciclo di vita). Prendere in considerazione l'uso e il piano di conseguenza. Per altre informazioni, vedere le linee guida per la fine della vita di CentOS.

Si applica a: ✔️ macchine virtuali Linux ✔️ macchine virtuali Windows ✔️ set di scalabilità flessibili ✔️ set di scalabilità uniformi

Questo articolo descrive come usare Azure PowerShell per trovare immagini di VM in Microsoft Azure Marketplace. È quindi possibile specificare un'immagine del Marketplace e le informazioni sul piano quando si crea una macchina virtuale.

È anche possibile esplorare le immagini e le offerte disponibili usando Azure Marketplace o l'interfaccia della riga di comando di Azure.

Terminologia

Un'immagine del Marketplace in Azure ha gli attributi seguenti:

  • Editore: organizzazione che ha creato l'immagine. Esempi: Canonical, MicrosoftWindowsServer
  • Offerta: nome di un gruppo di immagini correlate create da un editore. Esempi: UbuntuServer, WindowsServer
  • SKU: istanza di un'offerta, ad esempio una versione principale di una distribuzione. Esempi: 18.04-LTS, 2019-Datacenter
  • Versione: numero di versione di uno SKU immagine.

Questi valori possono essere passati singolarmente o come URN immagine, combinando i valori separati dai due punti (:). Ad esempio: Publisher:Offer:Sku:Version. È possibile sostituire il numero di versione nell'URN con latest per usare la versione più recente dell'immagine.

Se l'editore di immagini fornisce altre condizioni di licenza e acquisto, è necessario accettarli prima di poter usare l'immagine. Per altre informazioni, vedere Accettare le condizioni del piano di acquisto.

Immagini predefinite

PowerShell offre diversi alias di immagine predefiniti per semplificare il processo di creazione delle risorse. Esistono immagini diverse per le risorse con un sistema operativo Windows o Linux. Diversi cmdlet di PowerShell, ad esempio New-AzVM e New-AzVmss, consentono di immettere il nome dell'alias come parametro. Ad esempio:

$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 CentOS85Gen285Gen2 -Credential $credential -DomainNameLabel $domainNameLabel

I nomi degli alias dell'immagine Linux e i relativi dettagli sono:

Alias                     Architecture    Offer                         Publisher               Sku                                 Urn                                                                            Version
-----------------------   --------------  ----------------------------  ----------------------  ----------------------------------  ------------------------------------------------------------------------------ ---------
CentOS85Gen2              x64             CentOS                        OpenLogic               8_5-gen2                            OpenLogic:CentOS:8_5-gen2:latest                                               latest
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

I nomi degli alias di immagine di Windows e i relativi dettagli sono:

Alias                   Architecture    Offer                         Publisher               Sku                                 Urn                                                                              Version
----------------------- --------------  ----------------------------  ----------------------  ----------------------------------  ------------------------------------------------------------------------------   ---------
Win2022Datacenter       x64             WindowsServer                 MicrosoftWindowsServer  2022-Datacenter                     MicrosoftWindowsServer:WindowsServer:2022-Datacenter: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

Elencare le immagini

È possibile usare PowerShell per restringere un elenco di immagini se si vuole usare un'immagine specifica non fornita per impostazione predefinita. Sostituire i valori delle variabili seguenti per soddisfare le proprie esigenze.

  1. Elencare gli autori di immagini usando Get-AzVMImagePublisher.

    $locName="<location>"
    Get-AzVMImagePublisher -Location $locName | Select PublisherName
    
  2. Per un determinato editore, elencare le offerte usando Get-AzVMImageOffer.

    $pubName="<publisher>"
    Get-AzVMImageOffer -Location $locName -PublisherName $pubName | Select Offer
    
  3. Per un determinato editore e offerta, elencare gli SKU disponibili usando Get-AzVMImageSku.

    $offerName="<offer>"
    Get-AzVMImageSku -Location $locName -PublisherName $pubName -Offer $offerName | Select Skus
    
  4. Per uno SKU, elencare le versioni dell'immagine usando Get-AzVMImage.

    $skuName="<SKU>"
    Get-AzVMImage -Location $locName -PublisherName $pubName -Offer $offerName -Sku $skuName | Select Version
    

    È anche possibile usare latest se si vuole usare l'immagine più recente e non una versione precedente specifica.

Ora è possibile combinare l'editore, l'offerta, lo SKU e la versione selezionati in un URN (valori separati da :). Passare questo URN con il parametro -Image quando si crea una macchina virtuale con il cmdlet New-AzVM. È anche possibile sostituire il numero di versione nell'URN con latest per ottenere la versione più recente dell'immagine.

Se si distribuisce una macchina virtuale con un modello di Resource Manager, è necessario impostare i parametri dell'immagine singolarmente nelle imageReference proprietà. Vedere le informazioni di riferimento sul modello.

Visualizzare le proprietà del piano di acquisto

Alcune immagini di macchine virtuali in Azure Marketplace hanno altre condizioni di licenza e acquisto che è necessario accettare prima di poterle distribuire a livello di codice. È necessario accettare le condizioni dell'immagine una sola volta per ogni sottoscrizione.

Per visualizzare informazioni sul piano di acquisto di un'immagine, eseguire il cmdlet Get-AzVMImage. Se la proprietà PurchasePlan nell'output non è null, l'immagine presenta condizioni che è necessario accettare prima della distribuzione a livello di codice.

Ad esempio, l'immagine di Windows Server 2016 Datacenter non ha condizioni aggiuntive, quindi l'informazione relativa a PurchasePlan è null:

$version = "2016.127.20170406"
Get-AzVMImage -Location $locName -PublisherName $pubName -Offer $offerName -Skus $skuName -Version $version

L'output è simile all'output seguente:

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   : []

L'esempio seguente mostra un comando analogo per l'immagine Data Science Virtual Machine - Windows 2016, che ha le proprietà PurchasePlan seguenti: name, product e publisher. Alcune immagini hanno anche una proprietà promotion code. Per distribuire questa immagine, vedere le sezioni seguenti per accettare le condizioni e abilitare la distribuzione a livello di codice.

Get-AzVMImage -Location "westus" -PublisherName "microsoft-ads" -Offer "windows-data-science-vm" -Skus "windows2016" -Version "0.2.02"

L'output è simile all'output seguente:

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   : []

Per visualizzare le condizioni di licenza, usare il cmdlet Get-AzMarketplaceterms e passare i parametri del piano di acquisto. L'output include un collegamento alle condizioni di licenza per l'immagine del Marketplace e mostra se le condizioni sono già state accettate in precedenza. Assicurarsi di usare tutte lettere minuscole nei valori dei parametri.

Get-AzMarketplaceterms -Publisher "microsoft-ads" -Product "windows-data-science-vm" -Name "windows2016"

L'output sarà simile al seguente:

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

Accettare le condizioni del piano di acquisto

Usare il cmdlet Set-AzMarketplaceterms per accettare o rifiutare le condizioni. È sufficiente accettare le condizioni per l'immagine una sola volta per ogni sottoscrizione. Assicurarsi di usare tutte lettere minuscole nei valori dei parametri.

$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

Creare una nuova macchina virtuale da un'immagine del marketplace

Se si dispone già delle informazioni sull'immagine da usare, è possibile passare tali informazioni nel cmdlet Set-AzVMSourceImage per aggiungere informazioni sull'immagine alla configurazione della macchina virtuale. Vedere le sezioni successive per la ricerca e l'inserzione delle immagini disponibili nel marketplace.

Alcune immagini a pagamento richiedono anche di fornire informazioni sul piano di acquisto usando 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

...

Si passerà quindi la configurazione della macchina virtuale insieme agli altri oggetti di configurazione al New-AzVM cmdlet . Per un esempio dettagliato dell'uso di una configurazione di macchina virtuale con PowerShell, vedere questo script.

Se viene visualizzato un messaggio relativo all'accettazione delle condizioni dell'immagine, vedere la sezione precedente Accettare le condizioni del piano di acquisto.

Creare una nuova macchina virtuale da un disco rigido virtuale con informazioni sul piano di acquisto

Se si dispone di un disco rigido virtuale esistente creato usando un'immagine di Azure Marketplace, potrebbe essere necessario fornire le informazioni sul piano di acquisto quando si crea una nuova macchina virtuale da tale disco rigido virtuale.

Se la macchina virtuale originale è ancora stata creata o un'altra macchina virtuale creata dalla stessa immagine, è possibile ottenere il nome del piano, l'editore e le informazioni sul prodotto usando Get-AzVM. Questo esempio ottiene una macchina virtuale denominata myVM nel gruppo di risorse myResourceGroup e quindi visualizza le informazioni sul piano di acquisto.

$vm = Get-azvm `
   -ResourceGroupName myResourceGroup `
   -Name myVM
$vm.Plan

Se non sono state recuperate le informazioni sul piano prima dell'eliminazione della macchina virtuale originale, è possibile inviare una richiesta di supporto. La richiesta di supporto richiede almeno il nome della macchina virtuale, l'ID sottoscrizione e il timestamp dell'operazione di eliminazione.

Per creare una macchina virtuale usando un disco rigido virtuale, vedere questo articolo Creare una macchina virtuale da un disco rigido virtuale specializzato e aggiungere in una riga per aggiungere le informazioni sul piano alla configurazione della macchina virtuale usando Set-AzVMPlan simile al seguente:

$vmConfig = Set-AzVMPlan `
   -VM $vmConfig `
   -Publisher "publisherName" `
   -Product "productName" `
   -Name "planName"

Passaggi successivi

Per creare rapidamente una macchina virtuale con il cmdlet New-AzVM usando le informazioni di base sull'immagine, vedere Creare una macchina virtuale Windows con PowerShell.

Per altre informazioni sull'uso delle immagini di Azure Marketplace per creare immagini personalizzate in una raccolta di calcolo di Azure (in precedenza nota come Raccolta immagini condivise), vedere Fornire informazioni sul piano di acquisto di Azure Marketplace durante la creazione di immagini.