Tutorial: Creación y administración de máquinas virtuales Linux con la CLI de AzureTutorial: Create and Manage Linux VMs with the Azure CLI

Las máquinas virtuales de Azure proporcionan un entorno informático completamente configurable y flexible.Azure virtual machines provide a fully configurable and flexible computing environment. En este tutorial se tratan elementos básicos de la implementación de máquinas virtuales de Azure, como la selección de su tamaño, la selección de una imagen de máquina virtual y la implementación de una máquina virtual.This tutorial covers basic Azure virtual machine deployment items such as selecting a VM size, selecting a VM image, and deploying a VM. Aprenderá a:You learn how to:

  • Crear y conectar elementos a una máquina virtualCreate and connect to a VM
  • Seleccionar y usar imágenes de máquinas virtualesSelect and use VM images
  • Ver y usar tamaños de una máquina virtual específicosView and use specific VM sizes
  • Cambiar el tamaño de una máquina virtualResize a VM
  • Ver y entender el estado de las máquinas virtualesView and understand VM state

Uso de Azure Cloud ShellUse Azure Cloud Shell

En Azure se hospeda Azure Cloud Shell, un entorno de shell interactivo que puede utilizar mediante el explorador.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Cloud Shell le permite usar bash o PowerShell para trabajar con servicios de Azure.Cloud Shell lets you use either bash or PowerShell to work with Azure services. Puede usar los comandos preinstalados de Cloud Shell para ejecutar el código de este artículo sin tener que instalar nada en su entorno local.You can use the Cloud Shell pre-installed commands to run the code in this article without having to install anything on your local environment.

Para iniciar Azure Cloud Shell:To launch Azure Cloud Shell:

OpciónOption Ejemplo o vínculoExample/Link
Seleccione Probarlo en la esquina superior derecha de un bloque de código.Select Try It in the upper-right corner of a code block. Solo con seleccionar Probar no se copia automáticamente el código en Cloud Shell.Selecting Try It doesn't automatically copy the code to Cloud Shell. Ejemplo de Probarlo para Azure Cloud Shell
Vaya a https://shell.azure.com o seleccione el botón Iniciar Cloud Shell para abrir Cloud Shell en el explorador.Go to https://shell.azure.com or select the Launch Cloud Shell button to open Cloud Shell in your browser. Iniciar Cloud Shell en una nueva ventanaLaunch Cloud Shell in a new window
Seleccione el botón Cloud Shell en la barra de menús de la esquina superior derecha de Azure Portal.Select the Cloud Shell button on the top-right menu bar in the Azure portal. Botón Cloud Shell en Azure Portal

Para ejecutar el código de este artículo en Azure Cloud Shell:To run the code in this article in Azure Cloud Shell:

  1. Inicie Cloud Shell.Launch Cloud Shell.

  2. Seleccione el botón Copiar de un bloque de código para copiar el código.Select the Copy button on a code block to copy the code.

  3. Pegue el código en la sesión de Cloud Shell con Ctrl+Mayús+V en Windows y Linux, o Cmd+Mayús+V en macOS.Paste the code into the Cloud Shell session with Ctrl+Shift+V on Windows and Linux, or Cmd+Shift+V on macOS.

  4. Presione ENTRAR para ejecutar el código.Press Enter to run the code.

Si decide instalar y usar la CLI localmente, en este tutorial es preciso que ejecute la CLI de Azure de la versión 2.0.30, u otra posterior.If you choose to install and use the CLI locally, this tutorial requires that you are running the Azure CLI version 2.0.30 or later. Ejecute az --version para encontrar la versión.Run az --version to find the version. Si necesita instalarla o actualizarla, vea Instalación de la CLI de Azure.If you need to install or upgrade, see Install Azure CLI.

Creación de un grupo de recursosCreate resource group

Cree un grupo de recursos con el comando az group create.Create a resource group with the az group create command.

Un grupo de recursos de Azure es un contenedor lógico en el que se implementan y se administran los recursos de Azure.An Azure resource group is a logical container into which Azure resources are deployed and managed. Se debe crear un grupo de recursos antes de una máquina virtual.A resource group must be created before a virtual machine. En este ejemplo, se crea un grupo de recursos denominado myResourceGroupVM en la región eastus.In this example, a resource group named myResourceGroupVM is created in the eastus region.

az group create --name myResourceGroupVM --location eastus

