Creare e gestire VM Linux con l'interfaccia della riga di comando di AzureCreate and Manage Linux VMs with the Azure CLI

Le macchine virtuali di Azure offrono un ambiente di elaborazione completamente configurabile e flessibile.Azure virtual machines provide a fully configurable and flexible computing environment. 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.This tutorial covers basic Azure virtual machine deployment items such as selecting a VM size, selecting a VM image, and deploying a VM. Si apprenderà come:You learn how to:

  • Creare e connettersi a una macchina virtualeCreate and connect to a VM
  • Selezionare e usare le immagini di una macchina virtualeSelect and use VM images
  • Visualizzare e usare macchine virtuali di dimensioni specificheView and use specific VM sizes
  • Ridimensionare una VMResize a VM
  • Visualizzare e comprendere lo stato di una macchina virtualeView and understand VM state

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.

Creare un gruppo di risorseCreate resource group

Creare un gruppo di risorse con il comando az group create.Create a resource group with the az group create command.

Un gruppo di risorse di Azure è un contenitore logico in cui le risorse di Azure vengono distribuite e gestite.An Azure resource group is a logical container into which Azure resources are deployed and managed. Il gruppo di risorse deve essere creato prima della macchina virtuale.A resource group must be created before a virtual machine. In questo esempio viene creato un gruppo di risorse denominato myResourceGroupVM nell'area eastus.In this example, a resource group named myResourceGroupVM is created in the eastus region.

az group create --name myResourceGroupVM --location eastus

Il gruppo di risorse viene specificato quando si crea o si modifica una VM, come viene illustrato in questa esercitazione.The resource group is specified when creating or modifying a VM, which can be seen throughout this tutorial.

Crea macchina virtualeCreate virtual machine

Crea una macchina virtuale usando il comando az vm create.Create a virtual machine with the az vm create command.

Per la creazione di una macchina virtuale sono disponibili diverse opzioni, ad esempio l'immagine del sistema operativo, il ridimensionamento del disco e le credenziali amministrative.When creating a virtual machine, several options are available such as operating system image, disk sizing, and administrative credentials. In questo esempio viene creata una macchina virtuale denominata myVM che esegue Ubuntu Server.In this example, a virtual machine is created with a name of myVM running Ubuntu Server.

az vm create --resource-group myResourceGroupVM --name myVM --image UbuntuLTS --generate-ssh-keys

La creazione della macchina virtuale può richiedere alcuni minuti.It may take a few minutes to create the VM. Dopo la creazione della macchina virtuale, l'interfaccia della riga di comando di Azure restituisce informazioni sulla VM.Once the VM has been created, the Azure CLI outputs information about the VM. Prendere nota dell'indirizzo publicIpAddress, che può essere usato per accedere alla macchina virtuale.Take note of the publicIpAddress, this address can be used to access the virtual machine..

{
  "fqdns": "",
  "id": "/subscriptions/d5b9d4b7-6fc1-0000-0000-000000000000/resourceGroups/myResourceGroupVM/providers/Microsoft.Compute/virtualMachines/myVM",
  "location": "eastus",
  "macAddress": "00-0D-3A-23-9A-49",
  "powerState": "VM running",
  "privateIpAddress": "10.0.0.4",
  "publicIpAddress": "52.174.34.95",
  "resourceGroup": "myResourceGroupVM"
}

Connettersi alla macchina virtualeConnect to VM

È ora possibile connettersi alla macchina virtuale con SSH in Azure Cloud Shell o dal computer locale.You can now connect to the VM with SSH in the Azure Cloud Shell or from your local computer. Sostituire l'indirizzo IP di esempio con l'indirizzo publicIpAddress annotato nel passaggio precedente.Replace the example IP address with the publicIpAddress noted in the previous step.

ssh 52.174.34.95

Dopo aver eseguito l'accesso alla macchina virtuale, sarà possibile installare e configurare le applicazioni.Once logged in to the VM, you can install and configure applications. Al termine si chiude la sessione SSH come di consueto:When you are finished, you close the SSH session as normal:

