Terraform describe el estado deseado en HCL, crea un grafo de dependencias y registra qué recursos pertenecen a la configuración. Este curso práctico enseña el ciclo en una máquina local con contenedores Docker y archivos, sin cuenta de nube de pago.
Inicializarás providers, revisarás planes, aplicarás cambios, parametrizarás un contenedor e inspeccionarás outputs. También borrarás un contenedor fuera de Terraform para observar drift y reconciliación y encapsularás recursos local_file en módulos reutilizables.
Lo que aprenderás
- Instalar Terraform e inicializar un directorio con provider fijado
- Definir imágenes y contenedores Docker y referenciar recursos
- Leer un plan antes de aplicar cambios
- Aplicar una configuración y verificar Nginx y su puerto
- Declarar variables tipadas, sobrescribir valores y mostrar outputs
- Inspeccionar estado local y explicar por qué no editarlo a mano
- Crear drift, detectarlo y reconciliar el recurso ausente
- Construir, llamar y reutilizar módulos con entradas
A quién va dirigido este curso
Este curso intermedio está dirigido a usuarios Linux, administradores y estudiantes de DevOps que desean practicar configuración, planes, estado y módulos de Terraform.
Requisitos previos: Shell Linux, sudo, edición, imágenes y contenedores Docker, puertos y configuración estructurada básica. No se requiere cuenta cloud ni HCL previo.
Entorno de aprendizaje: Terminal Linux con Terraform, Docker, acceso para descargar providers y estado local. Docker y local_file mantienen los recursos en la máquina.
Preguntas frecuentes
¿Provisionaré recursos en AWS, Azure o Google Cloud?
No. Se crea un contenedor Nginx local y archivos de texto. No se usan credenciales, redes cloud, máquinas virtuales ni facturación.
¿Se cubren backends remotos y bloqueo de equipo?
No. Inspeccionarás terraform.tfstate, borrarás un contenedor, detectarás drift con plan y lo recrearás con apply. Estado remoto, locking, migración, import y protección de datos quedan fuera.
¿Los módulos “webserver” crean servidores reales?
No. Generan archivos locales con entradas server_name y env. El desafío también escribe challenge_result.txt, centrándose en la estructura del módulo.





