De la idea al estado.
Explora las 37 clases, prueba el flujo y comprueba lo que recuerdas. Notas reformuladas a partir de Recursos → Resumen.
Tu mapa del curso
Abre una clase para leer sus ideas clave. Marca “Repasada” cuando puedas explicarla sin mirar.
37 clases
01 · Despliegue de Infraestructura en la Nube con Terraform
IaC
- Terraform automatiza la creación, modificación y eliminación de infraestructura mediante configuración declarativa.
- Sus providers permiten trabajar con diferentes nubes y servicios desde un flujo común.
- Empieza con HCL y proyectos pequeños; el curso practica principalmente con Azure.
02 · Qué es infraestructura como código con Terraform
IaC
- IaC describe redes, servidores y otros componentes en archivos que se pueden versionar y reutilizar.
- Los scripts y las CLI de cada nube automatizan tareas; Terraform organiza un flujo declarativo de infraestructura.
- Crear, probar y limpiar entornos reproducibles reduce trabajo manual y recursos abandonados.
03 · Por qué Terraform domina la infraestructura como código
IaC
- El curso presenta HCL y el ecosistema de providers como razones para adoptar Terraform.
- Además de nubes, existen integraciones para servicios como GitHub y herramientas locales.
- Practicar localmente permite aprender antes de desplegar; cambiar de nube exige adaptar los recursos específicos.
04 · Instalación de Terraform en Ubuntu usando WSL en Windows
IaC
- La práctica usa Ubuntu dentro de WSL y el repositorio oficial de HashiCorp.
- El procedimiento comprende actualizar paquetes, configurar la clave de firma y agregar el repositorio.
- Comprueba la instalación con terraform --version; consulta la guía vigente para los comandos de instalación.
05 · Cómo crear tu cuenta gratuita en Azure
IaC
- Prepara una cuenta de Azure y entiende la suscripción antes de desplegar recursos.
- El registro incluye verificación de identidad y configuración de autenticación multifactor.
- Revisa límites y condiciones del crédito gratuito; el curso no sustituye las condiciones vigentes de facturación.
06 · Instalar y configurar Azure CLI con Terraform
IaC
- Instala Azure CLI en el mismo entorno de trabajo y verifica que az esté disponible.
- Usa az login; si corresponde, az login --use-device-code ofrece un flujo alternativo.
- Comprueba la suscripción activa con az account show. La CLI puede aportar autenticación; el provider realiza las llamadas a Azure.
07 · Prueba Inicial de Terraform con Docker y Visual Studio Code
IaC
- Crea un directorio de práctica y un main.tf para el tutorial inicial de Docker.
- Abre el proyecto con code . y familiarízate con los bloques HCL.
- El curso propone extensiones de Terraform para resaltado, autocompletado y detección temprana de errores.
08 · Proveedores de Terraform para multi-cloud
Fundamentos
- Busca integraciones en Terraform Registry y revisa su mantenimiento y documentación.
- required_providers declara source y restricciones de versión; provider configura la integración.
- Un proyecto puede combinar Azure, AWS, Kubernetes u otros providers, con recursos específicos para cada servicio.
09 · Cómo crear tu primer resource group con Terraform
Fundamentos
- Un resource group organiza recursos relacionados dentro de una suscripción de Azure.
- Declara azurerm_resource_group con name y location; az account list-locations ayuda a explorar regiones.
- terraform init prepara backend, providers y módulos; aparecen .terraform/ y .terraform.lock.hcl.
10 · Uso del comando Terraform Plan para validar configuraciones
Fundamentos
- plan compara configuración, estado e infraestructura y muestra las acciones propuestas.
- Lee los errores y completa requisitos del provider, como features y el ID de suscripción.
- terraform plan -out=plan.out guarda un plan revisable. Es un artefacto sensible de esa ejecución, no una plantilla universal.
11 · terraform apply para crear recursos en Azure
Fundamentos
- terraform apply plan.out ejecuta el plan guardado que revisaste.
- Los nombres locales de bloques resource del mismo tipo deben distinguirse, aunque sus nombres en Azure sean otros.
- Comprueba el resultado y el grupo de recursos en el portal. Genera un nuevo plan para cada cambio.
12 · Terraform Destroy para limpiar tu nube
Fundamentos
- destroy propone eliminar los recursos administrados por el estado y solicita confirmación interactiva.
- Inspecciona lo que se eliminará y comprueba después la limpieza en Azure.
- La clase practica limpieza de entornos desechables para controlar costos; no conviertas destruir y recrear en una corrección automática.
13 · Terraform Init, Plan y Apply en Azure
Fundamentos
- Organiza un ejercicio con configuración AzureRM y un resource group.
- Ejecuta init, plan -out=plan.out y apply plan.out desde el directorio correcto.
- Verifica lo desplegado. init también se repite al clonar, añadir módulos o modificar la configuración del backend.
14 · Variables en Terraform con archivos tfvars
Variables y estado
- Declara entradas con variable, type, description y, cuando corresponda, default; refiérelas como var.nombre.
- Separa declaraciones y valores: los archivos .tf definen variables y los .tfvars asignan valores.
- Usa -var-file para archivos elegidos y una muestra sin secretos para documentar. variables.tf es una convención, no un nombre obligatorio.
15 · Gestión de Outputs en Terraform para Recursos Desplegados
Variables y estado
- Los bloques output exponen atributos como nombre, ubicación o ID de recursos.
- Define value con una referencia al recurso; revisa outputs al planear y al aplicar.
- Agruparlos en outputs.tf mejora la lectura y prepara interfaces para integraciones o módulos.
16 · Creación de Cuentas de Almacenamiento en Azure con Terraform
Variables y estado
- azurerm_storage_account referencia el nombre y ubicación del resource group.
- Configura account_tier y account_replication_type; el ejemplo usa Standard y LRS.
- El nombre exige 3–24 caracteres alfanuméricos en minúsculas. sensitive = true oculta outputs habituales, pero no cifra el estado.
17 · Nombres únicos en Azure con CAF provider
Variables y estado
- Separa providers, recursos y salidas en archivos con responsabilidades claras.
- El provider aztfmod/azurecaf genera nombres mediante azurecaf_name, prefijos y opciones de aleatoriedad.
- Usa el atributo result como nombre del recurso y ejecuta init al agregar el provider; generar un nombre no reserva su disponibilidad global.
18 · El archivo tfstate que Terraform no cifra
Variables y estado
- El estado relaciona las direcciones de Terraform con recursos y atributos reales.
- El archivo local JSON puede incluir claves y cadenas de conexión; exclúyelo de Git y controla su acceso.
- Quitar un resource de la configuración puede producir una eliminación en el siguiente plan. El estado es una instantánea, no un historial completo.
19 · Estado remoto de Terraform en Azure — preparación
Variables y estado
- Prepara el alojamiento del estado: resource group, storage account y contenedor de blobs.
- Declara backend azurerm con storage_account_name, container_name y key por proyecto o entorno.
- Mantén las credenciales fuera del código; configura la autenticación y realiza una migración explícita cuando exista estado local.
20 · Estado remoto de Terraform en Azure — conexión y bloqueo
Variables y estado
- Inicializa el backend y comprueba que Terraform lee y escribe el blob de estado remoto.
- El bloqueo evita escritores simultáneos durante operaciones; se libera cuando termina cada operación.
- El curso usa SAS. La opción es sas_token en minúsculas o ARM_SAS_TOKEN; existen otros métodos de autenticación.
21 · Importar recursos externos con data en Terraform
Bloques y comandos
- data consulta un recurso existente sin asumir su administración.
- Lee un resource group por nombre y utiliza data.azurerm_resource_group.nombre.name o .location al crear storage.
- El título usa importar de manera informal: una consulta data no equivale a import ni adopta el ciclo de vida del grupo.
22 · terraform fmt y validate antes de plan
Bloques y comandos
- fmt normaliza el estilo; usa -recursive para recorrer directorios y -check para comprobarlo en CI.
- validate revisa la configuración y consistencia interna después de inicializar dependencias.
- plan usa valores y contexto de ejecución; apply todavía puede fallar por permisos, cuotas o condiciones del servicio.
23 · Máquina virtual Windows en Azure con Terraform
Recursos Azure
- La arquitectura de práctica reúne resource group, VNet, subnet, IP pública, NSG, NIC, asociación y VM Windows.
- Conecta recursos mediante referencias a IDs; parametriza ubicación, usuario y contraseña.
- La clase prueba RDP en 3389 y verifica el escritorio de Windows Server. Define una política de acceso adecuada antes de usarla fuera del laboratorio.
24 · Instalación de IIS en Windows Server con Terraform
Recursos Azure
- Una extensión de VM permite agregar IIS a Windows Server desde Terraform.
- CustomScriptExtension ejecuta una instrucción de PowerShell para instalar Web-Server.
- Planea el cambio, aplica y verifica IIS en Server Manager y localhost; ajusta las referencias al nombre real de tu VM.
25 · Cómo organizar Terraform en módulos
Módulos
- Agrupa recursos por responsabilidad, por ejemplo red, seguridad y cómputo.
- Cada directorio de módulo contiene configuración, variables de entrada y outputs; los nombres de archivo son convenciones.
- Al separar el código, reemplaza referencias externas por entradas explícitas y expón los IDs que requieren otros módulos.
26 · Comunicación entre Módulos en Terraform para Desplegar Máquinas Virtuales
Módulos
- Expón subnet_id, public_ip_address_id y el ID del NSG mediante outputs.
- El módulo raíz conecta module.vnet y module.nsg con las entradas de module.vm.
- Reinicializa para incorporar módulos, revisa el plan, aplica y verifica; limpia el laboratorio al finalizar.
27 · Bloque locals para prefijos en Terraform
Módulos
- locals da nombre a expresiones que reutilizas, como prefijos derivados del entorno.
- El bloque es locals en plural y la referencia es local.nombre en singular.
- Las variables reciben entradas externas; los locals calculan valores dentro del módulo y pueden depender de ellas.
28 · Importar recursos existentes a Terraform
Módulos
- Para adoptar un recurso existente, define su configuración y un import con to e id.
- Obtén el identificador del recurso y compara cuidadosamente las propiedades reales con las declaradas.
- Revisa el plan de importación antes de aplicar: adoptar puede incluir modificaciones, y el recurso pasa a quedar bajo gestión del estado.
29 · Data vs Import en Terraform
Módulos
- data proporciona atributos consultados; import asocia un objeto existente con un recurso administrado.
- Ambos pueden dejar información en el estado, pero solo el recurso adoptado entra en tu ciclo de gestión.
- Decide según responsabilidad: consultar infraestructura de otro equipo o asumir explícitamente su administración.
30 · Exploración y Uso del Terraform Registry para Módulos en la Nube
Módulos
- Registry permite descubrir módulos, revisar ejemplos y consultar interfaces de entrada y salida.
- Inspecciona README, código, versiones y mantenimiento antes de integrar uno.
- Las descargas muestran uso, pero no garantizan calidad. Selecciona una versión compatible y comprueba el módulo con tu contexto.
31 · Cómo crear un repositorio para publicar en Terraform
Módulos
- La publicación en el Registry público usa un repositorio con patrón terraform-PROVIDER-NAME.
- Prepara README, licencia y .gitignore; clona el repositorio para trabajar.
- El ejemplo agrupa storage, plan de servicio y function app en un módulo de Azure Functions con entradas y salidas.
32 · Documentación y Preparación de Repositorios con Git y Terraform
Módulos
- Adapta README, nombres y descripciones de variables al módulo que vas a compartir.
- Revisa cambios con git status, prepara archivos y registra un commit antes del push.
- Publica una versión con tag como v1.0.0 para identificar un conjunto reproducible de código y documentación.
33 · Publicación de Módulos en Terraform y Pruebas en Azure
Módulos
- Vincula el repositorio elegible con Registry y verifica nombre y versión publicada.
- Consume el módulo desde un proyecto independiente, configura provider y completa las entradas requeridas.
- Ejecuta init y plan; resuelve incompatibilidades y advertencias antes de aplicar y verificar la function app.
34 · CI/CD de Terraform con GitHub Actions en Azure
CI/CD
- Guarda el workflow en .github/workflows/ y define triggers, runner y directorio de trabajo.
- El ejemplo usa una identidad de servicio y mapea credenciales a ARM_CLIENT_ID, ARM_CLIENT_SECRET, ARM_SUBSCRIPTION_ID y ARM_TENANT_ID.
- Checkout, instalación de Terraform, init, validate y plan forman la primera automatización de integración.
35 · Despliegue Continuo con Terraform y GitHub Actions
CI/CD
- Agrega un paso de terraform apply plan.out para ejecutar el plan producido por el workflow.
- Pon nombres claros a jobs y pasos para interpretar los resultados en Actions.
- Un runner efímero pierde el estado local entre ejecuciones; configura persistencia antes de repetir despliegues.
36 · Estado remoto de Terraform en GitHub Actions
CI/CD
- Conecta el workflow al mismo backend remoto para conservar el estado entre runners.
- El ejemplo aloja tfstate en un contenedor de Azure y obtiene SAS desde GitHub Secrets al inicializar.
- Verifica backend y blob de estado. Coordina ejecuciones concurrentes; un commit adicional no sustituye resolver el bloqueo o la causa del fallo.
37 · Navegación Eficiente en la Documentación de Terraform
Documentación
- Busca recursos en la categoría del provider y en la versión que utilizas.
- Distingue argumentos requeridos, opcionales, bloques anidados y atributos exportados.
- Compara ejemplos y formas de modelar redes o reglas; consulta la documentación antes de combinar recursos con bloques inline.
El progreso del panel intenta guardarse solo en este navegador; no se sincroniza con Notion. Usa también la checklist nativa de la página.
¿Qué cambia cuando ejecutas Terraform?
Modelo simplificado de recursos administrados idénticos. Todos los botones simulan: no ejecutan comandos ni crean recursos.
Prueba esto: guarda un plan para 2 recursos, mueve el control a 4 y aplica el plan guardado. Verás 2; para desplegar 4 debes generar otro plan. El modelo omite APIs, drift, bloqueos y errores de ejecución.
Recupera la idea antes de ver la respuesta
Responde en voz alta, abre la tarjeta y comprueba. Recorre las diez tarjetas y vuelve a las que te cuesten.
1 / 10
¿Quién habla con la API de Azure?
El provider AzureRM. Azure CLI puede suministrar autenticación local; Terraform no transforma HCL en comandos az.
Haz otra ronda mañana, a los 3 días y a la semana. Es una propuesta de práctica, no un recordatorio programado.
Comprueba tu criterio
Ocho situaciones prácticas. Responde todas y revisa las explicaciones.
Los detalles que conviene recordar
Un lenguaje, recursos específicos
Usar HCL en varias nubes no significa que el recurso de Azure funcione en AWS. Cambian tipos, argumentos y servicios.
Documentación oficial ↗Estado protegido
El estado contiene información de infraestructura y puede incluir secretos. sensitive no es cifrado.
Documentación oficial ↗Un plan para una ejecución
No reutilices un plan como plantilla entre entornos. Revisa acciones y guarda el artefacto con acceso controlado.
Documentación oficial ↗SAS y alternativas
La clave del backend es sas_token; la variable de entorno es ARM_SAS_TOKEN. Consulta autenticación Entra u OIDC para nuevas cargas.
Documentación oficial ↗Separar consulta y gestión
data consulta; import adopta. La responsabilidad de gestión cambia al importar un objeto existente.
Documentación oficial ↗CI/CD con coordinación
Combina el bloqueo del estado con concurrencia por entorno. Un reintento debe responder a una causa identificada.
Documentación oficial ↗