Tutorial: Creación y administración de máquinas virtuales Linux con la CLI de Azure

Precaución

En este artículo se hace referencia a CentOS, una distribución de Linux que está cerca de su estado Final de ciclo vida (EOL). Tenga en cuenta su uso y planifique en consecuencia. Para obtener más información, consulte la guía de fin de vida de CentOS.

Se aplica a: ✔️ máquinas virtuales Linux ✔️ conjuntos de escalado flexibles

Las máquinas virtuales de Azure proporcionan un entorno informático completamente configurable y flexible. 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. Aprenderá a:

  • Crear y conectar elementos a una máquina virtual
  • Seleccionar y usar imágenes de máquinas virtuales
  • Ver y usar tamaños de una máquina virtual específicos
  • Cambiar el tamaño de una máquina virtual
  • Ver y entender el estado de las máquinas virtuales.

En este tutorial se usa la CLI dentro de Azure Cloud Shell, que se actualiza constantemente a la versión más reciente.

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. Ejecute az --version para encontrar la versión. Si necesita instalarla o actualizarla, vea Instalación de la CLI de Azure.

Creación de un grupo de recursos

Para crear un grupo de recursos, use el comando az group create.

Un grupo de recursos de Azure es un contenedor lógico en el que se implementan y se administran los recursos de Azure. Se debe crear un grupo de recursos antes de una máquina virtual. En este ejemplo, se crea un grupo de recursos denominado myResourceGroupVM en la región eastus2.

az group create --name myResourceGroupVM --location eastus2

Se especifica el grupo de recursos al crear o modificar una máquina virtual, como se ve a lo largo de este tutorial.

Crear máquina virtual

Cree la máquina virtual con el comando az vm create.

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. En el ejemplo siguiente se crea una máquina virtual denominada myVM que ejecuta SUSE Linux Enterprise Server (SLES). 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):

az vm create \
    --resource-group myResourceGroupVM \
    --name myVM \
    --image SuseSles15SP3 \
    --public-ip-sku Standard \
    --admin-username azureuser \
    --generate-ssh-keys

La creación de la máquina virtual puede tardar unos minutos. Una vez creada la máquina virtual, la CLI de Azure ofrece como salida información sobre la máquina virtual. Tome nota de publicIpAddress; una dirección que se puede usar para acceder a la máquina virtual.

{
  "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"
}

Conexión con una máquina virtual

Ahora puede conectarse a la máquina virtual mediante SSH en Azure Cloud Shell o desde un equipo local. Reemplace la dirección IP de ejemplo por la dirección publicIpAddress que anotó en el paso anterior.

ssh azureuser@52.174.34.95

Una vez que inicia sesión en la máquina virtual, puede instalar y configurar las aplicaciones. Cuando haya terminado, cierre la sesión SSH como normal:

exit

Descripción de las imágenes de máquina virtual

Azure Marketplace incluye muchas imágenes que pueden usarse para crear máquinas virtuales. En los pasos anteriores, se creó una máquina virtual con una imagen de Ubuntu. 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.

Para ver una lista de las imágenes usadas con más frecuencia, use el comando az vm image list.

az vm image list --output table

La salida del comando devuelve las imágenes de máquina virtual más populares en Azure.

Architecture    Offer                         Publisher               Sku                                 Urn                                                                             UrnAlias                 Version
--------------  ----------------------------  ----------------------  ----------------------------------  ------------------------------------------------------------------------------  -----------------------  ---------
x64             CentOS                        OpenLogic               7.5                                 OpenLogic:CentOS:7.5:latest                                                     CentOS                   latest
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             UbuntuServer                  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

Para ver una lista completa, agregue el parámetro --all. También puede filtrar la lista de imágenes por --publisher u –-offer. En este ejemplo, la lista se ha filtrado para todas las imágenes, publicada por OpenLogic, con una oferta que coincide con CentOS.

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

Salida parcial de ejemplo:

