Volver al curso: Azure Professional Training 2024: Fundamentos
En el ejercicio anterior creamos una máquina virtual Windows desde el Portal de Azure. Ahora, vamos a descubrir cómo realizar la creación de una máquina virtual Linux, pero desde línea de comandos. Esto te permitirá conocer cómo es una sintaxis de ejemplo que acelera la creación de una Azure VM, muy útil para automatizaciones. Estos métodos se suelen asociar con “Infraestructura como Código” o IaC en el mundo informático, y es cada vez más utilizado.
Para ello, trabajaremos sobre este ejercicio de Microsoft Learn que nos habilitará durante 60 minutos un espacio aislado. Es el mismo espacio aislado que utilizamos en el ejercicio de creación de máquina virtual con Windows, por lo cual deberás solicitar un segundo espacio (suponemos que los 60 minutos iniciales ya los consumiste).
IMPORTANTE: este ejercicio está pensado para ejecutarse en un tiempo menor a 60 minutos. Intenta aprovechar al máximo todo lo que hagas y no generes pausas, porque de otra manera no lograrás completarlo a tiempo.
Activación del espacio aislado
Ingresa a este ejercicio de Microsoft Learn. Recuerda abrir el link del espacio aislado en un navegador con tu cuenta Microsoft sobre la cual deseas trabajar.
Una vez que lo hagas, deberás activar el espacio aislado:

Una vez activado el espacio aislado, contarás con 60 minutos para trabajar en este ejercicio:

¡Excelente! Ya tienes tu espacio aislado de Microsoft Learn con una suscripción temporal. Ahora vamos a avanzar en el ejercicio para crear nuestra máquina virtual con sistema operativo Linux utilizando Azure CLI.
Ingreso a Cloud Shell
Deberás ingresar al Portal de Azure ingresando a la siguiente URL desde una solapa en el mismo navegador y cuenta sobre la que generaste el espacio aislado:
https://portal.azure.com/learn.docs.microsoft.com
Te dirigirás a “Grupo de recursos“:

Ingresarás al grupo de recurso que se generó en tu espacio aislado de Microsoft Learn . Recuerda que no puedes crear otro grupo de recursos, y este es el único en el que podemos trabajar:

Notarás que dentro del Grupo de Recursos no tenemos ninguna máquina virtual creada, sólo un Storage Account:

A diferencia del ejercicio anterior, que utilizamos el Portal de Azure para crear la máquina virtual, esta vez lo haremos a través de línea de comandos. El ejercicio original de Microsoft Learn te propone utilizar Azure Cloud Shell pero en la pantalla dividida. Otra manera de acceder a la misma línea de comandos es ingresar al Portal de Azure sólo para que desde allí lances el mismo Cloud Shell, y puedas ver el resultado en el Portal.
Desde el Portal de Azure, harás clic en el ícono de “Cloud Shell” en la parte superior:

Ahora la pantalla se dividirá y mostrará en la parte superior la interfaz gráfica del Portal de Azure, y en la inferior el Cloud Shell para escribir comandos:

Durante la ejecución del ejercicio, podrás pegar los comandos en la pantalla de Microsoft Learn o en esta pantalla de Cloud Shell, es lo mismo. Lo importante es que luego valides en el Portal de Azure gráfico que la Vm está creada.
¡Muy buen trabajo! Ahora debemos avanzar en la creación de la máquina virtual.
Creación de Linux VM desde CLI de Azure
Te brindaremos comandos de la CLI de Azure para crear una máquina virtual Linux e instalar Nginx. Esto significa que:
- Una vez creada la máquina virtual, usará la extensión de script personalizado para instalar Nginx.
- La extensión de script personalizado es una manera fácil de descargar y ejecutar scripts en máquinas virtuales de Azure.
- Esta es solo es una de las numerosas formas de configurar el sistema después de que la máquina virtual esté en funcionamiento.
Desde Cloud Shell, ejecuta el siguiente comando az vm create
para crear una máquina virtual Linux. Ten en cuenta que:
- Podrás copiar el comando desde el ejercicio de Microsoft Lear. En dicho caso, no debes hacer modificaciones en el contenido del script porque ya contiene el grupo de recursos correcto.
- También podrás copiar cada comando del script desde el texto que te proporcionamos aquí abajo. No obstante, en dicho caso deberás reemplazar el nombre del grupo de recursos por el correcto.
Creación de máquina virtual con AZ VM CREATE
Copia y pega el siguiente comando, reemplazando “GRUPO-RE-RECURSOS” por el nombre correcto en tu suscripción temporal:
az vm create --resource-group "GRUPO-RE-RECURSOS" --name my-vm --public-ip-sku Standard --image Ubuntu2204 --admin-username azureuser --generate-ssh-keys

