Aprovisionamiento de una máquina virtual Linux mediante la CLI de Azure

Completado

Puede instalar la CLI de Azure localmente en los sistemas operativos Linux, macOS y Windows. Los detalles de instalación dependen del sistema operativo y, en el caso de Linux, también de la distribución.

Nota:

Para obtener más información sobre las opciones de instalación de Linux, consulte Instalación de la CLI de Azure en Linux.

Para usar la CLI de Azure de forma interactiva, inicie un shell disponible en el sistema operativo, como cmd.exe en Windows o Bash en Linux o macOS, y, a continuación, emita un comando en el símbolo del sistema. Para automatizar tareas repetitivas, combine los comandos de la CLI en un script de shell con la sintaxis de script del shell elegido y, a continuación, ejecute el script.

Si quiere evitar la instalación de la CLI de Azure, puede usar Azure Cloud Shell. Azure Cloud Shell es un shell interactivo autenticado que puede usar para administrar recursos de Azure desde un explorador web. Azure Cloud Shell puede ejecutar Bash y Azure PowerShell, y tiene la versión actual de la CLI de Azure ya preinstalada. Para acceder a Azure Cloud Shell, abra el vínculo Azure Cloud Shell en un explorador web o inícielo desde Azure Portal seleccionando el icono de Azure Cloud Shell situado junto al cuadro de texto búsqueda global.

Captura de pantalla que muestra el icono de Azure Cloud Shell en Azure Portal.

Azure Cloud Shell proporciona la ventaja de la autenticación integrada, que usa las credenciales que proporciona al acceder a la suscripción de Azure desde el explorador web. Esto elimina la necesidad de ejecutar el comando az login al principio de cada sesión, que es necesario cuando se ejecuta la CLI de Azure localmente.

Implementación de una máquina virtual Linux mediante la CLI de Azure

El proceso de aprovisionamiento de una máquina virtual de Azure que ejecuta Linux mediante la CLI de Azure normalmente implica la siguiente secuencia de pasos de alto nivel:

  • Identifique una imagen de máquina virtual adecuada.
  • Identifique el tamaño de máquina virtual adecuado.
  • Cree un grupo de recursos.
  • Cree y configure una red virtual.
  • Cree una máquina virtual de Azure.

Según el entorno y los requisitos existentes, es posible que no sea necesario completar cada uno de los pasos anteriores. Por ejemplo, puede utilizar un grupo de recursos existente o una subred de red virtual para su implementación. Además, la CLI de Azure admite una amplia gama de configuraciones predeterminadas, que se aplican automáticamente si decide no asignar explícitamente valores a algunas de las opciones de configuración de recursos. Por ejemplo, al igual que con la implementación basada en Azure Portal, si no especifica una CLI de Azure de red virtual existente, se aprovisionará una automáticamente. En este módulo, se basará en la configuración predeterminada de la CLI de Azure y omitirá el proceso de creación de una red virtual.

Nota:

Para obtener información sobre la implementación de redes virtuales mediante la CLI de Azure, consulte Inicio rápido: Use la CLI de Azure para crear una red virtual.

Identificación de una imagen de máquina virtual adecuada

Antes de iniciar el proceso de aprovisionamiento, primero debe determinar la imagen de máquina virtual que desea usar. También debe comprobar la disponibilidad de la imagen en la región de Azure que hospedará la implementación.

Para enumerar las regiones de Azure disponibles en la suscripción, ejecute el siguiente comando desde una sesión de Bash en el panel Azure Cloud Shell:

az account list-locations --output table

Revise la salida e identifique el valor de la columna Nombre de la región que quiere usar. Supongamos que ha elegido la región Este de EE. UU. como destino, de modo que el nombre sea Este de EE. UU.

Para identificar la imagen adecuada, deberá determinar su publicador, oferta y SKU. Para restringir la lista de opciones disponibles, enumere los publicadores que no son de Microsoft para la región que identificó anteriormente ejecutando el siguiente comando:

az vm image list-publishers --location eastus --query [].name --output tsv | grep -v "Microsoft" | more

Nota

La lista es bastante extensa, por lo que debe asegurarse de limitar la salida al búfer de sesión disponible.

Supongamos que eligió Canonical. A continuación, identifique las ofertas disponibles en ese publicador mediante la ejecución del siguiente comando:

az vm image list-offers --location eastus --publisher Canonical --query [].name --output tsv

Supongamos que eligió 0001-com-ubuntu-server-jammy. A continuación, ejecute el siguiente comando para identificar las SKU disponibles con esa oferta mediante la ejecución del siguiente comando:

az vm image list-skus --location eastus --publisher Canonical --offer 0001-com-ubuntu-server-focal --query [].name --output tsv

Nota

Canonical ha cambiado recientemente los nombres de la oferta. Antes de Ubuntu 20.04, el nombre de la oferta era UbuntuServer. Para Ubuntu 20.04 el nombre de la oferta es 0001-com-ubuntu-server-focal, y para Ubuntu 22.04 es 0001-com-ubuntu-server-jammy.