Architecture    Offer                      Publisher    Sku              Urn                                                       Version
--------------  -------------------------  -----------  ---------------  --------------------------------------------------------  ---------------
x64             CentOS                     OpenLogic    8_2              OpenLogic:CentOS:8_2:8.2.2020111800                       8.2.2020111800
x64             CentOS                     OpenLogic    8_2-gen2         OpenLogic:CentOS:8_2-gen2:8.2.2020062401                  8.2.2020062401
x64             CentOS                     OpenLogic    8_2-gen2         OpenLogic:CentOS:8_2-gen2:8.2.2020100601                  8.2.2020100601
x64             CentOS                     OpenLogic    8_2-gen2         OpenLogic:CentOS:8_2-gen2:8.2.2020111801                  8.2.2020111801
x64             CentOS                     OpenLogic    8_3              OpenLogic:CentOS:8_3:8.3.2020120900                       8.3.2020120900
x64             CentOS                     OpenLogic    8_3              OpenLogic:CentOS:8_3:8.3.2021020400                       8.3.2021020400
x64             CentOS                     OpenLogic    8_3-gen2         OpenLogic:CentOS:8_3-gen2:8.3.2020120901                  8.3.2020120901
x64             CentOS                     OpenLogic    8_3-gen2         OpenLogic:CentOS:8_3-gen2:8.3.2021020401                  8.3.2021020401
x64             CentOS                     OpenLogic    8_4              OpenLogic:CentOS:8_4:8.4.2021071900                       8.4.2021071900
x64             CentOS                     OpenLogic    8_4-gen2         OpenLogic:CentOS:8_4-gen2:8.4.2021071901                  8.4.2021071901
x64             CentOS                     OpenLogic    8_5              OpenLogic:CentOS:8_5:8.5.2022012100                       8.5.2022012100
x64             CentOS                     OpenLogic    8_5              OpenLogic:CentOS:8_5:8.5.2022101800                       8.5.2022101800
x64             CentOS                     OpenLogic    8_5-gen2         OpenLogic:CentOS:8_5-gen2:8.5.2022012101                  8.5.2022012101

Nota:

Canonical ha cambiado los nombres de Oferta que se usan para las versiones más recientes. Antes de Ubuntu 20.04, el nombre de Oferta es UbuntuServer. Para Ubuntu 20.04, el nombre de Oferta es 0001-com-ubuntu-server-focal y para Ubuntu 22.04 es 0001-com-ubuntu-server-jammy.

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. 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. En este ejemplo, se emplea el parámetro --image para especificar la versión más reciente de una distribución CentOS 8.5.

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

Comprensión de los tamaños de máquina virtual

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. Es necesario ajustar adecuadamente el tamaño de las máquinas virtuales para la carga de trabajo esperada. Si aumenta la carga de trabajo, se puede cambiar el tamaño de una máquina virtual existente.

Tamaños de máquina virtual

En la tabla siguiente se clasifican los tamaños en casos de uso.

Tipo Descripción
Uso general Uso equilibrado de CPU y memoria. Ideal para desarrollo/pruebas, así como soluciones de datos y aplicaciones de tamaño pequeño a mediano.
Proceso optimizado Uso elevado de la CPU respecto a la memoria. Adecuado para aplicaciones, dispositivos de red y procesos por lotes con tráfico mediano.
Memoria optimizada Uso elevado de memoria respecto al núcleo. Excelente para bases de datos relacionales, memorias caché de capacidad de mediana a grande y análisis en memoria.
Almacenamiento optimizado Alto rendimiento de disco y E/S. Perfecto para bases de datos SQL y NoSQL y macrodatos.
GPU Máquinas virtuales especializadas para actividades intensas de representación de gráficos y edición de vídeo.
Alto rendimiento Nuestras máquinas virtuales con CPU más eficaces e interfaces de red de alto rendimiento (RDMA) opcionales.

Búsqueda de los tamaños de máquina virtual disponibles

Para ver una lista de tamaños de máquinas virtuales disponibles en una región determinada, use el comando az vm list-sizes.

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

Salida parcial de ejemplo:

  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

