Ejercicio: crear un recurso de Azure de forma interactiva con la CLI de Azure
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.
Ejercicio: crear una máquina virtual Linux con la CLI de Azure
Dado que usa el espacio aislado de Azure, no es necesario crear un grupo de recursos. En su lugar, use el grupo de recursos de espacio aislado existente
Aquí se muestra cómo crear una máquina virtual de Azure con la CLI de Azure:
Use el comando
az vm create
para crear la máquina virtual.Use el comando
az group list
para obtener el nombre del grupo de recursos del espacio aislado.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 espacio aislado de Azure disponibles:
- westus2
- southcentralus
- centralus
- eastus
- westeurope
- southeastasia
- japaneast
- brazilsouth
- australiasoutheast
- centralindia
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 # Get the single resource group name created by the sandbox. rgName=$(az group list --query "[].{Name:name}" --output tsv) echo $rgName # Create additional variables with values of your choice. 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 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 del espacio aislado está esperando la entrada de adición, use CTRL + Z para volver a un símbolo del sistema e inténtelo de nuevo.
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.
Obtención de información acerca de la máquina virtual
Cuando haya finalizado, la CLI de Azure devuelve información sobre la máquina virtual en formato JSON. Use los comandos
az vm list
yaz 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 propiedad 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
Conéctese a la máquina virtual.**
#!/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 en la línea de comandos, no se usa Azure Portal, lo que proporciona a menudo una lista 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.
Obtenga los tamaños de máquina virtual disponibles para una ubicación:
az vm list-sizes --location westus --output table
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
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
Mostrar los 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
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.
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
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.