Trovare e usare immagini di macchine virtuali di Azure Marketplace con Azure PowerShell
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: Editore:Offerta:Sku:Versione. È 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 accettarle 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 Ubuntu2204 -Credential $credential -DomainNameLabel $domainNameLabel
I nomi degli alias dell'immagine Linux e i relativi dettagli sono i seguenti:
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
I nomi degli alias di immagine di Windows e i relativi dettagli sono i seguenti:
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
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.
Elencare gli autori di immagini usando Get-AzVMImagePublisher.
$locName="<location>" Get-AzVMImagePublisher -Location $locName | Select PublisherName
Per un determinato editore, elencare le offerte usando Get-AzVMImageOffer.
$pubName="<publisher>" Get-AzVMImageOffer -Location $locName -PublisherName $pubName | Select Offer
Per un determinato editore e una determinata offerta, elencare gli SKU disponibili usando Get-AzVMImageSku.
$offerName="<offer>" Get-AzVMImageSku -Location $locName -PublisherName $pubName -Offer $offerName | Select Skus
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, impostare i parametri dell'immagine singolarmente nelle proprietà imageReference
. 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 cmdlet New-AzVM
. 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 o un'altra macchina virtuale è stata 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 l'articolo Creare una macchina virtuale da un disco rigido virtuale specializzato e aggiungere una riga per inserire le informazioni sul piano nella configurazione della macchina virtuale usando Set-AzVMPlan in modo 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.