Creare un'immagine gestita legacy di una macchina virtuale generalizzata in Azure

Importante

Questo articolo illustra la tecnologia di immagine gestita meno recente. Per la tecnologia più recente, i clienti sono invitati a usare Azure Compute Gallery. Tutte le nuove funzionalità, ad esempio ARM64, Avvio attendibile e Macchina virtuale riservata, sono supportate solo tramite La raccolta di calcolo di Azure. Se si dispone di un'immagine gestita esistente, è possibile usarla come origine e creare un'immagine della raccolta di calcolo di Azure. Per altre informazioni, vedere Creare una definizione di immagine e una versione dell'immagine.

Dopo aver contrassegnato una macchina virtuale come generalized in Azure, non è possibile riavviare la macchina virtuale.

Un'immagine gestita supporta fino a 20 distribuzioni simultanee. Il tentativo di creare più di 20 macchine virtuali contemporaneamente dalla stessa immagine gestita può causare timeout del provisioning dovuti alle limitazioni delle prestazioni di archiviazione di un singolo disco rigido virtuale. Per creare più di 20 macchine virtuali contemporaneamente, usare un'immagine di Raccolta di calcolo di Azure (precedentemente chiamata Raccolta immagini condivise) configurata con una replica ogni 20 distribuzioni di macchina virtuale simultanee.

Per informazioni sulla fatturazione delle immagini gestite, vedere Prezzi per Managed Disks.

Prerequisiti

  • Per creare un'immagine è necessaria una macchina virtuale generalizzata.

Interfaccia della riga di comando: creare un'immagine gestita legacy di una macchina virtuale

Creare un'immagine gestita della macchina virtuale con az image create. Nell'esempio seguente viene creata un'immagine denominata myImage nel gruppo di risorse denominato myResourceGroup usando la risorsa macchina virtuale denominata myVM.

az image create \
  --resource-group myResourceGroup \
  --name myImage --source myVM

Note

The image is created in the same resource group as your source VM. You can create VMs in any resource group within your subscription from this image. From a management perspective, you may wish to create a specific resource group for your VM resources and images.

If you are capturing an image of a generation 2 VM, also use the --hyper-v-generation V2 parameter. for more information, see Generation 2 VMs.

If you would like to store your image in zone-resilient storage, you need to create it in a region that supports availability zones and include the --zone-resilient true parameter.

This command returns JSON that describes the VM image. Save this output for later reference.

PowerShell: creare un'immagine gestita legacy di una macchina virtuale

La creazione di un'immagine direttamente nella VM garantisce che l'immagine includa tutti i dischi associati alla VM, compresi il disco del sistema operativo e gli eventuali dischi dati. Questo esempio illustra come creare un'immagine gestita da una VM che usa dischi gestiti.

Prima di iniziare, verificare di avere la versione più recente del modulo Azure PowerShell. Per trovare la versione, eseguire Get-Module -ListAvailable Az in PowerShell. Se è necessario eseguire l'aggiornamento, vedere Install Azure PowerShell on Windows with PowerShellGet (Installare Azure PowerShell in Windows con PowerShellGet). Se si esegue PowerShell in locale, eseguire Connect-AzAccount per creare una connessione con Azure.

Nota

Se si vuole archiviare l'immagine in una risorsa di archiviazione con ridondanza della zona, è necessario crearla in un'area che supporta le zone di disponibilità e includere il parametro -ZoneResilient nella configurazione dell'immagine (comando New-AzImageConfig).

Per creare un'immagine della VM, seguire questa procedura:

  1. Creare alcune variabili.

    $vmName = "myVM"
    $rgName = "myResourceGroup"
    $location = "EastUS"
    $imageName = "myImage"
    
  2. Assicurarsi che la macchina virtuale sia stata deallocata.

    Stop-AzVM -ResourceGroupName $rgName -Name $vmName -Force
    
  3. Impostare lo stato della macchina virtuale su Generalizzato.

    Set-AzVm -ResourceGroupName $rgName -Name $vmName -Generalized
    
  4. Trovare la macchina virtuale.

    $vm = Get-AzVM -Name $vmName -ResourceGroupName $rgName
    
  5. Creare la configurazione dell'immagine.

    $image = New-AzImageConfig -Location $location -SourceVirtualMachineId $vm.Id 
    
  6. Creare l'immagine.

    New-AzImage -ImageName $imageName -ResourceGroupName $rgName -Image $imageConfig
    

