Ejercicio: crear un recurso de Azure de forma interactiva con la CLI de Azure

Completado

En el escenario original, debe crear máquinas virtuales (VM) para probar el software de Administración de relaciones con el cliente (CRM). Cuando haya disponible una nueva compilación, querrá poner en marcha una nueva máquina virtual para probar toda la experiencia de instalación a partir de una imagen limpia. Una vez completada la prueba, puede eliminar la máquina virtual.

Vamos a probar los comandos para crear una máquina virtual.

Nota:

Este ejercicio es opcional. Si desea completar este ejercicio, deberá crear una suscripción de Azure antes de comenzar. Si no tiene una cuenta de Azure o no quiere crear una en este momento, puede leer las instrucciones para que comprenda la información que se presenta.

Nota:

Debe usar un grupo de recursos para completar los pasos de este ejercicio. Puede usar un grupo de recursos que ya ha creado o puede crear un nuevo grupo de recursos específicamente para este ejercicio. Si decide crear un nuevo grupo de recursos, esto facilitará la limpieza de los recursos que cree a medida que complete el ejercicio. Si no tiene un grupo de recursos existente o desea crear uno nuevo específicamente para este ejercicio, puede seguir los pasos descritos en Uso de Azure Portal y Azure Resource Manager para administrar grupos de recursos para crear un grupo de recursos mediante Azure Portal, o puede seguir los pasos descritos en Administración de grupos de recursos de Azure mediante la CLI de Azure para crear un grupo de recursos mediante la CLI de Azure.

Ejercicio: crear una máquina virtual Linux con la CLI de Azure

Aquí se muestra cómo crear una máquina virtual de Azure con la CLI de Azure:

  1. Abra Azure Cloud Shell a través de Azure Portal o mediante el botón Abrir Cloud Shell situado en la esquina superior derecha de muchos bloques de código de la CLI de Azure.

  2. Use el comando az vm create para crear la máquina virtual.

    • Especifique el nombre del grupo de recursos. Reemplace myResourceGroupName en el ejemplo siguiente por el nombre de un grupo de recursos existente o el nombre del grupo de recursos que creó para este ejercicio.
    • Asigne un nombre a la máquina virtual siguiendo los estándares de nomenclatura de la organización.
    • Elija una ubicación cercana a usted en la lista de ubicaciones de Azure disponibles.
    • Use la imagen de Linux: Ubuntu2204.
    • Asigne un nombre de usuario de administrador siguiendo los estándares de nomenclatura de su organización.
    #!/bin/bash
    
    # Create variables with values of your choice.
    rgName="myResourceGroupName"
    vmName="msdocs-vm-01"
    vmLocation="westus"
    vmImage="Ubuntu2204"
    vmAdminUserName="myAzureUserName"
    
    # Create the VM
    az vm create \
      --resource-group $rgName \
      --name $vmName \
      --location $vmLocation \
      --image $vmImage \
      --public-ip-sku Standard \
      --admin-username $vmAdminUserName \
      --generate-ssh-keys
    

    Sugerencia

    ¿Acaba de utilizar el botón Copiar y notó que se eliminaron todos los caracteres de continuación de línea? Este comportamiento es así por diseño. Dado que la CLI de Azure se puede ejecutar en muchos entornos con diferentes caracteres de continuación de línea, el botón Copiar los elimina. Si prefiere copiar un script con formato, use el mouse para seleccionar y copiar el contenido del bloque de código.

    Para pegar en Azure Cloud Shell, haga clic con el botón derecho en una nueva línea en la terminal de Cloud Shell y seleccione Pegar, o use el atajo de teclado Mayús+Insertar (⌘+V en macOS).

    Si el script no se ha copiado correctamente y el terminal Cloud Shell está esperando más entradas, utilice CTRL + Z para volver al indicador e inténtelo de nuevo.

  3. Espere a la creación de la máquina virtual Linux:

    El proceso de creación de la máquina virtual tarda unos minutos en finalizar.

  4. Obtenga información sobre la VM

    Cuando haya finalizado, la CLI de Azure devuelve información sobre la máquina virtual en formato JSON. Use los comandos az vm list y az vm show para obtener información específica sobre la máquina virtual. Estos son algunos ejemplos:

    Varios de estos scripts usan nombres y valores de variable almacenados en pasos anteriores.

    Obtenga una lista de todas las máquinas virtuales en formato de tabla.

    az vm list --output table
    

    Obtenga información sobre una sola máquina virtual en formato JSON.

    Parte de esta salida se muestra después de crear una nueva máquina virtual. Sin embargo, resulta útil devolver más información al averiguar los nombres de propiedad anidados a los que hacer referencia en un script. Los nombres de las propiedades distinguen entre mayúsculas y minúsculas.

    az vm show --resource-group $rgName --name $vmName
    

    Obtenga información sobre las propiedades de la máquina virtual.

    # Get the time the VM was created
    az vm show --resource-group $rgName --name $vmName --query "timeCreated"
    
    # Get the OS disk storage account type
    az vm show --resource-group $rgName --name $vmName --query "storageProfile.osDisk.managedDisk.storageAccountType"
    

    Almacene una propiedad de una máquina virtual en una variable.

    La CLI de Azure tiene varios tipos de salida disponibles. JSON es el valor predeterminado, pero al almacenar valores en variables, quite el formato adicional con --output tsv.

    #!/bin/bash
    # Store the VM id
    vmID=$(az vm show --resource-group $rgName --name $vmName --query id --output tsv)
    echo $vmID
    
    # Store the public IP address
    publicIP=$(az vm list-ip-addresses \
        --resource-group $rgName \
        --name $vmName \
        --query "[].virtualMachine.network.publicIpAddresses[0].ipAddress" --output tsv)
    echo $publicIP
    
  5. Conexión a la VM.

    #!/bin/bash
    az ssh vm --private-key-file \path\to\private\key \
        --resource-group $rgName \
        --name $vmName \
        --local-user $vmAdminUserName
    

    Para cerrar sesión, escriba salir.

