Jorge Alexander Alza Ramírez
Amín, geograficamente te queda más cerca México, no te dejes engañar porque ambos estén en Sudámerica
Trabajar en equipo con Terraform exige un punto de verdad compartido. Si tu estado local difiere del de tus compañeros, la infraestructura empieza a desincronizarse. La solución es configurar un backend remoto que aloje el archivo de estado en una cuenta de almacenamiento de Azure, accesible para todo el equipo.
¿Qué es un estado remoto en Terraform y por qué lo necesitas?
El estado remoto es un archivo centralizado donde Terraform guarda el registro de los recursos creados. Cuando varias personas trabajan sobre la misma infraestructura, este archivo evita conflictos y mantiene una única fuente de verdad.
¿Qué pasa si no uso un estado remoto? Cada miembro del equipo trabajaría con su propio archivo local, lo que provoca discrepancias, recursos duplicados y errores difíciles de rastrear.
¿Cómo preparar la cuenta de almacenamiento en Azure?
Antes de tocar Terraform, necesitas crear manualmente la infraestructura que hospedará el estado. Este paso se hace desde el portal de Azure y no requiere código.
¿Qué recursos crear en el portal de Azure?
El flujo se reduce a tres pasos secuenciales que dejan listo el espacio donde vivirá tu archivo de estado.
estados-terraform en la región Brazil South, o la más cercana a tu ubicación.estadosterraformadmin, en la misma región.states, que funcionará como la carpeta donde se guardará el archivo.Con estos tres elementos listos, ya tienes la base remota. Ahora necesitas extraer los datos que Terraform usará para conectarse.
¿Qué datos necesitas extraer de Azure?
Para configurar el backend, Terraform pide cuatro valores específicos que debes tener a la mano antes de escribir el código.
¿Cómo configurar el archivo backend.tf en Visual Studio Code?
Una vez que tienes los recursos en Azure, te mueves a tu editor. Crea una carpeta nueva llamada estado-remoto y copia dentro el proyecto de proveedores que ya tenías. Ahí agregas un archivo nuevo: backend.tf.
¿Qué es el archivo backend.tf? Es el archivo donde defines dónde se guardará el estado de Terraform. Contiene un bloque
terraformcon la configuración del proveedor remoto, en este caso Azure.
La estructura del archivo se construye con un bloque terraform que contiene un sub-bloque backend apuntando a azurerm. Dentro pasas los valores que extrajiste del portal:
hcl terraform { backend "azurerm" { storage_account_name = "estadosterraformadmin" container_name = "states" key = "estados.tfstate" } }
Un detalle importante: el nombre del archivo no debería ser genérico como terraform.tfstate. Como probablemente vas a guardar varios estados en el mismo contenedor, conviene nombrarlo según el proyecto, por ejemplo estados.tfstate.
¿Por qué excluir el SAS token del archivo?
El SAS token es información sensible. Si lo dejas escrito en backend.tf, ese dato terminará en tu control de versiones y cualquiera con acceso al repositorio podría manipular tu infraestructura.
La práctica correcta es eliminar ese campo del archivo y pasarlo por otra vía, como variables de entorno o parámetros en línea cuando ejecutas el comando. Así proteges la llave y mantienes el repositorio limpio.
¿Qué sigue después de configurar el backend?
Con el archivo backend.tf listo y la cuenta de almacenamiento preparada, el siguiente paso es ejecutar terraform init. Ese comando lee la configuración del backend, se conecta a Azure y migra el estado al contenedor remoto.
A partir de ahí, cualquier persona del equipo que ejecute Terraform sobre el mismo proyecto va a leer y escribir en ese archivo central. Se acabaron las divergencias entre máquinas locales.
¿Ya configuraste un backend remoto en algún proyecto? Cuéntame en los comentarios qué proveedor usaste y cómo manejaste las credenciales sensibles.
🌐 Gestión de Estado Remoto en Terraform con Azure Storage
La lección aborda un tema crucial en proyectos colaborativos con Terraform: cómo manejar el estado remoto para evitar inconsistencias entre miembros del equipo y garantizar la trazabilidad de la infraestructura. A continuación se presenta un desglose claro y práctico de los pasos, conceptos y buenas prácticas explicados.
🚩 El problema del estado local
Cuando varios desarrolladores trabajan sobre la misma infraestructura en Terraform, el estado local genera riesgos:
👉 La solución es mover el estado a un backend remoto, accesible para todo el equipo.
☁️ Configuración del backend remoto en Azure Storage
El backend remoto se almacena en Azure Storage, que actúa como repositorio central del archivo terraform.tfstate.
Pasos iniciales:
rg-estados-terraform en la región Brazil South (elegida por cercanía geográfica desde Colombia).estadosterraform.states.🔑 Valores clave requeridos
Para configurar Terraform con Azure Storage, se necesitan cuatro elementos:
storage_account_name)container_name)key)
estado-remoto.tfstate🛠️ Configuración en Terraform (archivos de backend)
Dentro del proyecto en Visual Studio Code, se crea un archivo de configuración para el backend remoto:
Archivo: backends.conf.tf
terraform con backend "azurerm".storage_account_name = "estadosterraform"container_name = "states"key = "estado-remoto.tfstate"⚠️ El SAS Token debe gestionarse de forma segura (ej. con Azure Key Vault o variables de entorno) para no exponer credenciales en el repositorio.
▶️ Ejecución y validación
Una vez configurado el backend:
terraform init.
📌 Conclusiones y recomendaciones
El uso de un estado remoto en Azure Storage es esencial para proyectos en equipo con Terraform:
tfstate.Buenas prácticas:
dev.tfstate, prod.tfstate).Con esta base sólida, se abre el camino a flujos más avanzados, como integrar la gestión del estado remoto en pipelines de GitHub Actions o Azure DevOps, asegurando despliegues consistentes y repetibles.
Jorge Alexander Alza Ramírez
Amín, geograficamente te queda más cerca México, no te dejes engañar porque ambos estén en Sudámerica
Jean Frannlee Rodriguez Tapiero
Existe algun comando del CLI de Azure que me indique los atributos minimos necesarios para crear un recurso? o esto lo haces con la documentacion en Hashicorp?
Amin Espinoza
ProfesorNo exactamente desde la línea de comandos de Azure pero quizá este enlace pueda ayudarte tanto como la documentación de Terraform. https://learn.microsoft.com/en-us/azure/templates/