Creare un'immagine personalizzata di una macchina virtuale di Azure tramite l'interfaccia della riga di comandoCreate a custom image of an Azure VM using the CLI

Le immagini personalizzate sono come le immagini di marketplace, ma si possono creare autonomamente.Custom images are like marketplace images, but you create them yourself. Le immagini personalizzate possono essere usate per le configurazioni di avvio, ad esempio il precaricamento e le configurazioni di applicazioni e altre configurazioni del sistema operativo.Custom images can be used to bootstrap configurations such as preloading applications, application configurations, and other OS configurations. In questa esercitazione viene creata un'immagine personalizzata di una macchina virtuale di Azure.In this tutorial, you create your own custom image of an Azure virtual machine. Si apprenderà come:You learn how to:

  • Eseguire il deprovisioning e generalizzare le macchine virtualiDeprovision and generalize VMs
  • Creare un'immagine personalizzataCreate a custom image
  • Creare una VM da un'immagine personalizzataCreate a VM from a custom image
  • Elencare tutte le immagini nella sottoscrizioneList all the images in your subscription
  • Eliminare un'immagineDelete an image

Avviare Azure Cloud ShellLaunch Azure Cloud Shell

Azure Cloud Shell è una shell Bash gratuita che può essere eseguita direttamente nel portale di Azure.The Azure Cloud Shell is a free Bash shell that you can run directly within the Azure portal. Include l'interfaccia della riga di comando di Azure preinstallata e configurata per l'uso con l'account.It has the Azure CLI preinstalled and configured to use with your account. Fare clic sul pulsante Cloud Shell nel menu nel riquadro in alto a destra nel portale di Azure.Click the Cloud Shell button on the menu in the upper-right of the Azure portal.

Cloud ShellCloud Shell

Il pulsante avvia una shell interattiva che è possibile usare per eseguire i passaggi di questo argomento:The button launches an interactive shell that you can use to run the steps in this topic:

Screenshot che mostra la finestra di Cloud Shell nel portaleScreenshot showing the Cloud Shell window in the portal

Se si sceglie di installare e usare l'interfaccia della riga di comando in locale, per questa esercitazione è necessario eseguire l'interfaccia della riga di comando di Azure versione 2.0.4 o successiva.If you choose to install and use the CLI locally, this tutorial requires that you are running the Azure CLI version 2.0.4 or later. Eseguire az --version per trovare la versione.Run az --version to find the version. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure 2.0.If you need to install or upgrade, see Install Azure CLI 2.0.

Prima di iniziareBefore you begin

La procedura riportata di seguito illustra come prendere una VM esistente e convertirla in un'immagine personalizzata riutilizzabile che è possibile usare per creare nuove istanze di VM.The steps below detail how to take an existing VM and turn it into a re-usable custom image that you can use to create new VM instances.

Per completare l'esempio contenuto in questa esercitazione è necessario disporre di una macchina virtuale esistente.To complete the example in this tutorial, you must have an existing virtual machine. Se necessario, questo script di esempio può crearne una appositamente.If needed, this script sample can create one for you. Quando si esegue l'esercitazione, sostituire i nomi del gruppo di risorse e delle macchine virtuali dove necessario.When working through the tutorial, replace the resource group and VM names where needed.

Creare un'immagine personalizzataCreate a custom image

Per creare un'immagine di una macchina virtuale, è necessario preparare la macchina virtuale eseguendo il deprovisioning, la deallocazione e contrassegnare quindi la macchina virtuale di origine come generalizzata.To create an image of a virtual machine, you need to prepare the VM by deprovisioning, deallocating, and then marking the source VM as generalized. Dopo aver preparato la macchina virtuale, è possibile creare un'immagine.Once the VM has been prepared, you can create an image.

Eseguire il deprovisioning della macchina virtualeDeprovision the VM

Il deprovisioning generalizza la macchina virtuale rimuovendo le informazioni specifiche del computer.Deprovisioning generalizes the VM by removing machine-specific information. La generalizzazione rende possibile distribuire più macchine virtuali da una singola immagine.This generalization makes it possible to deploy many VMs from a single image. Durante il deprovisioning, il nome host viene reimpostato su hostlocale.dominiolocale.During deprovisioning, the host name is reset to localhost.localdomain. Vengono eliminati anche i lease DHCP memorizzati nella cache, le chiavi host SSH, le configurazioni nameserver e le password radicele.SSH host keys, nameserver configurations, root password, and cached DHCP leases are also deleted.