exit

Informazioni sulle immagini delle VMUnderstand VM images

Azure Marketplace include diverse immagini che possono essere usate per creare VM.The Azure marketplace includes many images that can be used to create VMs. Nei passaggi precedenti è stata creata una macchina virtuale usando un'immagine Ubuntu.In the previous steps, a virtual machine was created using an Ubuntu image. In questo passaggio l'interfaccia della riga di comando di Azure viene usata per cercare nel marketplace un'immagine CentOS, che viene quindi usata per distribuire una seconda macchina virtuale.In this step, the Azure CLI is used to search the marketplace for a CentOS image, which is then used to deploy a second virtual machine.

Per visualizzare un elenco delle immagini più usate, eseguire il comando az vm image list.To see a list of the most commonly used images, use the az vm image list command.

az vm image list --output table

L'output del comando restituisce le immagini di macchina virtuale più popolari in Azure.The command output returns the most popular VM images on Azure.

Offer          Publisher               Sku                 Urn                                                             UrnAlias             Version
-------------  ----------------------  ------------------  --------------------------------------------------------------  -------------------  ---------
WindowsServer  MicrosoftWindowsServer  2016-Datacenter     MicrosoftWindowsServer:WindowsServer:2016-Datacenter:latest     Win2016Datacenter    latest
WindowsServer  MicrosoftWindowsServer  2012-R2-Datacenter  MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:latest  Win2012R2Datacenter  latest
WindowsServer  MicrosoftWindowsServer  2008-R2-SP1         MicrosoftWindowsServer:WindowsServer:2008-R2-SP1:latest         Win2008R2SP1         latest
WindowsServer  MicrosoftWindowsServer  2012-Datacenter     MicrosoftWindowsServer:WindowsServer:2012-Datacenter:latest     Win2012Datacenter    latest
UbuntuServer   Canonical               16.04-LTS           Canonical:UbuntuServer:16.04-LTS:latest                         UbuntuLTS            latest
CentOS         OpenLogic               7.3                 OpenLogic:CentOS:7.3:latest                                     CentOS               latest
openSUSE-Leap  SUSE                    42.2                SUSE:openSUSE-Leap:42.2:latest                                  openSUSE-Leap        latest
RHEL           RedHat                  7.3                 RedHat:RHEL:7.3:latest                                          RHEL                 latest
SLES           SUSE                    12-SP2              SUSE:SLES:12-SP2:latest                                         SLES                 latest
Debian         credativ                8                   credativ:Debian:8:latest                                        Debian               latest
CoreOS         CoreOS                  Stable              CoreOS:CoreOS:Stable:latest                                     CoreOS               latest

Per visualizzare l'elenco completo, aggiungere l'argomento --all.A full list can be seen by adding the --all argument. L'elenco di immagini può anche essere filtrato per --publisher o –-offer.The image list can also be filtered by --publisher or –-offer. In questo esempio l'elenco viene filtrato per cercare tutte le immagini con un'offerta corrispondente a CentOS.In this example, the list is filtered for all images with an offer that matches CentOS.

az vm image list --offer CentOS --all --output table

Output parziale:Partial output:

Offer             Publisher         Sku   Urn                                     Version
----------------  ----------------  ----  --------------------------------------  -----------
CentOS            OpenLogic         6.5   OpenLogic:CentOS:6.5:6.5.201501         6.5.201501
CentOS            OpenLogic         6.5   OpenLogic:CentOS:6.5:6.5.201503         6.5.201503
CentOS            OpenLogic         6.5   OpenLogic:CentOS:6.5:6.5.201506         6.5.201506
CentOS            OpenLogic         6.5   OpenLogic:CentOS:6.5:6.5.20150904       6.5.20150904
CentOS            OpenLogic         6.5   OpenLogic:CentOS:6.5:6.5.20160309       6.5.20160309
CentOS            OpenLogic         6.5   OpenLogic:CentOS:6.5:6.5.20170207       6.5.20170207

