Desplegar infraestructura en la nube puede sonar complejo, pero con terraform apply el proceso se vuelve guiado y predecible. Aquí verás cómo ejecutar este comando paso a paso para crear grupos de recursos en Azure usando un archivo de plan previamente generado, ideal si estás aprendiendo Infrastructure as Code.
¿Qué hace terraform apply en un flujo de despliegue?
Terraform tiene una virtud poderosa: te va llevando de la mano. Cuando ejecutas un comando, la herramienta misma te sugiere cuál sigue.
El flujo básico es claro y siempre respeta el mismo orden:
- terraform init: inicializa el repositorio de Terraform. Solo se ejecuta una vez por proyecto.
- terraform plan: estima qué cambios o actualizaciones necesita tu proyecto.
- terraform apply: aplica todos los cambios ya planeados y despliega los recursos.
Lo interesante es que cuando termina terraform plan, la propia terminal te dice: para ejecutar exactamente estas acciones, ejecuta terraform apply. No tienes que adivinar nada.
¿Qué es terraform apply? Es el comando que ejecuta los cambios planeados y despliega los recursos definidos en tu código hacia el proveedor de nube, en este caso Azure.
¿Cómo ejecutar terraform apply con un archivo plan.out?
Aquí entra en juego algo que parecía un detalle menor: el archivo plan.out que generaste durante terraform plan. Ese archivo guarda exactamente las acciones que Terraform va a realizar, y terraform apply lo toma como entrada.
El comando se escribe así, copiándolo desde la sugerencia que la propia terminal te da [01:00]:
bash
terraform apply "plan.out"
Al presionar enter, aparece una leyenda que indica que el grupo de recursos se está creando. Y aquí viene lo interesante: esa leyenda se actualiza cada 10 segundos, dándote retroalimentación constante de que todo avanza como esperas.
En el ejemplo de la clase, la creación se completó en 14 segundos y mostró el mensaje clave: apply complete, recursos uno agregado, cero cambiados y cero destruidos [01:30].
¿Cómo crear un segundo grupo de recursos sin romper el código?
La práctica habitual es duplicar el bloque de recurso con copiar y pegar, y cambiar el nombre. Pero ahí surge un detalle de sintaxis importante.
Si dejas el mismo identificador del bloque, Terraform te marca un error porque RG ya fue declarado. Los bloques funcionan como el nombre interno de cada recurso, así que tienes que diferenciarlos:
- El primer bloque queda como
RG1.
- El segundo bloque pasa a ser
RG2.
- El nombre visible del recurso cambia a Mi segundo grupo Platzi.
Una ventaja enorme de Terraform es que los errores aparecen acotados por líneas, lo que hace muy rápido encontrarlos y corregirlos en VS Code [02:20].
Después de ajustar, vuelves a ejecutar terraform plan con el parámetro -out, y luego terraform apply "plan.out". El segundo grupo se despliega siguiendo el mismo patrón.
¿Por qué es importante el archivo plan.out? Porque guarda el plan exacto que Terraform validó. Al pasarlo a terraform apply, garantizas que se ejecuten esas acciones específicas y no otras que pudieran haber cambiado.
¿Cómo verificar que los recursos se desplegaron en Azure?
Una vez que terraform apply termina, los recursos ya están vivos en tu suscripción. Para confirmarlo vas al portal de Azure, entras a Home, luego a Grupos de recursos, y aplicas refresh sobre la lista.
En el ejemplo aparecen ambos recursos creados:
- Mi primer grupo Platzi, ubicado en México Central.
- Mi segundo grupo Platzi, también en la misma región.
Esa ubicación es la que definiste en tu archivo .tf, y Terraform la respeta al pie de la letra. La velocidad de despliegue depende de tu conexión y de los procesos en curso, pero en general los grupos de recursos son de los recursos más rápidos de crear.
El consejo práctico es repetir este flujo varias veces: crea, ajusta y vuelve a desplegar grupos de recursos para ganar fluidez con la sintaxis HCL y con los comandos plan y apply. Mientras más lo practiques, más natural se vuelve.
¿Ya intentaste desplegar tu primer recurso con Terraform en Azure? Cuéntame en los comentarios qué nombre le pusiste a tu grupo y si te apareció algún error en la sintaxis.