Se especifica el grupo de recursos al crear o modificar una máquina virtual, como se ve a lo largo de este tutorial.The resource group is specified when creating or modifying a VM, which can be seen throughout this tutorial.

Crear máquina virtualCreate virtual machine

Cree la máquina virtual con el comando az vm create.Create a virtual machine with the az vm create command.

Al crear una máquina virtual, hay varias opciones disponibles, como la imagen del sistema operativo, el tamaño del disco y las credenciales administrativas.When you create a virtual machine, several options are available such as operating system image, disk sizing, and administrative credentials. En el ejemplo siguiente se crea una máquina virtual denominada myVM en la que se ejecuta Ubuntu Server.The following example creates a VM named myVM that runs Ubuntu Server. Se crea una cuenta de usuario denominada azureuser en la máquina virtual, y se generan claves SSH, si no existen en la ubicación de la clave predeterminada ( ~/.ssh):A user account named azureuser is created on the VM, and SSH keys are generated if they do not exist in the default key location (~/.ssh):

az vm create \
    --resource-group myResourceGroupVM \
    --name myVM \
    --image UbuntuLTS \
    --admin-username azureuser \
    --generate-ssh-keys

La creación de la máquina virtual puede tardar unos minutos.It may take a few minutes to create the VM. Una vez creada la máquina virtual, la CLI de Azure ofrece como salida información sobre la máquina virtual.Once the VM has been created, the Azure CLI outputs information about the VM. Tome nota de publicIpAddress; una dirección que se puede usar para acceder a la máquina virtual.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"
}

Conexión con una máquina virtualConnect to VM

Ahora puede conectarse a la máquina virtual mediante SSH en Azure Cloud Shell o desde un equipo local.You can now connect to the VM with SSH in the Azure Cloud Shell or from your local computer. Reemplace la dirección IP de ejemplo por la dirección publicIpAddress que anotó en el paso anterior.Replace the example IP address with the publicIpAddress noted in the previous step.

ssh azureuser@52.174.34.95

Una vez que inicia sesión en la máquina virtual, puede instalar y configurar las aplicaciones.Once logged in to the VM, you can install and configure applications. Cuando haya terminado, cierre la sesión SSH como normal:When you are finished, you close the SSH session as normal:

exit

Descripción de las imágenes de máquina virtualUnderstand VM images

Azure Marketplace incluye muchas imágenes que pueden usarse para crear VM.The Azure marketplace includes many images that can be used to create VMs. En los pasos anteriores, se creó una máquina virtual con una imagen de Ubuntu.In the previous steps, a virtual machine was created using an Ubuntu image. En este paso, se usa la CLI de Azure para buscar en Marketplace una imagen de CentOS, que se usa para implementar una segunda máquina virtual.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.

Para ver una lista de las imágenes usadas con más frecuencia, use el 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

La salida del comando devuelve las imágenes de máquina virtual más populares en 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

Para ver una lista completa, agregue el argumento --all.A full list can be seen by adding the --all argument. También puede filtrar la lista de imágenes por --publisher u –-offer.The image list can also be filtered by --publisher or –-offer. En este ejemplo, la lista se ha filtrado para todas las imágenes con una oferta que coincida con 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

Salida parcial: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

Para implementar una máquina virtual mediante una imagen específica, anote el valor de la columna Urn, que consta del publicador, la oferta, la SKU y, opcionalmente, un número de versión para identificar la imagen.To deploy a VM using a specific image, take note of the value in the Urn column, which consists of the publisher, offer, SKU, and optionally a version number to identify the image. Al especificar la imagen, se puede reemplazar el número de versión de la imagen por "latest", para que se seleccione la versión más reciente de la distribución.When specifying the image, the image version number can be replaced with “latest”, which selects the latest version of the distribution. En este ejemplo, se emplea el argumento --image para especificar la versión más reciente de una imagen de 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

Comprensión de los tamaños de máquina virtualUnderstand VM sizes

El tamaño de la máquina virtual determina la cantidad de recursos de proceso, como memoria, CPU y GPU, que están disponibles para la máquina virtual.A virtual machine size determines the amount of compute resources such as CPU, GPU, and memory that are made available to the virtual machine. Es necesario ajustar adecuadamente el tamaño de las máquinas virtuales para la carga de trabajo esperada.Virtual machines need to be sized appropriately for the expected work load. Si aumenta la carga de trabajo, se puede cambiar el tamaño de una máquina virtual existente.If workload increases, an existing virtual machine can be resized.