Per distribuire una VM usando un'immagine specifica, prendere nota del valore nella colonna Urn.To deploy a VM using a specific image, take note of the value in the Urn column. Quando si specifica l'immagine, il numero di versione dell'immagine può essere sostituito con "latest", che seleziona la versione più recente della distribuzione.When specifying the image, the image version number can be replaced with “latest”, which selects the latest version of the distribution. In questo esempio viene usato l'argomento --image per specificare la versione più recente di un'immagine CentOS 6.5.In this example, the --image argument is used to specify the latest version of a CentOS 6.5 image.

az vm create --resource-group myResourceGroupVM --name myVM2 --image OpenLogic:CentOS:6.5:latest --generate-ssh-keys

Informazioni sulle dimensioni delle VMUnderstand VM sizes

La dimensioni di una macchina virtuale determinano la quantità di risorse di calcolo, ad esempio CPU, GPU e memoria, disponibili per la macchina virtuale.A virtual machine size determines the amount of compute resources such as CPU, GPU, and memory that are made available to the virtual machine. È necessario ridimensionare le macchine virtuali in modo appropriato per il carico di lavoro previsto.Virtual machines need to be sized appropriately for the expected work load. Se aumenta il carico di lavoro, è possibile ridimensionare una macchina virtuale esistente.If workload increases, an existing virtual machine can be resized.

Dimensioni delle VMVM Sizes

La tabella seguente classifica le dimensioni a seconda dei casi d'uso.The following table categorizes sizes into use cases.

TipoType DimensioniSizes DescrizioneDescription
Utilizzo genericoGeneral purpose Dsv3, Dv3, DSv2, Dv2, DS, D, Av2, A0-7Dsv3, Dv3, DSv2, Dv2, DS, D, Av2, A0-7 Rapporto equilibrato tra CPU e memoria.Balanced CPU-to-memory. Soluzione ideale per sviluppo/test e soluzioni di dati e applicazioni medio-piccole.Ideal for dev / test and small to medium applications and data solutions.
Ottimizzate per il calcoloCompute optimized Fs, FFs, F Rapporto elevato tra CPU e memoria.High CPU-to-memory. Soluzione idonea per applicazioni con livelli medi di traffico, dispositivi di rete e processi batch.Good for medium traffic applications, network appliances, and batch processes.
Ottimizzate per la memoriaMemory optimized Esv3, Ev3, M, GS, G, DSv2, DS, Dv2, DEsv3, Ev3, M, GS, G, DSv2, DS, Dv2, D Rapporto elevato tra memoria e core.High memory-to-core. Soluzione ideale per database relazionali, cache medio-grandi e analisi in memoria.Great for relational databases, medium to large caches, and in-memory analytics.
Ottimizzate per l'archiviazioneStorage optimized LsLs I/O e velocità effettiva del disco elevati.High disk throughput and IO. Ideale per Big Data, database SQL e NoSQL.Ideal for Big Data, SQL, and NoSQL databases.
GPUGPU NV, NCNV, NC VM specializzate ottimizzate per livelli intensivi di rendering della grafica e modifica di video.Specialized VMs targeted for heavy graphic rendering and video editing.
Prestazioni elevateHigh performance H, A8-11H, A8-11 Le VM con CPU più potenti, con interfacce di rete ad alta velocità effettiva opzionali (RDMA).Our most powerful CPU VMs with optional high-throughput network interfaces (RDMA).

Trovare le dimensioni delle macchine virtuali disponibiliFind available VM sizes

Per visualizzare un elenco delle dimensioni delle VM disponibili in una determinata area, usare il comando az vm list-sizes.To see a list of VM sizes available in a particular region, use the az vm list-sizes command.

az vm list-sizes --location eastus --output table

Output parziale:Partial output:

  MaxDataDiskCount    MemoryInMb  Name                      NumberOfCores    OsDiskSizeInMb    ResourceDiskSizeInMb