Para implementar una máquina virtual de Azure mediante una imagen específica, debe determinar el valor de su propiedad Urn. Este valor consta del editor, la oferta, la SKU y, opcionalmente, un número de versión que identifica la imagen de forma exclusiva. También puede establecer el número de versión en más reciente, que designa la versión más reciente de la distribución. Para mostrar el valor de la propiedad Urn para todas las imágenes 22_04-lts de Ubuntu en la región Este de EE. UU., ejecute el siguiente comando:

az vm image list --location eastus --publisher Canonical --offer 0001-com-ubuntu-server-jammy --sku 22_04-lts --all --output table

Nota:

Puede usar la propiedad UrnAlias para un enfoque más sencillo, aunque mucho menos flexible, para designar una imagen que se usará durante la implementación. Esta propiedad está disponible para las imágenes más comunes y puede recuperar sus valores mediante la ejecución del comando az vm image list --output table de la CLI de Azure. Por ejemplo, el UrnAlias Ubuntu2204 corresponde a la imagen Canonical:0001-com-ubuntu-server-jammy:22_04-lts-gen2:latest.

Identificación del tamaño de máquina virtual adecuado

Además de la disponibilidad de imágenes, también debe asegurarse de que el tamaño de máquina virtual que va a usar esté disponible en la región de Azure que hospedará la implementación. Para ello, ejecute el comando siguiente:

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

Identifique el tamaño de máquina virtual adecuado para la implementación de ejemplo de la lista y anote el valor de la columna Nombre. Tendrá que escribir el nombre en el formato idéntico al ejecutar el comando de la CLI de Azure que inicia el aprovisionamiento de la máquina virtual de Azure. Supongamos que eligió Standard_F4s.

Importante

Antes de continuar, compruebe que este tamaño de máquina virtual está disponible en la región de Azure que tiene como destino y, si es necesario, ajuste los valores de los parámetros en los comandos posteriores según corresponda.

Crear un grupo de recursos

Después de identificar la imagen y el tamaño de la máquina virtual de Azure, ahora puede comenzar el proceso de aprovisionamiento. Empiece por crear un grupo de recursos para hospedar la máquina virtual de Azure y sus recursos dependientes. Para crear un grupo de recursos, use el comando az group create. Este comando requiere que especifique el valor de los parámetros name y location, que designan el nombre del grupo de recursos y la región de Azure de destino, respectivamente.

az group create --name rg_lnx-cli --location eastus

La salida del comando debe ser similar al ejemplo siguiente:

{
  "id": "/subscriptions/fd7edadd-187f-41dd-a5df-f80bad63c167/resourceGroups/sample-RG",
  "location": "eastus",
  "managedBy": null,
  "name": "rg_lnx-cli",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null,
  "type": "Microsoft.Resources/resourceGroups"
}

Creación de una máquina virtual de Azure

Para crear una máquina virtual, use el comando az vm create. Este comando admite una amplia gama de parámetros, incluida la imagen del sistema operativo, el tamaño del disco y las credenciales administrativas. En el ejemplo siguiente, el comando az vm create desencadena la implementación de una máquina virtual de Azure denominada sample-cli-vm0, que hospeda la versión más reciente de la SKU de Ubuntu 22_04-lts-gen2. El proceso de aprovisionamiento configura una cuenta de usuario administrativa denominada azureuser con autenticación basada en un par de claves SSH. La clave privada y pública se generan y almacenan localmente en su ubicación predeterminada (~/.ssh) para permitir el acceso de SSH a la máquina virtual de Azure. Use el ejemplo de código siguiente para crear una máquina virtual de Azure:

az vm create \
    --resource-group rg_lnx-cli \
    --name lnx-cli-vm \
    --image Canonical:0001-com-ubuntu-server-jammy:22_04-lts-gen2:latest \
    --size Standard_F4s \
    --admin-username azureuser \
    --generate-ssh-keys

Nota

El --size es opcional. Si decide excluirlo, el tamaño resultante dependerá de la imagen elegida.

La máquina virtual de Azure comenzará a ejecutarse poco después, normalmente en un par de minutos. La salida del comando de la CLI de Azure incluirá información con formato JSON sobre la máquina virtual de Azure recién implementada:

{
  "fqdns": "",
  "id": "/subscriptions/fd7edadd-187f-0000-0000-000000000000/resourceGroups/rg_lnx-cli/providers/Microsoft.Compute/virtualMachines/lnx-cli-vm",
  "location": "eastus",
  "macAddress": "00-0D-3A-8C-C6-AE",
  "powerState": "VM running",
  "privateIpAddress": "10.0.0.4",
  "publicIpAddress": "20.51.149.212",
  "resourceGroup": "rg_lnx-cli",
  "zones": ""
}

En este momento, podrá conectarse a la máquina virtual de Azure ejecutando el siguiente comando (después de reemplazar el marcador de posición <public_ip_address> por la dirección IP que identificó en la salida generada por la CLI de Azure) desde el equipo donde se almacena la clave privada:

ssh azureuser@<public_ip_address>