Riavviare le VMRestart VMs

Per eseguire questo esempio, verificare di aver installato l'ultima versione dell'interfaccia della riga di comando di Azure 2.0.To run this sample, make sure you have installed the latest Azure CLI 2.0. Per iniziare, eseguire az login per creare una connessione con Azure.To start, run az login to create a connection with Azure.

Questo esempio funziona in una shell Bash.This sample works in a Bash shell. Per le opzioni sull'esecuzione di script dell'interfaccia della riga di comando di Azure nel client Windows, vedere Running the Azure CLI in Windows (Esecuzione dell'interfaccia della riga di comando di Azure in Windows).For options on running Azure CLI scripts on Windows client, see Running the Azure CLI in Windows.

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.If you don't have an Azure subscription, create a free account before you begin.

Questo esempio illustra un paio di modi per ottenere alcune VM e riavviarle.This sample shows a couple of ways to get some VMs and restart them.

Il primo riavvia tutte le VM nel gruppo di risorse.The first restarts all the VMs in the resource group.

az vm restart --ids $(az vm list --resource-group myResourceGroup --query "[].id" -o tsv)

Il secondo ottiene le VM con tag tramite az resouce list e filtra le risorse che sono VM quindi riavvia queste VM.The second gets the tagged VMs using az resouce list and filters to the resources that are VMs, and restarts those VMs.

az vm restart --ids $(az resource list --tag "restart-tag" --query "[?type=='Microsoft.Compute/virtualMachines'].id" -o tsv)

Questo esempio funziona in una shell Bash.This sample works in a Bash shell. Per le opzioni sull'esecuzione di script dell'interfaccia della riga di comando di Azure nel client Windows, vedere Running the Azure CLI in Windows (Esecuzione dell'interfaccia della riga di comando di Azure in Windows).For options on running Azure CLI scripts on Windows client, see Running the Azure CLI in Windows.

Script di esempioSample script

L'esempio prevede tre script.The sample has three scripts. Il primo esegue il provisioning delle macchine virtuali.The first one provisions the virtual machines. Usa l'opzione senza attesa in modo che il comando ritorni senza attendere per ogni VM di cui eseguire il provisioning.It uses the no-wait option so the command returns without waiting on each VM to be provisioned. Il secondo attende il provisioning completo delle VM.The second waits for the VMs to be fully provisioned. Il terzo script riavvia tutte le VM di cui è stato eseguito il provisioning e quindi solo le VM con tag.The third script restarts all the VMs that were provisioned, and then just the tagged VMs.

Eseguire il provisioning delle VMProvision the VMs

Questo script crea un gruppo di risorse e quindi crea tre VM da riavviare.This script creates a resource group and then it creates three VMs to restart. Due di queste vengono contrassegnate con tag.Two of them are tagged.

#!/bin/bash

# Create a resource group where we'll create the VMs that we'll start
az group create -n myResourceGroup -l westus

# Create the VMs. Two are tagged and one is not. --generated-ssh-keys will create ssh keys if not present
az vm create -g myResourceGroup -n myVM1 --image UbuntuLTS --admin-username deploy --tags "restart-tag" --generate-ssh-keys --no-wait
az vm create -g myResourceGroup -n myVM2 --image UbuntuLTS --admin-username deploy --tags "restart-tag" --no-wait
az vm create -g myResourceGroup -n myVM3 --image UbuntuLTS --admin-username deploy --no-wait

AttesaWait

Questo script verifica lo stato del provisioning ogni 20 secondi, fino a quando viene completato il provisioning di tutte e tre le VM oppure il provisioning di una delle VM fallisce.This script checks on the provisioning status every 20 seconds until all three VMs are provisioned, or one of them fails to provision.

#!/bin/bash

# Wait for the VMs to be provisioned
while [[ $(az vm list --resource-group myResourceGroup --query "length([?provisioningState=='Succeeded'])") != 3 ]]; do
    echo "The VMs are still not provisioned. Trying again in 20 seconds."
    sleep 20
    if [[ $(az vm list --resource-group myResorceGroup --query "length([?provisioningState=='Failed'])") != 0 ]]; then
        echo "At least one of the VMs failed to be provisioned."
        exit 1
    fi
done
echo "The VMs are provisioned."

Riavviare le VMRestart the VMs

Questo script riavvia tutte le VM nel gruppo di risorse e quindi riavvia solo le VM con tag.This script restarts all the VMs in the resource group, and then it restarts just the tagged VMs.

#!/bin/bash

# Get the IDs of all the VMs in the resource group and restart those
az vm restart --ids $(az vm list --resource-group myResourceGroup --query "[].id" -o tsv)

# Get the IDs of the tagged VMs and restart those
az vm restart --ids $(az resource list --tag "restart-tag" --query "[?type=='Microsoft.Compute/virtualMachines'].id" -o tsv)

Pulire la distribuzioneClean up deployment

Dopo l'esecuzione dello script di esempio, eseguire il comando seguente per rimuovere i gruppi di risorse, le macchine virtuali e tutte le risorse correlate.After the script sample has been run, the following command can be used to remove the resource groups, VMs, and all related resources.

az group delete -n myResourceGroup --no-wait --yes

Spiegazione dello scriptScript explanation

Questo script usa i comandi seguenti per creare un gruppo di risorse, la macchina virtuale, il set di disponibilità, il bilanciamento del carico e tutte le risorse correlate.This script uses the following commands to create a resource group, virtual machine, availability set, load balancer, and all related resources. Ogni comando della tabella include collegamenti alla documentazione specifica del comando.Each command in the table links to command specific documentation.

ComandoCommand NoteNotes
az group createaz group create Consente di creare un gruppo di risorse in cui sono archiviate tutte le risorse.Creates a resource group in which all resources are stored.
az vm createaz vm create Crea le macchine virtuali.Creates the virtual machines.
az vm listaz vm list Si usa con --query per assicurare che venga eseguito il provisionign delle VM prima del loro riavvio e poi per ottenere gli ID delle VM e riavviarle.Used with --query to ensure the VMs are provisioned before restarting them, and then to get the IDs of the VMs to restart them.
az resource listaz resource list Si usa con --query per ottenere gli ID delle VM con il tag.Used with --query to get the IDs of the VMs using the tag.
az vm restartaz vm restart Riavvia le macchine virtuali.Restarts the VMs.
az group deleteaz group delete Consente di eliminare un gruppo di risorse incluse tutte le risorse annidate.Deletes a resource group including all nested resources.

Passaggi successiviNext steps

Per altre informazioni sull'interfaccia della riga di comando di Azure, vedere la documentazione sull'interfaccia della riga di comando di Azure.For more information on the Azure CLI, see Azure CLI documentation.

Altri esempi di script dell'interfaccia della riga di comando della macchina virtuale sono reperibili nella documentazione della VM Linux di Azure.Additional virtual machine CLI script samples can be found in the Azure Linux VM documentation.