PowerShell: creare un'immagine gestita legacy da un disco gestito

Se si vuole creare un'immagine del solo disco del sistema operativo, specificare l'ID del disco gestito come disco del sistema operativo:

  1. Creare alcune variabili.

    $vmName = "myVM"
    $rgName = "myResourceGroup"
    $location = "EastUS"
    $imageName = "myImage"
    
  2. Ottenere la VM.

    $vm = Get-AzVm -Name $vmName -ResourceGroupName $rgName
    
  3. Ottenere l'ID del disco gestito.

    $diskID = $vm.StorageProfile.OsDisk.ManagedDisk.Id
    
  4. Creare la configurazione dell'immagine.

    $imageConfig = New-AzImageConfig -Location $location
    $imageConfig = Set-AzImageOsDisk -Image $imageConfig -OsState Generalized -OsType Windows -ManagedDiskId $diskID
    
  5. Creare l'immagine.

    New-AzImage -ImageName $imageName -ResourceGroupName $rgName -Image $imageConfig
    

PowerShell: creare un'immagine gestita legacy da uno snapshot

Per creare un'immagine gestita da uno snapshot di una VM generalizzata, seguire questa procedura:

  1. Creare alcune variabili.

    $rgName = "myResourceGroup"
    $location = "EastUS"
    $snapshotName = "mySnapshot"
    $imageName = "myImage"
    
  2. Trovare lo snapshot.

    $snapshot = Get-AzSnapshot -ResourceGroupName $rgName -SnapshotName $snapshotName
    
  3. Creare la configurazione dell'immagine.

    $imageConfig = New-AzImageConfig -Location $location
    $imageConfig = Set-AzImageOsDisk -Image $imageConfig -OsState Generalized -OsType Windows -SnapshotId $snapshot.Id
    
  4. Creare l'immagine.

    New-AzImage -ImageName $imageName -ResourceGroupName $rgName -Image $imageConfig
    

PowerShell: creare un'immagine gestita legacy da una macchina virtuale che usa un account di archiviazione

Per creare un'immagine gestita da una macchina virtuale che non usa dischi gestiti, è necessario l'URI del disco rigido virtuale del sistema operativo nell'account di archiviazione, con il formato seguente: https://mystorageaccount.blob.core.windows.net/vhdcontainer/vhdfilename.vhd. In questo esempio il disco rigido virtuale si trova in mystorageaccount in un contenitore denominato vhdcontainer e il nome file del disco rigido virtuale è vhdfilename.vhd.

  1. Creare alcune variabili.

    $vmName = "myVM"
    $rgName = "myResourceGroup"
    $location = "EastUS"
    $imageName = "myImage"
    $osVhdUri = "https://mystorageaccount.blob.core.windows.net/vhdcontainer/vhdfilename.vhd"
    
  2. Arrestare o deallocare la VM.

    Stop-AzVM -ResourceGroupName $rgName -Name $vmName -Force
    
  3. Contrassegnare la macchina virtuale come generalizzata.

    Set-AzVm -ResourceGroupName $rgName -Name $vmName -Generalized    
    
  4. Creare un'immagine tramite il disco rigido virtuale del sistema operativo generalizzato.

    $imageConfig = New-AzImageConfig -Location $location
    $imageConfig = Set-AzImageOsDisk -Image $imageConfig -OsType Windows -OsState Generalized -BlobUri $osVhdUri
    $image = New-AzImage -ImageName $imageName -ResourceGroupName $rgName -Image $imageConfig
    

Interfaccia della riga di comando: creare una macchina virtuale da un'immagine gestita legacy

Creare una macchina virtuale usando l'immagine creata con az vm create. Nell'esempio seguente viene creata una macchina virtuale denominata myVMDeployed dall'immagine denominata myImage.