Obtenga más información sobre las opciones de máquina virtual

Al trabajar con recursos de Azure desde la línea de comandos, no se utiliza Azure Portal, que a menudo ofrece una lista desplegable de opciones de propiedades. Por ejemplo, una lista de ubicaciones disponibles y tamaños de máquina virtual. La CLI de Azure tiene varios comandos en muchos de sus grupos de comandos que proporcionan esta información. Estos son algunos ejemplos de máquinas virtuales:

Sugerencia

El formato --output table de la CLI de Azure no devuelve el 100 % de la información disponible, pero a menudo facilita la lectura de los resultados de comandos de gran tamaño. Use el parámetro --query para especificar la información en la que está más interesado.

  1. Obtenga los tamaños de máquina virtual disponibles para una ubicación:

    az vm list-sizes --location westus --output table
    
  2. Obtenga las SKU disponibles para una ubicación:

    En función de qué --location seleccione, la CLI de Azure puede tardar un minuto o dos en devolver una lista completa de SKU.

    # virtual machines
    az vm list-skus --location westus --resource-type virtualMachines --output table
    
    # disks
    az vm list-skus --location westus --resource-type disks --output table
    
  3. Obtenga las opciones de cambio de tamaño disponibles para una máquina virtual existente:

    az vm list-vm-resize-options --resource-group $rgName --name $vmName --output table
    
  4. Mostrar detalles de todas las máquinas virtuales de un grupo de recursos.

    Si ha elegido trabajar en el entorno local y tiene varias máquinas virtuales en la suscripción, consulte las máquinas virtuales que cumplan los criterios de filtro.

    #!/bin/bash
    # details of all VMs in a specified resource group
    az vm show --show-details --ids $(az vm list --resource-group $rgName --query "[].id" -o tsv)
    
    # list of all VMs created in the last 7 days
    createDate=$(date +%F -d "-7days")
    az vm list --resource-group $rgName \
            --query "[?timeCreated >='$createDate'].{Name:name, admin:osProfile.adminUsername, DiskSize:storageProfile.osDisk.diskSizeGb}" \
            --output table
    
    # list all VMs whose disks are of a certain type
    # first get a list of the disk types or organization is using
    az vm list --resource-group $rgName --query "[].{Name:name, osDiskSize:storageProfile.osDisk.diskSizeGb, managedDiskTypes:storageProfile.osDisk.managedDisk.storageAccountType}" --output table
    
    diskType="Premium_LRS"
    az vm list --resource-group $rgName \
            --query "[?storageProfile.osDisk.managedDisk.storageAccountType =='$diskType'].{Name:name, admin:osProfile.adminUsername, osDiskSize:storageProfile.osDisk.diskSizeGb, CreatedOn:timeCreated, vmID:id}" \
            --output table
    

Detener o eliminar una máquina virtual

  1. Apague la máquina virtual:

    Puede apagar (detener) una máquina virtual en ejecución, aunque la máquina virtual sigue facturando.

    az vm stop --resource-group $rgName --name $vmName
    

    Escriba Y y presione Entrar cuando se le pida que continúe.

  2. Desasignar una máquina virtual:

    Para evitar la facturación de una máquina virtual detenida, puede desasignarlo. Desasignar máquinas virtuales contiene recursos que ya no están asignados (ya no se aplican cargos). El estado de la máquina virtual cambia de "Detenido" a "Detenido (desasignado)".

    az vm deallocate --resource-group $rgName --name $vmName
    
  3. Eliminar una máquina virtual:

    Una vez que se detenga la máquina virtual, elimínela ejecutando el comando az vm delete.

    az vm delete --resource-group $rgName --name $vmName
    

    Escriba Y y presione Entrar cuando se le pida que continúe.

Aunque ejecutó estos comandos de forma interactiva, un enfoque mejor es escribir un script de la CLI de Azure. Los scripts permiten reutilizar la lógica para crear o eliminar una máquina virtual en el futuro.

En la unidad siguiente, vamos a automatizar estas tareas mediante un script de la CLI de Azure.