Tamaños de máquina virtualVM Sizes

En la tabla siguiente se clasifican los tamaños en casos de uso.The following table categorizes sizes into use cases.

typeType Tamaños comunesCommon sizes DESCRIPCIÓNDescription
Uso generalGeneral purpose B, Dsv3, Dv3, DSv2, Dv2, Av2, DCB, Dsv3, Dv3, DSv2, Dv2, Av2, DC Uso equilibrado de CPU y memoria.Balanced CPU-to-memory. Ideal para desarrollo/pruebas, así como soluciones de datos y aplicaciones de tamaño pequeño a mediano.Ideal for dev / test and small to medium applications and data solutions.
Proceso optimizadoCompute optimized Fsv2Fsv2 Uso elevado de la CPU respecto a la memoria.High CPU-to-memory. Adecuado para aplicaciones, dispositivos de red y procesos por lotes con tráfico mediano.Good for medium traffic applications, network appliances, and batch processes.
Memoria optimizadaMemory optimized Esv3, Ev3, M, DSv2, Dv2Esv3, Ev3, M, DSv2, Dv2 Uso elevado de memoria respecto al núcleo.High memory-to-core. Excelente para bases de datos relacionales, memorias caché de capacidad de mediana a grande y análisis en memoria.Great for relational databases, medium to large caches, and in-memory analytics.
Almacenamiento optimizadoStorage optimized Lsv2, LsLsv2, Ls Alto rendimiento de disco y E/S.High disk throughput and IO. Perfecto para bases de datos SQL y NoSQL y macrodatos.Ideal for Big Data, SQL, and NoSQL databases.
GPUGPU NV, NVv2, NC, NCv2, NCv3, NDNV, NVv2, NC, NCv2, NCv3, ND Máquinas virtuales especializadas específicas para actividades intensas de representación de gráficos y edición de vídeo.Specialized VMs targeted for heavy graphic rendering and video editing.
Alto rendimientoHigh performance HH Nuestras máquinas virtuales con CPU más eficaces e interfaces de red de alto rendimiento (RDMA) opcionales.Our most powerful CPU VMs with optional high-throughput network interfaces (RDMA).

Búsqueda de los tamaños de máquina virtual disponiblesFind available VM sizes

Para ver una lista de tamaños de máquinas virtuales disponibles en una región determinada, use el 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

Salida parcial: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

Creación de máquinas virtuales con un tamaño específicoCreate VM with specific size

En el anterior ejemplo de creación de máquinas virtuales, no se proporcionó ningún tamaño, lo que conlleva el uso de un tamaño predeterminado.In the previous VM creation example, a size was not provided, which results in a default size. Se puede seleccionar un tamaño para la máquina virtual al crearla con el comando az vm create y el argumento --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

Cambiar el tamaño de una máquina virtual.Resize a VM

Una vez implementada una máquina virtual, se puede cambiar su tamaño para aumentar o disminuir la asignación de recursos.After a VM has been deployed, it can be resized to increase or decrease resource allocation. El tamaño actual de una máquina virtual se puede ver 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

Antes de cambiar el tamaño de una máquina virtual, compruebe si el tamaño deseado está disponible en el clúster de Azure actual.Before resizing a VM, check if the desired size is available on the current Azure cluster. El comando az vm list-vm-resize-options devuelve la lista de tamaños.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

Si el tamaño deseado está disponible, puede cambiarlo con la máquina virtual encendida, aunque se reiniciará durante la operación.If the desired size is available, the VM can be resized from a powered-on state, however it is rebooted during the operation. Use el comando az vm resize para realizar el cambio de tamaño.Use the az vm resize command to perform the resize.

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

Si el tamaño deseado no está en el clúster actual, se debe desasignar la máquina virtual para que se pueda llevar a cabo la operación de cambio de tamaño.If the desired size is not on the current cluster, the VM needs to be deallocated before the resize operation can occur. Use el comando az vm deallocate para detener y desasignar la máquina virtual.Use the az vm deallocate command to stop and deallocate the VM. Tenga en cuenta que, cuando se vuelve a encender la máquina virtual, es posible que se quiten todos los datos del disco temporal.Note, when the VM is powered back on, any data on the temp disk may be removed. Además, la dirección IP pública cambia a menos que se esté usando una estática.The public IP address also changes unless a static IP address is being used.

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