------------------  ------------  ----------------------  ---------------  ----------------  ----------------------
                 2          3584  Standard_DS1                          1           1047552                    7168
                 4          7168  Standard_DS2                          2           1047552                   14336
                 8         14336  Standard_DS3                          4           1047552                   28672
                16         28672  Standard_DS4                          8           1047552                   57344
                 4         14336  Standard_DS11                         2           1047552                   28672
                 8         28672  Standard_DS12                         4           1047552                   57344
                16         57344  Standard_DS13                         8           1047552                  114688
                32        114688  Standard_DS14                        16           1047552                  229376
                 1           768  Standard_A0                           1           1047552                   20480
                 2          1792  Standard_A1                           1           1047552                   71680
                 4          3584  Standard_A2                           2           1047552                  138240
                 8          7168  Standard_A3                           4           1047552                  291840
                 4         14336  Standard_A5                           2           1047552                  138240
                16         14336  Standard_A4                           8           1047552                  619520
                 8         28672  Standard_A6                           4           1047552                  291840
                16         57344  Standard_A7                           8           1047552                  619520

Creare una macchina virtuale con dimensioni specificheCreate VM with specific size

Nell'esempio precedente di creazione di una VM, non essendo state specificate le dimensioni, sono state usate le dimensioni predefinite.In the previous VM creation example, a size was not provided, which results in a default size. Le dimensioni di una VM possono essere selezionate in fase di creazione usando az vm create e l'argomento --size.A VM size can be selected at creation time using az vm create and the --size argument.

az vm create \
    --resource-group myResourceGroupVM \
    --name myVM3 \
    --image UbuntuLTS \
    --size Standard_F4s \
    --generate-ssh-keys

Ridimensionare una VMResize a VM

Dopo la distribuzione di una VM, è possibile ridimensionarla per aumentare o ridurre l'allocazione delle risorse.After a VM has been deployed, it can be resized to increase or decrease resource allocation. È possibile visualizzare la dimensione attuale di una macchina virtuale con az vm show:You can view the current of size of a VM with 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.Before resizing a VM, check if the desired size is available on the current Azure cluster. Il comando az vm list-vm-resize-options restituisce l'elenco di dimensioni.The az vm list-vm-resize-options command returns the list of sizes.

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.If the desired size is available, the VM can be resized from a powered-on state, however it is rebooted during the operation. Usare il comando az vm resize per eseguire il ridimensionamento.Use the az vm resize command to perform the resize.

az vm resize --resource-group myResourceGroupVM --name myVM --size Standard_DS4_v2

Se nel cluster corrente non sono disponibili le dimensioni desiderate, è necessario deallocare la VM prima di poter eseguire l'operazione di ridimensionamento.If the desired size is not on the current cluster, the VM needs to be deallocated before the resize operation can occur. Usare il comando az vm deallocate per arrestare e deallocare la VM.Use the az vm deallocate command to stop and deallocate the VM. Tenere presente che, quando la VM viene riaccesa, i dati sul disco temporaneo potrebbero essere rimossi.Note, when the VM is powered back on, any data on the temp disk may be removed. Anche l'indirizzo IP pubblico viene modificato a meno che non venga usato un indirizzo IP statico.The public IP address also changes unless a static IP address is being used.

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

Dopo la deallocazione, è possibile eseguire il ridimensionamento.Once deallocated, the resize can occur.

az vm resize --resource-group myResourceGroupVM --name myVM --size Standard_GS1

Dopo il ridimensionamento, la VM può essere avviata.After the resize, the VM can be started.

az vm start --resource-group myResourceGroupVM --name myVM

Stati di alimentazione di una macchina virtualeVM power states

Una macchina virtuale di Azure può avere uno dei diversi stati di alimentazione.An Azure VM can have one of many power states. Questo stato rappresenta lo stato corrente della VM dal punto di vista dell'hypervisor.This state represents the current state of the VM from the standpoint of the hypervisor.

Stati di alimentazionePower states

