Gestión de Outputs en Terraform para Recursos Desplegados

Clase 15 de 37Curso de Terraform

Resumen

¿Cómo gestionar variables de salida en Terraform?

Las variables de salida, conocidas como outputs, son fundamentales en Terraform. Permiten obtener valores específicos de los recursos desplegados. Estos outputs son esenciales para continuar con otras configuraciones o integraciones en proyectos más grandes. Aquí te mostraremos cómo gestionar variables de salida en Terraform de manera eficiente y práctica.

¿Cómo iniciar un proyecto de outputs en Terraform?

Para empezar, es crucial tener un proyecto organizado. Asegúrate de mover tu proyecto actual a una nueva carpeta. Así, no alterarás el proyecto original y podrás experimentar con tranquilidad. Crear un archivo main.tf en esa carpeta es el primer paso crítico.

mkdir outputs
cd outputs
touch main.tf

A continuación, copia los archivos de tu proyecto base como referencia para mantener la consistencia en tu nuevo documento. Esta es la magia de Terraform: la portabilidad y la reutilización del código.

¿Cómo agregar un bloque de output en Terraform?

Agregar un bloque de output al final del despliegue de tus recursos es clave para obtener valores específicos después de su creación. Aquí tienes un ejemplo de cómo hacerlo:

output "nombre_rg_output" {
  value = azurerm_resource_group.mi_grupo_de_recursos.name
}

Este bloque permitirá saber el nombre del grupo de recursos creado. Además, puedes cambiarlo para obtener diferentes datos, como la ubicación o el ID del recurso.

¿Cómo ejecutar el plan y aplicar los cambios en Terraform?

Antes de desplegar, es recomendable saber qué cambios se aplicarán ejecutando el comando terraform plan. Este comando te mostrará los cambios planeados y los outputs esperados.

terraform init
terraform plan -out=plan.out

El archivo plan.out guarda el estado planeado del despliegue, facilitando la revisión antes de aplicar los cambios con terraform apply.

terraform apply plan.out

Después de ejecutar terraform apply, obtendrás el identificador o valor calculado del recurso en el bloque de outputs. Modificar el output para recibir, por ejemplo, el ID, se realiza de forma simple:

value = azurerm_resource_group.mi_grupo_de_recursos.id

¿Cómo gestionar archivos más limpios y escalables?

Crear un archivo separado para tus outputs, como outputs.tf, ayuda a mantener tu proyecto ordenado y facilitan su escalabilidad. De esta manera, el archivo principal main.tf no se sobrecarga y puedes gestionar los outputs cómodamente.

touch outputs.tf

Dentro de outputs.tf, mueve todos los bloques de output que hayas creado anteriormente. Esto es una buena práctica que optimiza tu código:

output "nombre_rg_output" {
  value = azurerm_resource_group.mi_grupo_de_recursos.id
}

Implementar estas estrategias no solo mejora la organización de tu proyecto, sino que facilita la comprensión y el mantenimiento del código a lo largo del tiempo. Practica creando recursos y observando cómo varían tus valores de salida al modificar tus recursos para sacarle el máximo provecho a Terraform en tus proyectos.