Come creare un'immagine di una macchina virtuale o un disco rigido virtualeHow to create an image of a virtual machine or VHD

Per creare più copie di una macchina virtuale da usare in Azure, acquisire un'immagine della macchina virtuale o il disco rigido virtuale del sistema operativo.To create multiple copies of a virtual machine (VM) to use in Azure, capture an image of the VM or the OS VHD. Per creare un'immagine, è necessario rimuovere le informazioni sull'account personale, in modo da poter distribuire più volte in totale sicurezza.To create an image, you need remove personal account information which makes it safer to deploy multiple times. Nei passaggi seguenti si eseguirà il deprovisioning di una macchina virtuale esistente e quindi la deallocazione e la creazione di un'immagine.In the following steps you deprovision an existing VM, deallocate and create an image. È possibile usare questa immagine per creare macchine virtuali in qualsiasi gruppo di risorse all'interno della sottoscrizione.You can use this image to create VMs across any resource group within your subscription.

Per creare una copia della macchina virtuale Linux esistente per il backup o il debug o per caricare un disco rigido virtuale Linux specializzato da una macchina virtuale locale, vedere Caricare e creare una VM Linux da un'immagine disco personalizzata.If you want to create a copy of your existing Linux VM for backup or debugging, or upload a specialized Linux VHD from an on-premises VM, see Upload and create a Linux VM from custom disk image.

È possibile anche usare Packer per creare una configurazione personalizzata.You can also use Packer to create your custom configuration. Per altre informazioni sull'uso di Packer, vedere Come usare Packer per creare immagini di macchine virtuali di Linux in Azure.For more information on using Packer, see How to use Packer to create Linux virtual machine images in Azure.

Prima di iniziareBefore you begin

Accertarsi che siano soddisfatti i prerequisiti seguenti:Ensure that you meet the following prerequisites:

Comandi rapidiQuick commands

Per una versione semplificata di questo argomento e per informazioni sulle procedure di testing e valutazione o sulle macchine virtuali in Azure, vedere Creare un'immagine personalizzata di una macchina virtuale di Azure tramite l'interfaccia della riga di comando.For a simplified version of this topic, for testing, evaluating or learning about VMs in Azure, see Create a custom image of an Azure VM using the CLI.

Passaggio 1: Eseguire il deprovisioning della macchina virtualeStep 1: Deprovision the VM

Eseguire il deprovisioning della macchina virtuale usando l'agente della macchina virtuale di Azure per eliminare file e dati specifici della macchina.You deprovision the VM, using the Azure VM agent, to delete machine specific files and data. Usare il comando waagent con il parametro -deprovision+user nella macchina virtuale Linux di origine.Use the waagent command with the -deprovision+user parameter on your source Linux VM. Per altre informazioni, vedere Guida dell'utente dell'agente Linux di Azure.For more information, see the Azure Linux Agent user guide.

  1. Connettersi alla VM Linux tramite un client SSH.Connect to your Linux VM using an SSH client.
  2. Nella finestra SSH digitare il comando seguente:In the SSH window, type the following command:

    sudo waagent -deprovision+user
    


    Nota

    Eseguire questo comando solo su una VM che si intende acquisire come immagine.Only run this command on a VM that you intend to capture as an image. Ciò non garantisce che dall'immagine vengano cancellate tutte le informazioni sensibili o che l'immagine sia adatta per la ridistribuzione.It does not guarantee that the image is cleared of all sensitive information or is suitable for redistribution. Il parametro +user rimuove anche l'ultimo account utente di cui è stato effettuato il provisioning.The +user parameter also removes the last provisioned user account. Se invece si vuole mantenere le credenziali dell'account nella macchina virtuale, usare semplicemente -deprovision per non rimuovere l'account utente.If you want to keep account credentials in the VM, just use -deprovision to leave the user account in place.

  3. Digitare y per continuare.Type y to continue. È possibile aggiungere il parametro -force per evitare questo passaggio di conferma.You can add the -force parameter to avoid this confirmation step.

  4. Dopo aver eseguito il comando, digitare exit.After the command completes, type exit. Questo passaggio chiude il client SSH.This step closes the SSH client.

Passaggio 2: Creare l'immagine della macchina virtualeStep 2: Create VM image

