Ripristinare una macchina virtuale Linux usando i comandi di riparazione di macchine virtuali di Azure

Se la macchina virtuale (VM) Linux in Azure rileva un errore di avvio o del disco, potrebbe essere necessario eseguire la mitigazione sul disco stesso. Un esempio comune potrebbe essere un aggiornamento dell'applicazione non riuscito che impedisce alla macchina virtuale di avviarsi correttamente. Questo articolo descrive in dettaglio come usare i comandi di riparazione della macchina virtuale di Azure per connettere il disco a un'altra macchina virtuale Linux per correggere eventuali errori, quindi ricostruire la macchina virtuale originale.

Importante

  • Gli script in questo articolo si applicano solo alle macchine virtuali che usano Azure Resource Manager.
  • La connettività in uscita dalla macchina virtuale (porta 443) è necessaria per l'esecuzione dello script.
  • È possibile eseguire un solo script alla volta.
  • Uno script in esecuzione non può essere annullato.
  • Il tempo massimo di esecuzione di uno script è di 90 minuti, al termine dei quali terminerà l'esecuzione.
  • Non modificare i tag creati nella VM di riparazione. I tag sono necessari per il corretto funzionamento del comando di ripristino.
  • Per le macchine virtuali che usano Crittografia dischi di Azure, sono supportati solo i dischi gestiti crittografati con crittografia a passaggio singolo (con o senza KEK).

Panoramica del processo di riparazione

È ora possibile usare i comandi di ripristino della macchina virtuale di Azure per modificare il disco del sistema operativo per una macchina virtuale e non è più necessario eliminare e ricreare la macchina virtuale.

Segui questi passaggi per risolvere il problema della VM:

  1. Avvia Azure Cloud Shell
  2. Eseguire az extension add/update
  3. Eseguire az vm repair create
  4. Eseguire az vm repair run, o eseguire passaggi di mitigazione.
  5. Eseguire az vm repair restore

Per visualizzare tutti i comandi e i parametri di riparazione VM disponibili, vedere az vm repair.

Per eseguire i comandi, è necessario un ruolo in grado di creare i seguenti tipi di risorse nella sottoscrizione:

  • Gruppi di risorse
  • Macchine virtuali
  • Tag delle risorse
  • Reti virtuali
  • Gruppi di sicurezza di rete
  • Interfacce di rete
  • Dischi
  • Indirizzi IP pubblici (opzionale)

Esempio di processo di riparazione

  1. Avvia Azure Cloud Shell

    Azure Cloud Shell è una shell interattiva gratuita che puoi usare per eseguire i passaggi descritti in questo articolo. Include gli strumenti comuni di Azure preinstallati e configurati per l'uso con il tuo account. Se esegui uno script di riparazione che richiede più di 20 minuti, potresti preferire eseguire i comandi localmente. Per eseguire i comandi in locale, è necessaria la versione 2.0.67 o successiva dell'interfaccia della riga di comando di Azure. Eseguire az --version per trovare la versione. Se è necessario installare o aggiornare l'interfaccia della riga di comando di Azure, vedere Installare l'interfaccia della riga di comando di Azure.

    Per aprire Cloud Shell, seleziona Provalo nell'angolo in alto a destra di un blocco di codice. È possibile anche aprire Cloud Shell in una scheda separata del browser andando su https://shell.azure.com.

    Seleziona Copia per copiare i blocchi di codice, quindi incolla il codice in Cloud Shell e seleziona Invio per eseguirlo.

    Se preferisci installare e usare l'interfaccia della riga di comando in locale, questo argomento di avvio rapido richiede l'interfaccia della riga di comando di Azure versione 2.0.67 o successiva. Eseguire az --version per trovare la versione. Se è necessario installare o aggiornare l'interfaccia della riga di comando di Azure, vedere Installare l'interfaccia della riga di comando di Azure.

    Se è necessario accedere a Cloud Shell con un account diverso da quello con cui si è attualmente connessi al Portale di Azure, è possibile utilizzare az loginaz login reference. Per passare da una sottoscrizione all'altra associata al proprio account, è possibile utilizzare az account set --subscriptionaz account set reference.

  2. Se è la prima volta che si utilizzano i comandi az vm repair, aggiungere l'estensione CLI vm-repair.

    az extension add -n vm-repair
    

    Se in precedenza sono stati utilizzati i comandi az vm repair, applicare eventuali aggiornamenti all'estensione vm-repair.

    az extension update -n vm-repair
    
  3. Eseguire az vm repair create. Questo comando creerà una copia del disco del sistema operativo per la macchina virtuale non funzionante, creerà una macchina virtuale di riparazione in un nuovo gruppo di risorse e collegherà la copia del disco del sistema operativo. La VM di riparazione avrà le stesse dimensioni e la stessa area della VM non funzionante specificata. Il gruppo di risorse e il nome della macchina virtuale usati in tutti i passaggi saranno per la macchina virtuale non funzionante. Se la macchina virtuale di Azure utilizza la crittografia del disco, utilizzare --unlock-encrypted-vm per sbloccare il disco crittografato in modo che sia accessibile quando è collegato alla macchina virtuale di ripristino. Per ulteriori informazioni, vedere confermare che ADE è abilitato sul disco.

Importante

I comandi di esecuzione e ripristino richiederanno l'immissione di tutti gli input utilizzando lo stesso caso utilizzato nel comando di creazione, prendere nota o fare riferimento ai tag sulla VM di riparazione per vedere cosa è stato utilizzato.

Esempio di riparazione della macchina virtuale

az vm repair create -g MyResourceGroup -n myVM --repair-username username --repair-password password1234 --verbose
  1. Eseguire az vm repair run. Questo comando eseguirà lo script di riparazione specificato sul disco collegato tramite la VM di riparazione. Se la guida alla risoluzione dei problemi che stai utilizzando specifica un run-id, usalo qui. Altrimenti, è possibile utilizzare az vm repair list-scripts per visualizzare gli script di riparazione disponibili. Il gruppo di risorse e il nome della macchina virtuale usati qui sono per la macchina virtuale non funzionante usata nel passaggio 3. Ulteriori informazioni sugli script di riparazione sono disponibili nella libreria degli script di riparazione.

    az vm repair run -g MyResourceGroup -n MyVM --run-on-repair --run-id lin-hello-world --verbose
    

    Facoltativamente, puoi eseguire qualsiasi passaggio di mitigazione manuale necessario utilizzando la macchina virtuale di riparazione, quindi procedere al passaggio 5.

  2. Eseguire az vm repair restore. Questo comando sostituirà il disco del sistema operativo riparato con il disco del sistema operativo originale della VM. Il gruppo di risorse e il nome della macchina virtuale usati qui sono per la macchina virtuale non funzionante usata nel passaggio 3.

    az vm repair restore -g MyResourceGroup -n MyVM --verbose
    

Verificare e abilitare la diagnostica di avvio

L'esempio seguente abilita l'estensione di diagnostica sulla macchina virtuale denominata myVMDeployed nel gruppo di risorse denominato myResourceGroup:

Interfaccia della riga di comando di Azure

az vm boot-diagnostics enable --name myVMDeployed --resource-group myResourceGroup --storage https://mystor.blob.core.windows.net/

Passaggi successivi

Contattaci per ricevere assistenza

In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.