Terraform Associate Cheat Sheet
HashiCorp Certified: Terraform Associate — Referencia rápida para el examen
Comandos CLI
42terraform initTOPInicializa el directorio: descarga providers y módulos
terraform init -upgradeActualiza providers al último que cumpla constraints
terraform init -backend=falseSolo descarga módulos, sin configurar backend
terraform init -reconfigureFuerza reconfiguración de backend
terraform init -migrate-stateTOPMigra state al nuevo backend configurado
Comparativas
5| Comando | Desde versión | Estado | Cuándo usarlo |
|---|---|---|---|
| terraform taint resource.addr | ≤v0.15.2 | Deprecado | No usar en código nuevo |
| terraform apply -replace=resource.addr | v0.15.2+ | Recomendado | Forzar recreación de recurso específico |
Referencia Rápida
36Conceptos IaC
Terraform es declarativo: describes el estado deseado, no los pasos
Aplicar el mismo config múltiples veces = mismo resultado
Plugin que traduce HCL a llamadas API del proveedor cloud
Unidad de infraestructura gestionada (aws_instance, azurerm_vm...)
Lee datos de infraestructura existente sin crearla
Conjunto reutilizable de recursos (carpeta con .tf files)
Valor exportado del state, accesible por módulos padre o usuario
Parámetro de entrada que permite reutilizar configuraciones
Ciclo de vida del state
terraform.tfstate — mapea recursos HCL ↔ recursos reales
Nunca editar manualmente el state; usar terraform state commands
Habilita colaboración en equipo y locking
Previene corruption cuando múltiples usuarios aplican simultáneamente
terraform.tfstate.backup: copia automática del estado anterior
Oculta valor en logs pero SÍ persiste en state
(v1.10+): valor NUNCA persiste en state ni en plan
Providers y Registry
registry.terraform.io — fuente pública de providers y módulos
Declara qué providers necesita el proyecto con version constraints
~> 5.0 acepta 5.x pero no 6.0
Fija versiones exactas de providers, debe estar en git
Actualiza providers respetando constraints
Módulos
Directorio donde se ejecuta terraform
Referenciado con bloque module {} desde el raíz o otro módulo
Local path, Terraform Registry, GitHub, S3, GCS
Descarga módulos sin inicializar providers
Permiten crear múltiples instancias de un recurso/módulo
HCP Terraform (antes Terraform Cloud)
Remote backend oficial de HashiCorp para state management y ejecución
Entornos aislados con su propio state
Framework de policy-as-code integrado con HCP Terraform
Los plans/applies corren en la nube de HCP
Registro privado de módulos dentro de la organización
Exam tips
DEPRECADO desde v0.15.2 → usar -replace
DEPRECADO desde v1.6 → usar plan -refresh-only
Opinionated: siempre produce el mismo resultado
Los archivos .tfvars no se cargan en módulos hijos, solo en el raíz
for_each requiere set o map; count requiere número
Crea dependencia explícita; Terraform resuelve dependencias implícitas automáticamente