Una vez desasignada, puede realizarse el cambio de tamaño.Once deallocated, the resize can occur.

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

Tras el cambio de tamaño, se puede iniciar la máquina virtual.After the resize, the VM can be started.

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

Estados de una máquina virtualVM power states

Una máquina virtual de Azure puede tener uno de muchos estados de energía.An Azure VM can have one of many power states. Este estado representa el estado actual de la máquina virtual desde el punto de vista del hipervisor.This state represents the current state of the VM from the standpoint of the hypervisor.

Estados de energíaPower states

Estado de energíaPower State DESCRIPCIÓNDescription
IniciandoStarting Indica que se está iniciando la máquina virtual.Indicates the virtual machine is being started.
EjecuciónRunning Indica que la máquina virtual se está ejecutando.Indicates that the virtual machine is running.
DeteniéndoseStopping Indica que se está deteniendo la máquina virtual.Indicates that the virtual machine is being stopped.
StoppedStopped Indica que se ha detenido la máquina virtual.Indicates that the virtual machine is stopped. Las máquinas virtuales en el estado detenido siguen acumulando cargos por procesos.Virtual machines in the stopped state still incur compute charges.
DesasignandoDeallocating Indica que se está desasignando la máquina virtual.Indicates that the virtual machine is being deallocated.
DesasignadoDeallocated Indica que la máquina virtual se quitó del hipervisor pero sigue estando disponible en el plano de control.Indicates that the virtual machine is removed from the hypervisor but still available in the control plane. Las máquinas virtuales en el estado Desasignado no incurren cargos por procesos.Virtual machines in the Deallocated state do not incur compute charges.
- Indica que se desconoce el estado de la máquina virtual.Indicates that the power state of the virtual machine is unknown.

Busque el estado de energía de la máquinaFind the power state

Para recuperar el estado de una máquina virtual concreta, use el comando az vm get instance-view.To retrieve the state of a particular VM, use the az vm get-instance-view command. Asegúrese de especificar un nombre válido para la máquina virtual y el grupo de recursos.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

Salida:Output:

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

Tareas de administraciónManagement tasks

Durante el ciclo de vida de una máquina virtual, es posible que desee ejecutar tareas de administración como iniciar, detener o eliminar una máquina virtual.During the life-cycle of a virtual machine, you may want to run management tasks such as starting, stopping, or deleting a virtual machine. Además, puede crear scripts para automatizar tareas repetitivas o complejas.Additionally, you may want to create scripts to automate repetitive or complex tasks. Mediante la CLI de Azure, muchas tareas comunes de administración se pueden ejecutar desde la línea de comandos o en scripts.Using the Azure CLI, many common management tasks can be run from the command line or in scripts.

Obtención de dirección IPGet IP address

Este comando devuelve las direcciones IP públicas y privadas de una máquina virtual.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

Detener una máquina virtualStop virtual machine

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

Iniciar una máquina virtualStart virtual machine

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

Eliminación de un grupo de recursosDelete resource group

Al eliminar un grupo de recursos, también se eliminan todos los recursos que contiene, como la máquina virtual, la red virtual y el disco.Deleting a resource group also deletes all resources contained within, such as the VM, virtual network, and disk. El parámetro --no-wait devuelve el control a la petición de confirmación sin esperar a que finalice la operación.The --no-wait parameter returns control to the prompt without waiting for the operation to complete. El parámetro --yes confirma que desea eliminar los recursos sin pedir confirmación adicional.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

Pasos siguientesNext steps

En este tutorial, ha aprendido conceptos básicos sobre la creación y administración de máquinas virtuales. Por ejemplo:In this tutorial, you learned about basic VM creation and management such as how to:

  • Crear y conectar elementos a una máquina virtual.Create and connect to a VM
  • Seleccionar y usar imágenes de máquinas virtualesSelect and use VM images
  • Ver y usar tamaños de una máquina virtual específicosView and use specific VM sizes
  • Cambiar el tamaño de una máquina virtualResize a VM
  • Ver y entender el estado de las máquinas virtuales.View and understand VM state

Prosiga con el siguiente tutorial para aprender sobre los discos en máquinas virtuales de Azure.Advance to the next tutorial to learn about VM disks.