Crear una máquina virtual en Azure con Terraform parece complejo al inicio, pero con la documentación oficial y un inventario claro de recursos, el despliegue se vuelve un proceso ordenado. Aquí descubres cómo armar el script desde cero, qué componentes de red necesitas y cómo conectarte por escritorio remoto al final. Ideal si ya manejas grupos de recursos y quieres dar el siguiente paso en infraestructura como código.
¿Qué necesitas antes de escribir el script de Terraform?
La documentación oficial de Microsoft es tu mejor aliada. Busca en cualquier navegador máquina virtual Windows Terraform y el primer resultado te da la guía completa, disponible en español o inglés según prefieras [00:18].
Dentro de VS Code, crea una carpeta llamada máquinas virtuales en tu repositorio del curso y agrega el archivo main.tf. Para no reescribir desde cero, copia el bloque del provider de un ejercicio anterior y elimina la parte de Azure CAF, que no necesitas en este caso.
¿Qué es un provider en Terraform? Es el bloque que le dice a Terraform con qué nube o servicio vas a trabajar. En este caso, indica que usarás Azure como destino del despliegue.
¿Qué componentes forman una máquina virtual en Azure?
Antes de escribir código, conviene listar el inventario completo. Una sola máquina virtual requiere ocho recursos coordinados entre sí.
- Grupo de recursos.
- Red virtual.
- Subred.
- IP pública.
- Grupo de seguridad de red.
- Interfaz de red.
- Asociación entre interfaz y grupo de seguridad.
- La máquina virtual en sí.
Este inventario lo escribes como comentario al inicio de tu main.tf y vas borrando cada línea conforme creas el bloque correspondiente. Es una forma simple de mantener el control [02:30].
¿Cómo defines el grupo de recursos y las variables?
El grupo de recursos hereda dos variables: ubicación y nombre. Eso significa crear un archivo variables.tf con bloques de tipo string para cada una. Si tienes la extensión de Terraform en VS Code, el snippet variable te ahorra tiempo.
Después de declarar las variables, regresas a main.tf y escribes el bloque del grupo de recursos. Con eso ya tienes la base para todo lo demás.
¿Cómo configurar la red virtual y la subred?
Usa los recursos azurerm_virtual_network y azurerm_subnet. La red virtual hereda del grupo de recursos, y la subred hereda a su vez de la red virtual. Mantén un prefijo personal en los nombres, como amin- o el que prefieras, para identificar tus recursos rápido.
¿Cómo configuras la seguridad y la conectividad de red?
Aquí entra la parte que muchos pasan por alto. Sin una IP pública, un grupo de seguridad y una interfaz de red bien conectados, tu máquina virtual existirá pero no podrás acceder a ella.
La IP pública se crea con azurerm_public_ip heredando ubicación y grupo de recursos. El grupo de seguridad de red, definido con azurerm_network_security_group, es donde abres el protocolo RDP en el puerto 3389 para permitir el acceso por escritorio remoto [04:35].
¿Para qué sirve el puerto 3389? Es el puerto estándar del protocolo RDP de Windows. Abrirlo en el grupo de seguridad permite conectarte por escritorio remoto a la máquina virtual desde tu computadora.
La interfaz de red, creada con azurerm_network_interface, funciona como la tarjeta de red de cualquier computadora. Conecta la subred con la IP pública y le da identidad de red a la VM. Finalmente, el recurso azurerm_network_interface_security_group_association une la interfaz con el grupo de seguridad. Sin esa asociación, las reglas de seguridad no aplican a tu máquina.
¿Cómo declaras la máquina virtual Windows?
El bloque azurerm_windows_virtual_machine necesita dos variables nuevas: vm_username y vm_password. Las agregas en variables.tf siguiendo el mismo patrón de tipo string.
La imagen elegida es Windows Server 2022, una de las ediciones más recientes disponibles en Azure. La ubicación, el grupo de recursos y la interfaz de red se heredan de los bloques previos.
¿Cómo aplicas el script y verificas el despliegue?
Crea el archivo terraform.tfvars con los valores reales: eastus2 para la ubicación, un nombre como maquinas-virtuales-group para el grupo, tu nombre de usuario y un password robusto que combine mayúsculas, números y símbolos.
Desde la terminal, sitúate en la carpeta correcta y ejecuta los comandos en orden:
terraform init para inicializar el proyecto.
terraform plan -out plan.out para revisar los ocho recursos que se van a crear.
terraform apply para desplegar todo en Azure.
El despliegue completo ocurre en pocos minutos. Una vez terminado, entras al portal de Azure, buscas el grupo de recursos maquinas-virtuales-group y seleccionas el icono de la máquina virtual [09:25].
¿Cómo te conectas por escritorio remoto a la VM?
Dentro de la máquina virtual, ve a la opción Conectar en la columna izquierda. Antes de descargar el archivo RDP, Azure verifica si tu IP tiene acceso. Cuando aparece la leyenda accesible, descargas el archivo, lo abres con doble clic e ingresas las credenciales de tu terraform.tfvars.
En segundos, el escritorio de Windows Server 2022 aparece en tu pantalla, totalmente desplegado desde código. ¿Te animas a probarlo con otra región o con una imagen Linux? Cuéntame en los comentarios qué configuración usaste tú.