Per eseguire il deprovisioning della macchina virtuale, usare l'agente di macchine virtuali di Azure (waagent).To deprovision the VM, use the Azure VM agent (waagent). L'agente di macchine virtuali di Azure viene installato sulla macchina virtuale e gestisce il provisioning e l'interazione con il controller di infrastruttura di Azure.The Azure VM agent is installed on the VM and manages provisioning and interacting with the Azure Fabric Controller. Per altre informazioni, vedere Guida dell'utente dell'agente Linux di Azure.For more information, see the Azure Linux Agent user guide.

Connettersi alla macchina virtuale tramite SSH ed eseguire il comando per effettuare il deprovisioning della macchina virtuale.Connect to your VM using SSH and run the command to deprovision the VM. Con l'argomento +user vengono eliminati anche l'ultimo account utente di cui è stato effettuato il provisioning e i dati associati.With the +user argument, the last provisioned user account and any associated data are also deleted. Sostituire l'indirizzo IP di esempio con l'indirizzo IP pubblico della macchina virtuale.Replace the example IP address with the public IP address of your VM.

Eseguire SSH sulla VM.SSH to the VM.

ssh azureuser@52.174.34.95

Eseguire il deprovisioning della VM.Deprovision the VM.

sudo waagent -deprovision+user -force

Chiudere la sessione SSH.Close the SSH session.

exit

Deallocare e contrassegnare la macchina virtuale come generalizzataDeallocate and mark the VM as generalized

Per creare un'immagine, è necessario deallocare la macchina virtuale.To create an image, the VM needs to be deallocated. Deallocare la macchina virtuale con il comando az vm deallocate.Deallocate the VM using az vm deallocate.

az vm deallocate --resource-group myResourceGroup --name myVM

Infine, impostare lo stato della macchina virtuale come generalizzato tramite az vm generalize in modo che la piattaforma Azure riconosca che la macchina virtuale è stata generalizzata.Finally, set the state of the VM as generalized with az vm generalize so the Azure platform knows the VM has been generalized. È possibile creare solo un'immagine da una VM generalizzata.You can only create an image from a generalized VM.

az vm generalize --resource-group myResourceGroup --name myVM

Creare l'immagineCreate the image

È ora possibile creare un'immagine della macchina virtuale con il comando az image create.Now you can create an image of the VM by using az image create. Nell'esempio seguente viene creata un'immagine denominata myImage dalla VM denominata myVM.The following example creates an image named myImage from a VM named myVM.

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

Creare VM dall'immagineCreate VMs from the image

Ora che è stata creata un'immagine, è possibile creare una o più nuove VM dall'immagine usando az vm create.Now that you have an image, you can create one or more new VMs from the image using az vm create. Nell'esempio seguente viene creata una VM denominata myVMfromImage dall'immagine denominata myImage.The following example creates a VM named myVMfromImage from the image named myImage.

az vm create \
    --resource-group myResourceGroup \
    --name myVMfromImage \
    --image myImage \
    --admin-username azureuser \
    --generate-ssh-keys

Gestione delle immaginiImage management

Di seguito sono riportati alcuni esempi di attività comuni di gestione di immagini e la loro modalità di completamento tramite l'interfaccia della riga di comando di Azure.Here are some examples of common image management tasks and how to complete them using the Azure CLI.

Elencare tutte le immagini per nome in formato tabella.List all images by name in a table format.

az image list \
  --resource-group myResourceGroup

Eliminare un'immagine.Delete an image. Questo esempio elimina l'immagine denominata myOldImage da myResourceGroup.This example deletes the image named myOldImage from the myResourceGroup.

az image delete \
    --name myOldImage \
    --resource-group myResourceGroup

Passaggi successiviNext steps

In questa esercitazione è stata creata un'immagine di macchina virtuale personalizzata.In this tutorial, you created a custom VM image. Si è appreso come:You learned how to:

  • Eseguire il deprovisioning e generalizzare le macchine virtualiDeprovision and generalize VMs
  • Creare un'immagine personalizzataCreate a custom image
  • Creare una VM da un'immagine personalizzataCreate a VM from a custom image
  • Elencare tutte le immagini nella sottoscrizioneList all the images in your subscription
  • Eliminare un'immagineDelete an image

Passare all'esercitazione successiva per la descrizione delle macchine virtuali a disponibilità elevata.Advance to the next tutorial to learn about highly available virtual machines.