Creación de máquinas virtuales con un tamaño específico

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. Se puede seleccionar un tamaño para la máquina virtual al crearla con el comando az vm create y el parámetro --size.

az vm create \
    --resource-group myResourceGroupVM \
    --name myVM3 \
    --image SuseSles15SP3 \
    --size Standard_D2ds_v4  \
    --generate-ssh-keys

Cambiar el tamaño de una máquina virtual

Una vez implementada una máquina virtual, se puede cambiar su tamaño para aumentar o disminuir la asignación de recursos. El tamaño actual de una máquina virtual se puede ver con 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. El comando az vm list-vm-resize-options devuelve la lista de tamaños.

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. Use el comando az vm resize para realizar el cambio de tamaño.

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

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. Use el comando az vm deallocate para detener y desasignar la máquina virtual. Tenga en cuenta que, cuando se vuelve a encender la máquina virtual, es posible que se quiten todos los datos del disco temporal. Además, la dirección IP pública cambia a menos que se esté usando una estática.

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

Una vez desasignada, puede realizarse el cambio de tamaño.

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

Tras el cambio de tamaño, se puede iniciar la máquina virtual.

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

Estados de energía de una máquina virtual

Una máquina virtual de Azure puede tener uno de muchos estados de energía. Este estado representa el estado actual de la máquina virtual desde el punto de vista del hipervisor.

Estados de energía

Estado de energía Descripción
Iniciando Indica que se está iniciando la máquina virtual.
En ejecución Indica que la máquina virtual se está ejecutando.
Deteniéndose Indica que se está deteniendo la máquina virtual.
Detenido Indica que se ha detenido la máquina virtual. Las máquinas virtuales en el estado detenido siguen acumulando cargos por procesos.
Desasignando Indica que se está desasignando la máquina virtual.
Desasignado Indica que la máquina virtual se quitó del hipervisor pero sigue estando disponible en el plano de control. Las máquinas virtuales en el estado Desasignado no incurren cargos por procesos.
- Indica que se desconoce el estado de la máquina virtual.

Busque el estado de energía de la máquina

Para recuperar el estado de una máquina virtual concreta, use el comando az vm get instance-view. Asegúrese de especificar un nombre válido para la máquina virtual y el grupo de recursos.

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

Salida:

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

Para recuperar el estado de energía de todas las máquinas virtuales de la suscripción, use Virtual Machines - List All API con el parámetro statusOnly establecido en true.

Tareas de administración

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. Además, puede crear scripts para automatizar tareas repetitivas o complejas. Mediante la CLI de Azure, muchas tareas comunes de administración se pueden ejecutar desde la línea de comandos o en scripts.

Obtención de la dirección IP

Este comando devuelve las direcciones IP públicas y privadas de una máquina virtual.

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

Detener una máquina virtual

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

Iniciar una máquina virtual

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

Eliminación de recursos de máquina virtual

En función de cómo se elimine una máquina virtual, solo se elimina el recurso de máquina virtual, no los recursos de redes y disco. Puede cambiar el comportamiento predeterminado para eliminar otros recursos al eliminar la máquina virtual. Para más información, vea Eliminación de una máquina virtual y recursos asociados.

Al eliminar un grupo de recursos también se eliminan todos los recursos del grupo de recursos, como la máquina virtual, la red virtual y el disco. El parámetro --no-wait devuelve el control a la petición de confirmación sin esperar a que finalice la operación. El parámetro --yes confirma que desea eliminar los recursos sin pedir confirmación adicional.

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

Pasos siguientes

En este tutorial, ha aprendido conceptos básicos sobre la creación y administración de máquinas virtuales. Por ejemplo:

  • Crear y conectar elementos a una máquina virtual
  • Seleccionar y usar imágenes de máquinas virtuales
  • Ver y usar tamaños de una máquina virtual específicos
  • Cambiar el tamaño de una máquina virtual
  • Ver y entender el estado de las máquinas virtuales.

Prosiga con el siguiente tutorial para aprender sobre los discos en máquinas virtuales.