Esercitazione: Creare e gestire macchine virtuali Linux con l'interfaccia della riga di comando di Azure
Si applica a: ✔️ macchine virtuali di Linux ✔️ set di scalabilità flessibili
Le macchine virtuali di Azure offrono un ambiente di elaborazione completamente configurabile e flessibile. Questa esercitazione illustra gli elementi di base della distribuzione di una macchina virtuale di Azure, ad esempio la selezione delle dimensioni di una VM, la selezione dell'immagine di una VM e la distribuzione di una VM. Scopri come:
- Creare e connettersi a una macchina virtuale
- Selezionare e usare le immagini di una macchina virtuale
- Visualizzare e usare macchine virtuali di dimensioni specifiche
- Ridimensionare una VM
- Visualizzare e comprendere lo stato di una macchina virtuale
Questa esercitazione usa l'interfaccia della riga di comando all'interno di Azure Cloud Shell, che viene costantemente aggiornato alla versione più recente.
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.30 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.
Crea gruppo di risorse
Creare un gruppo di risorse con il comando az group create.
Un gruppo di risorse di Azure è un contenitore logico in cui le risorse di Azure vengono distribuite e gestite. Il gruppo di risorse deve essere creato prima della macchina virtuale. In questo esempio viene creato un gruppo di risorse denominato myResourceGroupVM nell'area eastus2.
az group create --name myResourceGroupVM --location eastus2
Il gruppo di risorse viene specificato quando si crea o si modifica una VM, come viene illustrato in questa esercitazione.
Crea macchina virtuale
Crea una macchina virtuale usando il comando az vm create.
Quando si crea una macchina virtuale, sono disponibili alcune opzioni come immagine del sistema operativo, ridimensionamento dei dischi e credenziali amministrative. L'esempio seguente crea una macchina virtuale denominata myVM che esegue SUSE Linux Enterprise Server (SLES). Viene creato un account utente denominato azureuser nella macchina virtuale e vengono generate chiavi SSH se non esistono già nel percorso predefinito delle chiavi (~/.ssh):
az vm create \
--resource-group myResourceGroupVM \
--name myVM \
--image SuseSles15SP3 \
--public-ip-sku Standard \
--admin-username azureuser \
--generate-ssh-keys
La creazione della macchina virtuale può richiedere alcuni minuti. Dopo la creazione della macchina virtuale, l'interfaccia della riga di comando di Azure restituisce informazioni sulla VM. Prendere nota dell'indirizzo publicIpAddress
, che può essere usato per accedere alla macchina virtuale.
{
"fqdns": "",
"id": "/subscriptions/d5b9d4b7-6fc1-0000-0000-000000000000/resourceGroups/myResourceGroupVM/providers/Microsoft.Compute/virtualMachines/myVM",
"location": "eastus2",
"macAddress": "00-0D-3A-23-9A-49",
"powerState": "VM running",
"privateIpAddress": "10.0.0.4",
"publicIpAddress": "52.174.34.95",
"resourceGroup": "myResourceGroupVM"
}
Connettersi a una macchina virtuale
È ora possibile connettersi alla macchina virtuale con SSH in Azure Cloud Shell o dal computer locale. Sostituire l'indirizzo IP di esempio con l'indirizzo publicIpAddress
annotato nel passaggio precedente.
ssh azureuser@52.174.34.95
Dopo aver eseguito l'accesso alla macchina virtuale, sarà possibile installare e configurare le applicazioni. Al termine si chiude la sessione SSH come di consueto:
exit
Informazioni sulle immagini delle VM
Azure Marketplace include diverse immagini che possono essere usate per creare VM. Nei passaggi precedenti è stata creata una macchina virtuale usando un'immagine Ubuntu. In questo passaggio l'interfaccia della riga di comando di Azure viene usata per cercare nel marketplace un'immagine Ubuntu, che viene quindi usata per distribuire una seconda macchina virtuale.
Per visualizzare un elenco delle immagini più usate, eseguire il comando az vm image list.
az vm image list --output table
L'output del comando restituisce le immagini di macchina virtuale più popolari in Azure.
Architecture Offer Publisher Sku Urn UrnAlias Version
-------------- ---------------------------- ---------------------- ---------------------------------- ------------------------------------------------------------------------------ ----------------------- ---------
x64 debian-10 Debian 10 Debian:debian-10:10:latest Debian latest
x64 flatcar-container-linux-free kinvolk stable kinvolk:flatcar-container-linux-free:stable:latest Flatcar latest
x64 opensuse-leap-15-3 SUSE gen2 SUSE:opensuse-leap-15-3:gen2:latest openSUSE-Leap latest
x64 RHEL RedHat 7-LVM RedHat:RHEL:7-LVM:latest RHEL latest
x64 sles-15-sp3 SUSE gen2 SUSE:sles-15-sp3:gen2:latest SLES latest
x64 0001-com-ubuntu-server-jammy Canonical 18.04-LTS Canonical:UbuntuServer:18.04-LTS:latest UbuntuLTS latest
x64 WindowsServer MicrosoftWindowsServer 2022-Datacenter MicrosoftWindowsServer:WindowsServer:2022-Datacenter:latest Win2022Datacenter latest
x64 WindowsServer MicrosoftWindowsServer 2022-datacenter-azure-edition-core MicrosoftWindowsServer:WindowsServer:2022-datacenter-azure-edition-core:latest Win2022AzureEditionCore latest
x64 WindowsServer MicrosoftWindowsServer 2019-Datacenter MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest Win2019Datacenter latest
x64 WindowsServer MicrosoftWindowsServer 2016-Datacenter MicrosoftWindowsServer:WindowsServer:2016-Datacenter:latest Win2016Datacenter latest
x64 WindowsServer MicrosoftWindowsServer 2012-R2-Datacenter MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:latest Win2012R2Datacenter latest
x64 WindowsServer MicrosoftWindowsServer 2012-Datacenter MicrosoftWindowsServer:WindowsServer:2012-Datacenter:latest Win2012Datacenter latest
x64 WindowsServer MicrosoftWindowsServer 2008-R2-SP1 MicrosoftWindowsServer:WindowsServer:2008-R2-SP1:latest Win2008R2SP1 latest
Per visualizzare l'elenco completo, aggiungere il parametro --all
. L'elenco di immagini può anche essere filtrato per --publisher
o –-offer
. In questo esempio l'elenco viene filtrato per cercare tutte le immagini, pubblicate da OpenLogic, con un'offerta corrispondente a 0001-com-ubuntu-server-jammy.
az vm image list --offer 0001-com-ubuntu-server-jammy --publisher Canonical --all --output table
Esempio di output parziale:
Architecture Offer Publisher Sku Urn Version
-------------- --------------------------------- ----------- --------------- ------------------------------------------------------------------------ ---------------
x64 0001-com-ubuntu-server-jammy Canonical 22_04-lts Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202204200 22.04.202204200
x64 0001-com-ubuntu-server-jammy Canonical 22_04-lts Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202205060 22.04.202205060
x64 0001-com-ubuntu-server-jammy Canonical 22_04-lts Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202205280 22.04.202205280
x64 0001-com-ubuntu-server-jammy Canonical 22_04-lts Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202206040 22.04.202206040
x64 0001-com-ubuntu-server-jammy Canonical 22_04-lts Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202206090 22.04.202206090
x64 0001-com-ubuntu-server-jammy Canonical 22_04-lts Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202206160 22.04.202206160
x64 0001-com-ubuntu-server-jammy Canonical 22_04-lts Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202206220 22.04.202206220
x64 0001-com-ubuntu-server-jammy Canonical 22_04-lts Canonical:0001-com-ubuntu-server-jammy:22_04-lts:22.04.202207060 22.04.202207060
Nota
Canonical ha modificato i nomi offerta usati per le versioni più recenti. Prima di Ubuntu 20.04, il nome offerta è UbuntuServer. Per Ubuntu 20.04 il nome offerta è 0001-com-ubuntu-server-focal
e per Ubuntu 22.04 è 0001-com-ubuntu-server-jammy
.
Per distribuire una macchina virtuale usando un'immagine specifica, prendere nota del valore nella colonna Urn, che è costituito da server di pubblicazione, offerta, SKU e, facoltativamente, un numero di versione peridentificare l'immagine. Quando si specifica l'immagine, il numero di versione dell'immagine può essere sostituito con latest
, che seleziona la versione più recente della distribuzione. In questo esempio viene usato il parametro --image
per specificare la versione più recente di un'immagine Ubuntu 22.04.
az vm create --resource-group myResourceGroupVM --name myVM2 --image Canonical:0001-com-ubnutu-server-jammy:22_04-lts:latest --generate-ssh-keys
Informazioni sulle dimensioni delle VM
La dimensioni di una macchina virtuale determinano la quantità di risorse di calcolo, ad esempio CPU, GPU e memoria, disponibili per la macchina virtuale. È necessario ridimensionare le macchine virtuali in modo appropriato per il carico di lavoro previsto. Se aumenta il carico di lavoro, è possibile ridimensionare una macchina virtuale esistente.
Dimensioni delle VM
La tabella seguente classifica le dimensioni a seconda dei casi d'uso.
Tipo | Descrizione |
---|---|
Utilizzo generico | Rapporto equilibrato tra CPU e memoria. Soluzione ideale per sviluppo/test e soluzioni di dati e applicazioni medio-piccole. |
Con ottimizzazione per il calcolo | Rapporto elevato tra CPU e memoria. Soluzione idonea per applicazioni con livelli medi di traffico, dispositivi di rete e processi batch. |
Ottimizzato per la memoria | Rapporto elevato tra memoria e core. Soluzione ideale per database relazionali, cache medio-grandi e analisi in memoria. |
Con ottimizzazione per l'archiviazione | I/O e velocità effettiva del disco elevati. Ideale per Big Data, database SQL e NoSQL. |
GPU | VM specializzate ottimizzate per livelli intensivi di rendering della grafica ed editing di video. |
Prestazioni elevate | Le macchine virtuali con CPU più potenti, con interfacce di rete ad alta velocità effettiva opzionali (RDMA). |
Trovare le dimensioni delle macchine virtuali disponibili
Per visualizzare un elenco delle dimensioni delle VM disponibili in una determinata area, usare il comando az vm list-sizes.
az vm list-sizes --location eastus2 --output table
Esempio di output parziale:
MaxDataDiskCount MemoryInMb Name NumberOfCores OsDiskSizeInMb ResourceDiskSizeInMb
------------------ ------------ ---------------------- --------------- ---------------- ----------------------
4 8192 Standard_D2ds_v4 2 1047552 76800
8 16384 Standard_D4ds_v4 4 1047552 153600
16 32768 Standard_D8ds_v4 8 1047552 307200
32 65536 Standard_D16ds_v4 16 1047552 614400
32 131072 Standard_D32ds_v4 32 1047552 1228800
32 196608 Standard_D48ds_v4 48 1047552 1843200
32 262144 Standard_D64ds_v4 64 1047552 2457600
4 8192 Standard_D2ds_v5 2 1047552 76800
8 16384 Standard_D4ds_v5 4 1047552 153600
16 32768 Standard_D8ds_v5 8 1047552 307200
32 65536 Standard_D16ds_v5 16 1047552 614400
32 131072 Standard_D32ds_v5 32 1047552 1228800
32 196608 Standard_D48ds_v5 48 1047552 1843200
32 262144 Standard_D64ds_v5 64 1047552 2457600
32 393216 Standard_D96ds_v5 96 1047552 3686400
Creare una macchina virtuale con dimensioni specifiche
Nell'esempio precedente di creazione di una VM, non essendo state specificate le dimensioni, sono state usate le dimensioni predefinite. Le dimensioni di una VM possono essere selezionate in fase di creazione usando az vm create e il parametro --size
.
az vm create \
--resource-group myResourceGroupVM \
--name myVM3 \
--image SuseSles15SP3 \
--size Standard_D2ds_v4 \
--generate-ssh-keys
Ridimensionare una VM
Dopo la distribuzione di una VM, è possibile ridimensionarla per aumentare o ridurre l'allocazione delle risorse. È possibile visualizzare la dimensione attuale di una macchina virtuale con az vm show:
az vm show --resource-group myResourceGroupVM --name myVM --query hardwareProfile.vmSize
Prima di ridimensionare una macchina virtuale, verificare se le dimensioni desiderate sono disponibili nel cluster di Azure corrente. Il comando az vm list-vm-resize-options restituisce l'elenco di dimensioni.
az vm list-vm-resize-options --resource-group myResourceGroupVM --name myVM --query [].name
Se le dimensioni desiderate sono disponibili, la VM può essere ridimensionata mentre è accesa, ma durante l'operazione viene riavviata. Usare il comando az vm resize per eseguire il ridimensionamento.
az vm resize --resource-group myResourceGroupVM --name myVM --size Standard_D4s_v3
Se nel cluster corrente non sono disponibili le dimensioni desiderate, è necessario deallocare la VM prima di poter eseguire l'operazione di ridimensionamento. Usare il comando az vm deallocate per arrestare e deallocare la VM. Tenere presente che, quando la VM viene riaccesa, i dati sul disco temporaneo potrebbero essere rimossi. Anche l'indirizzo IP pubblico viene modificato a meno che non venga usato un indirizzo IP statico.
az vm deallocate --resource-group myResourceGroupVM --name myVM
Dopo la deallocazione, è possibile eseguire il ridimensionamento.
az vm resize --resource-group myResourceGroupVM --name myVM --size Standard_GS1
Dopo il ridimensionamento, la VM può essere avviata.
az vm start --resource-group myResourceGroupVM --name myVM
Stati di alimentazione di una macchina virtuale
Una macchina virtuale di Azure può avere uno dei diversi stati di alimentazione. Questo stato rappresenta lo stato corrente della VM dal punto di vista dell'hypervisor.
Stati di alimentazione
Stato di alimentazione | Descrizione |
---|---|
Starting | Indica che è in corso l'avvio della macchina virtuale. |
In esecuzione | Indica che la macchina virtuale è in esecuzione. |
Arresto in corso | Indica che è in corso l'arresto della macchina virtuale. |
Arrestato | Indica che la macchina virtuale è stata arrestata. Alle macchine virtuali con stato arrestato continuano a essere addebitati i costi di calcolo. |
Deallocazione | Indica che è in corso la deallocazione della macchina virtuale. |
Deallocato | Indica che la macchina virtuale è stata rimossa dall'hypervisor, ma è ancora disponibile nel piano di controllo. Alle macchine virtuali con stato deallocato non vengono addebitati i costi di calcolo. |
- | Indica che lo stato di alimentazione della macchina virtuale è sconosciuto. |
Trovare lo stato di alimentazione
Per recuperare lo stato di una determinata VM, usare il comando az vm get-instance-view. Assicurarsi di specificare un nome valido per una macchina virtuale e un gruppo di risorse.
az vm get-instance-view \
--name myVM \
--resource-group myResourceGroupVM \
--query instanceView.statuses[1] --output table
Output:
Code Level DisplayStatus
------------------ ------- ---------------
PowerState/running Info VM running
Per recuperare lo stato di alimentazione di tutte le macchine virtuali nella sottoscrizione, usare l'API Macchine virtuali - Elenca tutte con il parametro statusOnly impostato su true.
Attività di gestione
Durante il ciclo di vita di una macchina virtuale si eseguono attività di gestione come l'avvio, l'arresto o l'eliminazione della macchina virtuale. È consigliabile creare script per automatizzare le attività ripetitive o complesse. Usando l'interfaccia della riga di comando di Azure è possibile eseguire molte attività di gestione comuni dalla riga di comando o tramite script.
Ottenere l'indirizzo IP
Questo comando restituisce gli indirizzi IP pubblici e privati di una macchina virtuale.
az vm list-ip-addresses --resource-group myResourceGroupVM --name myVM --output table
Interrompi macchina virtuale
az vm stop --resource-group myResourceGroupVM --name myVM
Avvia macchina virtuale
az vm start --resource-group myResourceGroupVM --name myVM
Eliminazione di risorse VM
A seconda della modalità di eliminazione di una macchina virtuale, è possibile che venga eliminata la risorsa macchina virtuale, non le risorse di rete e disco. È possibile modificare il comportamento predefinito per eliminare altre risorse quando si elimina la macchina virtuale. Per altre informazioni, vedere Eliminare una macchina virtuale e le risorse collegate.
Se si elimina un gruppo di risorse, vengono eliminate anche tutte le risorse in esso contenute, ad esempio la macchina virtuale, la rete virtuale e il disco. Il parametro --no-wait
restituisce il controllo al prompt senza attendere il completamento dell'operazione. Il parametro --yes
conferma che si desidera eliminare le risorse senza un prompt aggiuntivo a tale scopo.
az group delete --name myResourceGroupVM --no-wait --yes
Passaggi successivi
In questa esercitazione sono illustrate la creazione e la gestione di VM di base, ad esempio:
- Creare e connettersi a una macchina virtuale
- Selezionare e usare le immagini di una macchina virtuale
- Visualizzare e usare macchine virtuali di dimensioni specifiche
- Ridimensionare una VM
- Visualizzare e comprendere lo stato di una macchina virtuale
Passare all'esercitazione successiva per informazioni sui dischi di macchine virtuali.