La máquina virtual tardará unos minutos en aparecer. De manera predeterminada, el script tiene asignado el nombre my-vm para la máquina virtual. Una vez finalizado, si actualizas el Grupo de Recursos en el Portal de Azure notarás que tienes la máquina virtual disponible:

Incluso si quieres, puedes ingresar para ver su configuración:

Encontrarás un menú de opciones casi idéntico al que exploramos en la lección anterior:

Instalación de NGINX con AZ VM EXTENSION SET
Ejecuta el siguiente comando az vm extension set
para configurar Nginx en la máquina virtual, reemplazando “GRUPO-RE-RECURSOS” por el nombre de tu grupo de recursos en la suscripción temporal:
az vm extension set --resource-group "GRUPO-RE-RECURSOS" --vm-name my-vm --name customScript --publisher Microsoft.Azure.Extensions --version 2.1 --settings '{"fileUris":["https://raw.githubusercontent.com/MicrosoftDocs/mslearn-welcome-to-azure/master/configure-nginx.sh"]}' --protected-settings '{"commandToExecute": "./configure-nginx.sh"}'

La máquina virtual tardará unos minutos en aparecer. Ha asignado el nombre my-vm a la máquina virtual. Esta es la salida que genera el comando:

Nota que en la salida del comando, tendrás la información de la IP pública asignada a nuestra máquina virtual Linux:

Anota esta IP pública e ingrésala en tu navegador web local para ver que sucede.
Desde el Portal de Azure podrás comprobar que tenemos la máquina virtual creada:

Inclusive si ingresamos, podrás encontrarte con unas opciones casi idénticas a las que exploramos en la lección anterior para la máquina virtual Windows:

Instalación de NGINX con AZ VM EXTENSION SET
Ejecuta el siguiente comando az vm extension set
para configurar Nginx en la máquina virtual. Recuerda reemplazar “GRUPO-DE-RECURSOS” por el nombre real asignado en tu suscripción temporal:
az vm extension set --resource-group "learn-399fd07a-8fd9-4b11-9e7e-f1a18e46311a" --vm-name my-vm --name customScript --publisher Microsoft.Azure.Extensions --version 2.1 --settings '{"fileUris":["https://raw.githubusercontent.com/MicrosoftDocs/mslearn-welcome-to-azure/master/configure-nginx.sh"]}' --protected-settings '{"commandToExecute": "./configure-nginx.sh"}'

Este comando usa la extensión de script personalizado para ejecutar un script de Bash en la máquina virtual. El script se almacena en GitHub. Mientras se ejecuta el comando, puede optar por examinar el script de Bash en una pestaña independiente del explorador. Para resumir, el script:
- Ejecuta
apt-get update
para descargar la información más reciente del paquete desde Internet. Este paso ayuda a garantizar que el siguiente comando pueda encontrar la versión más reciente del paquete Nginx. - Instala Nginx.
- Establece la página principal, /var/www/html/index.html, para que imprima un mensaje de bienvenida en el que se incluye el nombre de host de la máquina virtual.
Una vez que finalice de ejecutarse el comando de configuración, tendremos NGINX configurado. Intenta acceder por tu navegador web local (en tu computadora local) a la dirección IP pública que antes anotaste. Seguramente pasará esto:

¿Por qué? Porque si bien hay un NGINX (que es un web server) instalado, no hemos dado acceso al puerto correspondiente HTTP para acceder desde internet. ¡Vamos a aprender cómo hacer que nuestra página web en nuestra Azure VM sea visible!
Habilitación de puerto para ingreso por HTTP
Dentro del Grupo de Recursos en el Portal de Azure, buscarás e ngresarás al recurso “Grupo de seguridad de red” que probablemente se llame “my-vmNSG“:

Allí te encontrarás con opciones propias de este tipo de recurso. Buscarás la opción “Reglas de seguridad de entrada” para visualizar todas las reglas de firewall de entrada de tu VM:

Y harás clic en “Agregar“:

Completarás la regla de seguridad de entrada con la siguiente info:
- Origen: any
- Intervalos de puertos de origen: *
- Servicio: HTTP
- Acción: Permitir
- Prioridad: la que se te asigne
Harás clic en “Agregar“:

En pocos segundos la regla de seguridad estará creada y aparecerá en el listado de reglas:

¡Excelente! Ahora vamos a probar nuestro sitio web.
Identificación de IP Pública + sitio web
En el caso que hayas olvidado la IP Pública que salió como output del comando de creación de la VM, podrás volver a ver este dato en la Información General de la máquina virtual, desde el Portal de Azure:

Recuerda que también lo tienes en la salida del comando ejecutado:

Prueba de acceso Web
Y ahora si: pega la dirección IP pública en tu navegador favorito y probablemente verás algo como esto:

¡Excelente! Has creado tu máquina virtual Linux, has instalado NGINX como web server, y has configurado el puerto 80 (HTTP) para accederlo desde Internet. ¡Ya eres todo un experto en máquinas vrituales!
Próximos pasos
¡Muy buen trabajo! Ya sabes cómo crear máquinas virtuales Windows y Linux utilizando Azure Portal y Cloud Shell. Ahora vamos a explorar, en la próxima lección, otra opción para alojar aplicaciones, y específicamente aplicaciones Web, llamada Azure App Service.
A mi no me mostró la ip:
miguel [ ~ ]$ az vm extension set –resource-group “learn-77316710-ef46-4af5-aff9-c9b41e1768c3” –vm-name my-vm –name customScript –publisher Microsoft.Azure.Extensions –version 2.1 –settings ‘{“fileUris”:[“https://raw.githubusercontent.com/MicrosoftDocs/mslearn-welcome-to-azure/master/configure-nginx.sh”]}’ –protected-settings ‘{“commandToExecute”: “./configure-nginx.sh”}’
{
“autoUpgradeMinorVersion”: true,
“enableAutomaticUpgrade”: null,
“forceUpdateTag”: null,
“id”: “/subscriptions/e6b1a91a-7af1-4025-8a99-f717210b4a91/resourceGroups/learn-77316710-ef46-4af5-aff9-c9b41e1768c3/providers/Microsoft.Compute/virtualMachines/my-vm/extensions/customScript”,
“instanceView”: null,
“location”: “westus”,
“name”: “customScript”,
“protectedSettings”: null,
“protectedSettingsFromKeyVault”: null,
“provisionAfterExtensions”: null,
“provisioningState”: “Succeeded”,
“publisher”: “Microsoft.Azure.Extensions”,
“resourceGroup”: “learn-77316710-ef46-4af5-aff9-c9b41e1768c3”,
“settings”: {
“fileUris”: [
“https://raw.githubusercontent.com/MicrosoftDocs/mslearn-welcome-to-azure/master/configure-nginx.sh”
]
},
“suppressFailures”: null,
“tags”: null,
“type”: “Microsoft.Compute/virtualMachines/extensions”,
“typeHandlerVersion”: “2.1”,
“typePropertiesType”: “customScript”
}
Hola
mahz1046 ! La dirección IP pública surge del primer comando (az vm create) y no del segundo comando (az vm extension set). Saludos!
para ejecutar los comandos sudo…. me pide password, la verdad no se a cual se refiere. Ya que al crear la MV nunca le puse pass.
Hola
marozzir ! No debes ejecutar ningún comando sudo. Todo esto se ejecuta desde el Azure Cloud Shell. ¿Podrás publicar una captura de pantalla del momento del pedido de password comentás? Gracias!