Usare l'interfaccia della riga di comando di Azure 2.0 per contrassegnare la macchina virtuale come generalizzata e acquisire l'immagine.Use the Azure CLI 2.0 to mark the VM as generalized and capture the image. Nell'esempio seguente sostituire i nomi dei parametri di esempio con i valori desiderati.In the following examples, replace example parameter names with your own values. I nomi dei parametri di esempio includono myResourceGroup, myVnet e myVM.Example parameter names include myResourceGroup, myVnet, and myVM.

  1. Deallocare la macchina virtuale su cui è stato eseguito il deprovisioning con az vm deallocate.Deallocate the VM that you deprovisioned with az vm deallocate. L'esempio seguente dealloca la VM denominata myVM nel gruppo di risorse myResourceGroup:The following example deallocates the VM named myVM in the resource group named myResourceGroup:

    az vm deallocate \
      --resource-group myResourceGroup \
      --name myVM
    
  2. Contrassegnare la macchina virtuale come generalizzata con il comando az vm generalize.Mark the VM as generalized with az vm generalize. Nell'esempio seguente la macchina virtuale denominata myVM viene contrassegnata come generalizzata nel gruppo di risorse myResourceGroup:The following example marks the the VM named myVM in the resource group named myResourceGroup as generalized:

    az vm generalize \
      --resource-group myResourceGroup \
      --name myVM
    
  3. Creare ora un'immagine della risorsa macchina virtuale con az image create.Now create an image of the VM resource with az image create. Nell'esempio seguente viene creata un'immagine denominata myImage nel gruppo di risorse denominato myResourceGroup usando la risorsa della macchina virtuale denominata myVM:The following example creates an image named myImage in the resource group named myResourceGroup using the VM resource named myVM:

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

    Nota

    L'immagine viene creata nello stesso gruppo di risorse della macchina virtuale di origine.The image is created in the same resource group as your source VM. Con questa immagine è possibile creare macchine virtuali in qualsiasi gruppo di risorse all'interno della sottoscrizione.You can create VMs in any resource group within your subscription from this image. Da una prospettiva di gestione, si consiglia di creare un gruppo di risorse specifico per le risorse e le immagini della macchina virtuale.From a management perspective, you may wish to create a specific resource group for your VM resources and images.

Passaggio 3: Distribuire una VM dall'immagine acquisitaStep 3: Create a VM from the captured image

Creare una macchina virtuale usando l'immagine creata con az vm create.Create a VM using the image you created with az vm create. Nell'esempio seguente viene creata una macchina virtuale denominata myVMDeployed dall'immagine denominata myImage:The following example creates a VM named myVMDeployed from the image named myImage:

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

Creazione della macchina virtuale in un altro gruppo di risorseCreating the VM in another resource group

È possibile creare macchine virtuali da un'immagine in qualsiasi gruppo di risorse all'interno della sottoscrizione.You can create VMs from an image in any resource group within your subscription. Per creare una macchina virtuale in un gruppo di risorse diverso rispetto all'immagine, specificare l'ID di risorsa completa per l'immagine.To create a VM in a different resource group than the image, specify the full resource ID to your image. Usare az image list per visualizzare un elenco di immagini.Use az image list to view a list of images. L'output è simile all'esempio seguente:The output is similar to the following example:

"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:The following example uses az vm create to create a VM in a different resource group than the source image by specifying the image resource ID:

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

Passaggio 4: Verificare la distribuzioneStep 4: Verify the deployment

Connettersi ora con SSH alla macchina virtuale creata per verificare la distribuzione e iniziare a usare la nuova VM.Now SSH to the virtual machine you created to verify the deployment and start using the new VM. Per connettersi tramite SSH, trovare l'indirizzo IP o il nome di dominio completo della macchina virtuale con az vm show:To connect via SSH, find the IP address or FQDN of your VM with az vm show:

az vm show \
   --resource-group myResourceGroup \
   --name myVMDeployed \
   --show-details

Passaggi successiviNext steps

È possibile creare più macchine virtuali da un'immagine di macchina virtuale di origine.You can create multiple VMs from your source VM image. Se è necessario apportare modifiche all'immagine:If you need to make changes to your image:

  • Creare una macchina virtuale da un'immagine dell'utente.Create a VM from your image.
  • Apportare aggiornamenti o modifiche alla configurazione.Make any updates or configuration changes.
  • Seguire nuovamente i passaggi per eseguire il deprovisioning, deallocare, generalizzare e creare un'immagine.Follow the steps again to deprovision, deallocate, generalize, and create an image.
  • Usare la nuova immagine per le distribuzioni future.Use this new image for future deployments. Se si desidera, eliminare l'immagine originale.If desired, delete the original image.

Per altre informazioni sulla gestione delle macchine virtuali con l'interfaccia della riga di comando, vedere Interfaccia della riga di comando di Azure 2.0.For more information on managing your VMs with the CLI, see Azure CLI 2.0.