Creare un'immagine personalizzata di una macchina virtuale di Azure tramite l'interfaccia della riga di comando

Le immagini personalizzate sono come le immagini di marketplace, ma si possono creare autonomamente. 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. In questa esercitazione viene creata un'immagine personalizzata di una macchina virtuale di Azure. Si apprenderà come:

  • Eseguire il deprovisioning e generalizzare le macchine virtuali
  • Creare un'immagine personalizzata
  • Creare una VM da un'immagine personalizzata
  • Elencare tutte le immagini nella sottoscrizione
  • Eliminare un'immagine

Avviare Azure Cloud Shell

Azure Cloud Shell è una shell Bash gratuita che può essere eseguita direttamente nel portale di Azure. Include l'interfaccia della riga di comando di Azure preinstallata e configurata per l'uso con l'account. Fare clic sul pulsante Cloud Shell nel menu nel riquadro in alto a destra nel portale di Azure.

Cloud Shell

Il pulsante avvia una shell interattiva che è possibile usare per eseguire tutti i passaggi in questo argomento:

Screenshot che mostra la finestra di Cloud Shell nel portale

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. Eseguire az --version per trovare la versione. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure 2.0.

Prima di iniziare

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.

Per completare l'esempio contenuto in questa esercitazione è necessario disporre di una macchina virtuale esistente. Se necessario, questo script di esempio può crearne una appositamente. Quando si esegue l'esercitazione, sostituire i nomi del gruppo di risorse e delle macchine virtuali dove necessario.

Creare un'immagine personalizzata

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. Dopo aver preparato la macchina virtuale, è possibile creare un'immagine.

Eseguire il deprovisioning della macchina virtuale

Il deprovisioning generalizza la macchina virtuale rimuovendo le informazioni specifiche del computer. La generalizzazione rende possibile distribuire più macchine virtuali da una singola immagine. Durante il deprovisioning, il nome host viene reimpostato su hostlocale.dominiolocale. Vengono eliminati anche i lease DHCP memorizzati nella cache, le chiavi host SSH, le configurazioni nameserver e le password radicele.

Per eseguire il deprovisioning della macchina virtuale, usare l'agente di macchine virtuali di Azure (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. Per altre informazioni, vedere Guida dell'utente dell'agente Linux di Azure.

Connettersi alla macchina virtuale tramite SSH ed eseguire il comando per effettuare il deprovisioning della macchina virtuale. Con l'argomento +user vengono eliminati anche l'ultimo account utente di cui è stato effettuato il provisioning e i dati associati. Sostituire l'indirizzo IP di esempio con l'indirizzo IP pubblico della macchina virtuale.

Eseguire SSH sulla VM.

ssh azureuser@52.174.34.95

Eseguire il deprovisioning della VM.

sudo waagent -deprovision+user -force

Chiudere la sessione SSH.

exit

Deallocare e contrassegnare la macchina virtuale come generalizzata

Per creare un'immagine, è necessario deallocare la macchina virtuale. Deallocare la macchina virtuale con il comando 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. È possibile creare solo un'immagine da una VM generalizzata.

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

Creare l'immagine

È ora possibile creare un'immagine della macchina virtuale con il comando az image create. Nell'esempio seguente viene creata un'immagine denominata myImage dalla VM denominata myVM.

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

Creare VM dall'immagine

Ora che è stata creata un'immagine, è possibile creare una o più nuove VM dall'immagine usando az vm create. Nell'esempio seguente viene creata una VM denominata myVMfromImage dall'immagine denominata myImage.

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

Gestione delle immagini

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.

Elencare tutte le immagini per nome in formato tabella.

az image list \
  --resource-group myResourceGroup

Eliminare un'immagine. Questo esempio elimina l'immagine denominata myOldImage da myResourceGroup.

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

Passaggi successivi

In questa esercitazione è stata creata un'immagine di macchina virtuale personalizzata. Si è appreso come:

  • Eseguire il deprovisioning e generalizzare le macchine virtuali
  • Creare un'immagine personalizzata
  • Creare una VM da un'immagine personalizzata
  • Elencare tutte le immagini nella sottoscrizione
  • Eliminare un'immagine

Passare all'esercitazione successiva per la descrizione delle macchine virtuali a disponibilità elevata.