Stato di alimentazionePower State DescrizioneDescription
Avvio in corsoStarting Indica che è in corso l'avvio della macchina virtuale.Indicates the virtual machine is being started.
In esecuzioneRunning Indica che la macchina virtuale è in esecuzione.Indicates that the virtual machine is running.
Arresto in corsoStopping Indica che è in corso l'arresto della macchina virtuale.Indicates that the virtual machine is being stopped.
ArrestatoStopped Indica che la macchina virtuale è stata arrestata.Indicates that the virtual machine is stopped. Alle macchine virtuali con stato arrestato continuano a essere addebitati i costi di calcolo.Virtual machines in the stopped state still incur compute charges.
DeallocazioneDeallocating Indica che è in corso la deallocazione della macchina virtuale.Indicates that the virtual machine is being deallocated.
DeallocatoDeallocated Indica che la macchina virtuale è stata rimossa dall'hypervisor, ma è ancora disponibile nel piano di controllo.Indicates that the virtual machine is removed from the hypervisor but still available in the control plane. Alle macchine virtuali con stato deallocato non vengono addebitati i costi di calcolo.Virtual machines in the Deallocated state do not incur compute charges.
- Indica che lo stato di alimentazione della macchina virtuale è sconosciuto.Indicates that the power state of the virtual machine is unknown.

Trovare lo stato di alimentazioneFind power state

Per recuperare lo stato di una determinata VM, usare il comando az vm get instance-view.To retrieve the state of a particular VM, use the az vm get instance-view command. Assicurarsi di specificare un nome valido per una macchina virtuale e un gruppo di risorse.Be sure to specify a valid name for a virtual machine and resource group.

az vm get-instance-view \
    --name myVM \
    --resource-group myResourceGroupVM \
    --query instanceView.statuses[1] --output table

Output:Output:

ode                DisplayStatus    Level
------------------  ---------------  -------
PowerState/running  VM running       Info

Attività di gestioneManagement tasks

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.During the life-cycle of a virtual machine, you may want to run management tasks such as starting, stopping, or deleting a virtual machine. È consigliabile creare script per automatizzare le attività ripetitive o complesse.Additionally, you may want to create scripts to automate repetitive or complex tasks. Usando l'interfaccia della riga di comando di Azure è possibile eseguire molte attività di gestione comuni dalla riga di comando o tramite script.Using the Azure CLI, many common management tasks can be run from the command line or in scripts.

Ottenere l'indirizzo IPGet IP address

Questo comando restituisce gli indirizzi IP pubblici e privati di una macchina virtuale.This command returns the private and public IP addresses of a virtual machine.

az vm list-ip-addresses --resource-group myResourceGroupVM --name myVM --output table

Arrestare la macchina virtualeStop virtual machine

az vm stop --resource-group myResourceGroupVM --name myVM

Avviare la macchina virtualeStart virtual machine

az vm start --resource-group myResourceGroupVM --name myVM

Eliminare un gruppo di risorseDelete resource group

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.Deleting a resource group also deletes all resources contained within, such as the VM, virtual network, and disk. Il parametro --no-wait restituisce il controllo al prompt senza attendere il completamento dell'operazione.The --no-wait parameter returns control to the prompt without waiting for the operation to complete. Il parametro --yes conferma che si desidera eliminare le risorse senza un prompt aggiuntivo a tale scopo.The --yes parameter confirms that you wish to delete the resources without an additional prompt to do so.

az group delete --name myResourceGroupVM --no-wait --yes

Passaggi successiviNext steps

In questa esercitazione sono illustrate la creazione e la gestione di VM di base, ad esempio:In this tutorial, you learned about basic VM creation and management such as how to:

  • Creare e connettersi a una macchina virtualeCreate and connect to a VM
  • Selezionare e usare le immagini di una macchina virtualeSelect and use VM images
  • Visualizzare e usare macchine virtuali di dimensioni specificheView and use specific VM sizes
  • Ridimensionare una VMResize a VM
  • Visualizzare e comprendere lo stato di una macchina virtualeView and understand VM state

Passare all'esercitazione successiva per informazioni sui dischi di macchine virtuali.Advance to the next tutorial to learn about VM disks.