az vm create \
  --resource-group myResourceGroup \
  --name myVMDeployed \
  --image myImage\
  --admin-username azureuser \
  --ssh-key-value ~/.ssh/id_rsa.pub

Interfaccia della riga di comando: creare una macchina virtuale in un altro gruppo di risorse da un'immagine gestita legacy

È possibile creare macchine virtuali da un'immagine in qualsiasi gruppo di risorse all'interno della sottoscrizione. Per creare una macchina virtuale in un gruppo di risorse diverso rispetto all'immagine, specificare l'ID di risorsa completa per l'immagine. Usare az image list per visualizzare un elenco di immagini. L'output è simile all'esempio seguente:

"id":
"/subscriptions/guid/resourceGroups/MYRESOURCEGROUP/providers/Microsoft.Compute/images/myImage",
"location": "westus", "name": "myImage",

L'esempio seguente usa az vm create per creare una macchina virtuale in un gruppo di risorse diverso rispetto all'immagine di origine, specificando l'ID di risorsa immagine.

az vm create \
  --resource-group myOtherResourceGroup \
  --name myOtherVMDeployed \
  --image "/subscriptions/guid/resourceGroups/MYRESOURCEGROUP/providers/Microsoft.Compute/images/myImage" \
  --admin-username azureuser \
  --ssh-key-value ~/.ssh/id_rsa.pub

Portale: Creare una macchina virtuale da un'immagine gestita legacy

Creare una macchina virtuale in Azure: trovare l'immagine nel portale, scegliere "Crea macchina virtuale", compilare i dettagli, selezionare le dimensioni, regolare le impostazioni e distribuire.

  1. Accedere al portale di Azure per trovare una macchina virtuale gestita. Cercare e selezionare Immagini.

  2. Selezionare l'immagine che si intende usare dall'elenco. Si apre la pagina Panoramica delle immagini.

  3. Scegliere Crea macchina virtuale dal menu.

  4. Immettere le informazioni relative alla macchina virtuale. Il nome utente e la password immessi in questa posizione verranno usati per accedere alla macchina virtuale. Al termine, selezionare OK. È possibile creare la nuova macchina virtuale in un gruppo di risorse esistente o scegliere Crea nuovo per creare un nuovo gruppo di risorse per archiviare la macchina virtuale.

  5. Selezionare una dimensione per la VM. Per visualizzare altre dimensioni, selezionare Visualizza tutto o modificare il filtro Supported disk type (Tipo di disco supportato).

  6. In impostazioni apportare le modifiche in base alle esigenze e selezionare OK.

  7. Nella pagina di riepilogo dovrebbe essere visualizzato il nome dell'immagine indicato come Immagine privata nell'elenco. Selezionare OK per avviare la distribuzione della macchina virtuale.

PowerShell: creare una macchina virtuale da un'immagine gestita legacy

È possibile usare PowerShell per creare una macchina virtuale da un'immagine usando il set di parametri semplificato per il cmdlet New-AzVm. L'immagine deve trovarsi nello stesso gruppo di risorse in cui verrà creata la macchina virtuale.

Il set di parametri semplificato per New-AzVm richiede solo di specificare nome, gruppo di risorse e nome per l'immagine da cui creare una macchina virtuale. New-AzVm userà il valore del parametro -Name come nome di tutte le risorse create automaticamente. In questo esempio, vengono forniti nomi più dettagliati per ogni risorsa, ma consentendo al cmdlet di crearli automaticamente. È anche possibile creare in anticipo le risorse, ad esempio la rete virtuale, e passare il nome della risorsa nel cmdlet. Se è possibile trovarle in base al nome, New-AzVm userà le risorse esistenti.

Nell'esempio seguente, viene creata una VM denominata myVMFromImage nel gruppo di risorse myResourceGroup dall’immagine chiamata myImage.

New-AzVm `
    -ResourceGroupName "myResourceGroup" `
    -Name "myVMfromImage" `
    -ImageName "myImage" `
    -Location "East US" `
    -VirtualNetworkName "myImageVnet" `
    -SubnetName "myImageSubnet" `
    -SecurityGroupName "myImageNSG" `
    -PublicIpAddressName "myImagePIP" 

Passaggio successivo