Introducción
Dominar Terraform no significa memorizar todos sus comandos y argumentos: significa saber dónde encontrar respuestas cuando las necesitas. El ecosistema de Terraform es uno de los más ricos y activos en el mundo de la infraestructura como código, con documentación de calidad excepcional, una comunidad colaborativa y herramientas complementarias que multiplican tu productividad.
Esta lección es tu guía de referencia para navegar ese ecosistema de forma eficiente, encontrar ayuda cuando te atascas, y continuar creciendo como profesional de Terraform más allá de este curso.
- El Ecosistema de Terraform: Recursos Disponibles
El ecosistema de Terraform se organiza en varias capas:
- Documentación oficial: La fuente primaria y más fiable para referencias técnicas.
- Comunidad: Foros, Slack, Stack Overflow y GitHub Issues para resolver dudas.
- Aprendizaje: Tutoriales oficiales, cursos y libros especializados.
- Herramientas complementarias: Software que extiende y mejora el flujo de trabajo con Terraform.
- Certificaciones: Validación formal de tus conocimientos.
- Documentación Oficial
registry.terraform.io
El Terraform Registry es la referencia técnica más importante. Contiene:
- Providers: Documentación de todos los providers disponibles (AWS, Azure, GCP, Kubernetes, etc.)
- Modules: Módulos públicos reutilizables creados por la comunidad y empresas
- Políticas: Políticas de Sentinel para Terraform Cloud/Enterprise
Cómo navegar la documentación de un provider:
La estructura de la página de un provider es:
Provider: hashicorp/aws
├── Overview <- Configuración del bloque provider {}
├── Guides <- Guías de migración entre versiones
├── Resources <- Recursos gestionados (aws_instance, aws_vpc, etc.)
│ ├── aws_instance
│ │ ├── Example Usage <- Ejemplos copiables
│ │ ├── Argument Reference <- Todos los argumentos disponibles
│ │ ├── Attributes Reference <- Valores exportados por el recurso
│ │ └── Import <- Cómo importar con terraform import
│ └── ...
└── Data Sources <- Fuentes de datos (data "aws_ami" {}, etc.)
├── aws_ami
└── ...Ejemplo: Cómo leer la documentación de aws_instance
# Al leer la doc de aws_instance en el Registry, encontrarás:
# Required Arguments (obligatorios):
resource "aws_instance" "example" {
ami = "ami-0c55b159cbfafe1f0" # Required: ID de la AMI
instance_type = "t2.micro" # Required: tipo de instancia
}
# Optional Arguments (opcionales, con sus valores por defecto):
resource "aws_instance" "example" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t2.micro"
# Optional - defaults to false
associate_public_ip_address = true
# Optional - defaults to null (no EBS optimization)
ebs_optimized = false
# Optional block
tags = {
Name = "example"
}
}
# Attributes Reference (valores que puedes referenciar DESPUÉS de crear):
output "instance_id" {
value = aws_instance.example.id # Exportado: ID de la instancia
}
output "private_ip" {
value = aws_instance.example.private_ip # IP privada asignada
}developer.hashicorp.com
La plataforma principal de documentación de HashiCorp desde 2023. Incluye:
- Documentación técnica de Terraform CLI
- Terraform Cloud y Terraform Enterprise docs
- Tutoriales interactivos (antes en learn.hashicorp.com)
- CDK for Terraform (CDKTF) — Terraform con TypeScript/Python/Go
- HashiCorp Forum
El foro oficial de HashiCorp es el lugar recomendado para preguntas técnicas sobre Terraform.
URL: https://discuss.hashicorp.com/c/terraform-core/27
Cómo hacer una buena pregunta en el foro
Una pregunta bien formulada obtiene respuesta mucho más rápido. Incluye siempre:
- Versión de Terraform:
terraform --version - Versión del provider: visible en
.terraform.lock.hcl - Código mínimo reproducible: Solo el código necesario para reproducir el problema
- Mensaje de error completo: Todo el output, no solo una parte
- Lo que ya intentaste: Evita respuestas redundantes
Ejemplo de buena pregunta:
Título: aws_s3_bucket: Error "AccessDenied" al crear bucket con política personalizada Entorno: - Terraform v1.6.2 - Provider hashicorp/aws v5.25.0 - Region: eu-west-1 Problema: Al ejecutar terraform apply, obtengo AccessDenied al intentar crear un bucket con block_public_acls = true. Sin esa configuración, el bucket se crea correctamente. Código: [código mínimo reproducible] Error completo: [mensaje de error completo] Lo que intenté: 1. Verificar permisos IAM - tengo s3:CreateBucket y s3:PutBucketPublicAccessBlock 2. Probar sin block_public_acls - funciona correctamente
- Stack Overflow
Stack Overflow tiene una gran colección de preguntas y respuestas sobre Terraform.
Etiquetas relevantes:
terraform— La etiqueta principalterraform-provider-aws— Específico del provider de AWSterragrunt— Para preguntas sobre Terragruntterraform-modules— Para preguntas sobre móduloshcl— Para preguntas de sintaxis HCL
Cómo buscar eficientemente:
# Búsqueda con etiqueta específica https://stackoverflow.com/questions/tagged/terraform # Búsqueda combinada site:stackoverflow.com [terraform] aws_s3_bucket AccessDenied # Búsqueda en Google "terraform" "aws_instance" "Error: Invalid count argument" site:stackoverflow.com
- GitHub Issues de Providers: Cómo Reportar Bugs
Cuando encuentras un comportamiento que parece ser un bug del provider (no un error de configuración tuyo), el lugar correcto para reportarlo es el repositorio de GitHub del provider.
Repositorios principales:
- AWS:
https://github.com/hashicorp/terraform-provider-aws - Azure:
https://github.com/hashicorp/terraform-provider-azurerm - GCP:
https://github.com/hashicorp/terraform-provider-google - Kubernetes:
https://github.com/hashicorp/terraform-provider-kubernetes
Cómo buscar si tu bug ya está reportado
# Antes de crear un nuevo issue, buscar si ya existe
# En GitHub, en el repositorio del provider:
# Issues -> Search -> "tu mensaje de error"
# También puedes buscar en la URL:
# https://github.com/hashicorp/terraform-provider-aws/issues?q=your+error+messagePlantilla de bug report efectivo
## Versiones de Terraform y del Provider
- Terraform: 1.6.2
- Provider AWS: 5.25.0
## Comportamiento esperado
Al crear un `aws_s3_bucket_cors_configuration`, las reglas de CORS deben
aplicarse correctamente.
## Comportamiento actual
El recurso se crea sin errores, pero las reglas de CORS no aparecen en la
consola de AWS.
## Pasos para reproducir
resource "aws_s3_bucket" "example" { bucket = "mi-bucket-cors-test" }
resource "aws_s3_bucket_cors_configuration" "example" { bucket = aws_s3_bucket.example.id
cors_rule { allowed_methods = ["GET"] allowed_origins = ["https://example.com"] } }
[pegar TF_LOG=DEBUG output relevante]
- Comunidad en Slack y Discord
Slack oficial de HashiCorp
HashiCorp mantiene un workspace de Slack para la comunidad:
- URL de invitación:
https://hashicorp-discuss.slack.com - Canal principal:
#terraform - Canales especializados:
#terraform-providers,#terraform-cloud,#terraform-cdk
Canales de Discord relevantes
- DevOps Discord: Busca "DevOps" en Discord para encontrar servidores con canales de Terraform
- r/Terraform Discord: Vinculado al subreddit, activo y con respuestas rápidas
- HashiCorp Learn / developer.hashicorp.com/tutorials
La plataforma de tutoriales oficiales es el mejor lugar para aprender de forma práctica y guiada.
Tracks (rutas de aprendizaje) disponibles:
- Get Started: Primeros pasos con AWS/Azure/GCP/Docker
- Configuration Language: HCL en profundidad
- Modules: Crear y usar módulos
- Terraform Cloud: CI/CD con Terraform Cloud
- State: Gestión avanzada del estado
- Provision: Aprovisionamiento avanzado
Características de los tutoriales:
- Entorno de sandbox gratuito (sin necesidad de cuenta cloud propia para algunos tutoriales)
- Verificación paso a paso de que los comandos funcionan
- Tiempo estimado por tutorial
- Código de ejemplo en GitHub
- Blogs y Recursos Recomendados
Blog oficial de HashiCorp
Publica anuncios de nuevas versiones, casos de uso empresariales, mejores prácticas y comparativas.
Recursos de la comunidad
-
Anton Babenko (
@antonbabenko): Co-autor del módulo AWS VPC más popular. Blog enhttps://www.antonbabenko.comy canal de YouTube con contenido avanzado sobre Terraform. -
gruntwork.io blog:
https://blog.gruntwork.io— Creadores de Terragrunt. Artículos profundos sobre infraestructura como código, patrones de módulos y gestión del estado en escala. -
The Terraform Book: Libro de James Turnbull disponible en
https://terraformbook.com. Uno de los primeros y más completos libros sobre Terraform. -
Spacelift Blog:
https://spacelift.io/blog— Artículos técnicos detallados sobre características específicas de Terraform. -
env0 Blog:
https://www.env0.com/blog— Contenido sobre Terraform en empresas y mejores prácticas de equipo.
Subreddit
Comunidad activa con preguntas, noticias y discusiones sobre Terraform.
- Herramientas del Ecosistema
Terragrunt: Configuraciones DRY (Don't Repeat Yourself)
Terragrunt es una capa delgada sobre Terraform que ayuda a mantener las configuraciones secas (sin repetición) en grandes proyectos multi-cuenta y multi-entorno.
# terragrunt.hcl - En lugar de repetir el backend en cada módulo
remote_state {
backend = "s3"
config = {
bucket = "mi-empresa-terraform-state"
key = "${path_relative_to_include()}/terraform.tfstate"
region = "us-east-1"
encrypt = true
dynamodb_table = "terraform-state-locks"
}
}
# Incluir configuraciones compartidas
inputs = merge(
yamldecode(file("${get_terragrunt_dir()}/../common.yaml")),
{
environment = "prod"
}
)Atlantis: GitOps para Terraform
Atlantis automatiza el flujo de pull requests para Terraform: ejecuta terraform plan automáticamente cuando se abre un PR y permite aprobar y aplicar cambios mediante comentarios en GitHub/GitLab.
# atlantis.yaml - Configuración básica
version: 3
projects:
- name: prod-vpc
dir: environments/prod/vpc
workspace: default
terraform_version: v1.6.2
autoplan:
when_modified: ["*.tf", "../modules/**/*.tf"]
enabled: trueInfracost: Estimación de Costos
Infracost muestra el costo estimado de los cambios de infraestructura directamente en los pull requests.
# Instalar infracost
brew install infracost # macOS
# o
curl -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | sh
# Obtener API key gratuita
infracost auth login
# Ver el costo estimado del plan actual
infracost breakdown --path .
# Comparar costos antes y después de un cambio
infracost diff --path . --compare-to mainCheckov y Terrascan: Seguridad y Cumplimiento
Herramientas de análisis estático que detectan problemas de seguridad en configuraciones Terraform antes de aplicarlas.
# Checkov - Análisis de seguridad
pip install checkov
# Analizar el directorio actual
checkov -d .
# Analizar y exportar en formato JSON
checkov -d . -o json > checkov-report.json
# Salida de ejemplo:
# Check: CKV_AWS_79: "Ensure Instance Metadata Service Version 1 is not enabled"
# PASSED for resource: aws_instance.web
# Check: CKV_AWS_8: "Ensure all data stored in the Launch configuration EBS is securely encrypted"
# FAILED for resource: aws_instance.web
# File: /main.tf:10-20# Terrascan - Cumplimiento de políticas
brew install terrascan # macOS
# Escanear con las políticas por defecto
terrascan scan -t aws
# Escanear con políticas específicas
terrascan scan -t aws -p policies/tfenv: Gestión de Versiones de Terraform
Similar a nvm para Node.js o pyenv para Python, tfenv permite instalar y cambiar entre múltiples versiones de Terraform en la misma máquina.
# Instalar tfenv
git clone --depth=1 https://github.com/tfutils/tfenv.git ~/.tfenv
echo 'export PATH="$HOME/.tfenv/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
# Listar versiones disponibles
tfenv list-remote | head -20
# Instalar una versión específica
tfenv install 1.6.2
tfenv install 1.5.7
# Cambiar la versión activa globalmente
tfenv use 1.6.2
# Usar una versión específica para un proyecto (crea .terraform-version)
echo "1.5.7" > .terraform-version
tfenv use # Detecta automáticamente .terraform-version
# Ver versión activa
terraform --version
- Tabla de Recursos de la Comunidad
| Recurso | Tipo | Descripción | URL |
|---|---|---|---|
| Terraform Registry | Documentación | Referencia de providers, módulos y políticas | registry.terraform.io |
| HashiCorp Developer | Documentación + Tutoriales | Docs oficiales y tutoriales interactivos | developer.hashicorp.com/terraform |
| HashiCorp Discuss | Foro | Preguntas técnicas con respuestas de la comunidad | discuss.hashicorp.com |
Stack Overflow [terraform] |
Q&A | Preguntas y respuestas de la comunidad | stackoverflow.com/questions/tagged/terraform |
| GitHub terraform-provider-aws | Issues/PRs | Bugs y nuevas funcionalidades del provider AWS | github.com/hashicorp/terraform-provider-aws |
| HashiCorp Slack | Chat | Canal #terraform para preguntas rápidas |
hashicorp-discuss.slack.com |
| r/Terraform | Comunidad | Noticias, preguntas y discusiones | reddit.com/r/Terraform |
| Terragrunt | Herramienta | DRY configurations y multi-account | terragrunt.gruntwork.io |
| Atlantis | Herramienta | GitOps y automatización de PR | runatlantis.io |
| Infracost | Herramienta | Estimación de costos de infraestructura | infracost.io |
| Checkov | Herramienta | Análisis de seguridad estático | checkov.io |
| tfenv | Herramienta | Gestión de versiones de Terraform | github.com/tfutils/tfenv |
| gruntwork.io blog | Blog | Artículos técnicos profundos de IaC | blog.gruntwork.io |
| Anton Babenko | Blog/YouTube | Contenido avanzado de Terraform | antonbabenko.com |
- Cómo Contribuir al Ecosistema de Terraform
Contribuir al ecosistema de Terraform es una excelente forma de profundizar tus conocimientos y construir reputación en la comunidad.
Contribuir a módulos existentes
# 1. Fork el repositorio en GitHub
# 2. Clonar tu fork
git clone https://github.com/TU_USUARIO/terraform-aws-modules-vpc.git
# 3. Crear una rama para tu contribución
git checkout -b fix/subnet-calculation-edge-case
# 4. Hacer los cambios y añadir tests
# Los módulos de HashiCorp usan terratest (Go) para testing
# 5. Ejecutar los tests
cd test
go test -v -run TestVpcWithSubnets -timeout 30m
# 6. Crear el Pull Request con descripción claraPublicar tu propio módulo en el Registry
# El repositorio debe seguir el naming convention:
# terraform-<PROVIDER>-<NAME>
# Ejemplo: terraform-aws-mi-modulo-personalizado
# Estructura recomendada:
terraform-aws-mi-modulo/
├── main.tf # Recursos principales
├── variables.tf # Variables de entrada
├── outputs.tf # Valores de salida
├── versions.tf # Versiones requeridas
├── README.md # Documentación (generada con terraform-docs)
├── examples/ # Ejemplos de uso
│ └── basic/
│ ├── main.tf
│ └── README.md
└── test/ # Tests automatizados
└── mi_modulo_test.go# Generar documentación automáticamente
brew install terraform-docs # macOS
# Generar README desde las variables y outputs del módulo
terraform-docs markdown table . > README.mdReportar y corregir errores en la documentación
La documentación de Terraform (en developer.hashicorp.com) tiene un botón "Edit this page" en cada página que lleva directamente al archivo en GitHub. Incluso correcciones pequeñas de typos son bienvenidas.
- Certificaciones de HashiCorp: Terraform Associate
La HashiCorp Certified: Terraform Associate es la certificación oficial de Terraform y una de las más valoradas en el mercado de DevOps e infraestructura cloud.
Detalles de la certificación
| Aspecto | Detalle |
|---|---|
| Nombre oficial | HashiCorp Certified: Terraform Associate (003) |
| Nivel | Associate (no requiere experiencia previa con HashiCorp) |
| Formato | Examen online supervisado (proctored) |
| Duración | 60 minutos |
| Número de preguntas | ~57 preguntas |
| Tipo de preguntas | Multiple choice, multiple select, fill-in-the-blank |
| Puntuación mínima | 70% |
| Precio | $70.50 USD |
| Validez | 2 años |
| URL de registro | https://www.hashicorp.com/certification/terraform-associate |
Dominios del examen
La certificación evalúa los siguientes dominios, con sus pesos aproximados:
- IaC Concepts (7%): Ventajas de IaC, Terraform vs otras herramientas
- Terraform Purpose (8%): Casos de uso, beneficios, providers multi-cloud
- Terraform Basics (18%): CLI, bloques principales, flujo de trabajo
- Terraform Outside the Core Workflow (10%):
terraform fmt,validate,taint,state - Interact with Terraform Modules (18%): Crear, usar, versionado de módulos
- Navigate Terraform Workflow (18%):
init,plan,apply,destroy - Implement and Maintain State (14%): Backends, state locking, remote state
- Read, Generate, and Modify Configuration (6%): Variables, outputs, funciones HCL
Plan de estudio recomendado
Semana 1-2: Repasar conceptos fundamentales - Completar la ruta de tutoriales "Get Started" para al menos un cloud - Leer la documentación oficial del CLI Semana 3: Módulos y estado - Tutoriales de módulos en developer.hashicorp.com - Practicar state management (backends, workspaces) Semana 4: Práctica y simulacros - Realizar proyectos prácticos completos - Hacer preguntas de práctica (disponibles en la web oficial y Udemy) - Revisar los dominios con menor puntuación Recursos de preparación: - Study Guide oficial: developer.hashicorp.com/terraform/tutorials/certification-003 - Sample questions: hashicorp.com/certification/terraform-associate - Cursos de práctica: Udemy, A Cloud Guru, Pluralsight
- Ejercicio: Encontrar la Solución a un Problema Usando la Documentación
Escenario
Necesitas crear un bucket S3 con las siguientes características:
- Nombre único usando un sufijo aleatorio
- Versionado habilitado
- Acceso público completamente bloqueado
- Etiquetado con proyecto y entorno
Sin embargo, al intentarlo, encuentras un error:
│ Error: Unsupported argument
│
│ on main.tf line 5, in resource "aws_s3_bucket" "app":
│ 5: versioning {
│
│ Blocks of type "versioning" are not expected here.Tu tarea usando la documentación
- Ve a
registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/s3_bucket - Lee la sección "Argument Reference" para encontrar la forma correcta de configurar el versionado
- Busca el recurso separado para
block_public_access - Implementa la solución completa
Solución documentada
Al consultar la documentación del provider AWS v4+, descubres que el argumento versioning fue separado en su propio recurso:
# main.tf - Solución completa basada en la documentación actual (AWS provider v5+)
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
random = {
source = "hashicorp/random"
version = "~> 3.0"
}
}
}
provider "aws" {
region = "us-east-1"
}
# Sufijo aleatorio para nombre único
# Encontrado en: registry.terraform.io/providers/hashicorp/random/latest/docs/resources/string
resource "random_string" "bucket_suffix" {
length = 8
special = false
upper = false
}
# Bucket S3 base (en v4+ muchos argumentos se movieron a recursos separados)
# Referencia: registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/s3_bucket
resource "aws_s3_bucket" "app" {
bucket = "mi-aplicacion-${random_string.bucket_suffix.result}"
tags = {
Project = "mi-aplicacion"
Environment = "prod"
ManagedBy = "Terraform"
}
}
# Versionado en su propio recurso (separado en provider v4+)
# Referencia: registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/s3_bucket_versioning
resource "aws_s3_bucket_versioning" "app" {
bucket = aws_s3_bucket.app.id # Referencia al bucket creado arriba
versioning_configuration {
status = "Enabled" # Opciones: Enabled, Suspended, Disabled
}
}
# Bloqueo de acceso público en su propio recurso
# Referencia: registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/s3_bucket_public_access_block
resource "aws_s3_bucket_public_access_block" "app" {
bucket = aws_s3_bucket.app.id
block_public_acls = true # Bloquea ACLs públicos nuevos y existentes
block_public_policy = true # Bloquea políticas de bucket que permitan acceso público
ignore_public_acls = true # Ignora ACLs públicos al evaluar el acceso
restrict_public_buckets = true # Restringe el acceso público aunque haya políticas que lo permitan
}
# Outputs útiles
output "bucket_name" {
value = aws_s3_bucket.app.bucket
description = "Nombre del bucket S3 creado"
}
output "bucket_arn" {
value = aws_s3_bucket.app.arn
description = "ARN del bucket S3 para usar en políticas IAM"
}Lección de este ejercicio: La documentación del Registry siempre refleja la versión más actual. Siempre verifica la versión del provider que estás usando y si hay notas de migración entre versiones mayores.
- Guía Paso a Paso para Buscar Ayuda Eficientemente
Cuando te encuentres bloqueado, sigue este proceso antes de publicar una pregunta:
Paso 1: Lee el mensaje de error completo
└── ¿El error menciona un archivo/línea específica?
├── SÍ → Ve directamente al código indicado
└── NO → Copia el tipo de error y búscalo
Paso 2: Busca en la documentación oficial
└── registry.terraform.io/providers/<provider>/latest/docs/resources/<recurso>
├── ¿El argumento existe en la versión actual?
├── ¿Ha cambiado en versiones recientes? (ver guías de migración)
└── ¿El tipo de valor es correcto?
Paso 3: Busca en Stack Overflow
└── Búsqueda: [terraform] "<mensaje de error exacto entre comillas>"
├── ¿Hay una respuesta aceptada?
└── ¿La respuesta es para la misma versión del provider?
Paso 4: Busca en GitHub Issues del provider
└── github.com/hashicorp/terraform-provider-<nombre>/issues?q=<error>
├── ¿Es un bug conocido?
└── ¿Hay un workaround en los comentarios?
Paso 5: Busca en HashiCorp Discuss
└── discuss.hashicorp.com → buscar el error
Paso 6: Activa TF_LOG=DEBUG y analiza los logs
└── ¿El problema es de autenticación, permisos o parámetros?
Paso 7: Si nada funciona, publica tu pregunta
└── Con: versión, código mínimo, error completo, lo que intentaste
├── HashiCorp Discuss (recomendado para bugs/comportamiento)
└── Stack Overflow (recomendado para preguntas de configuración)Resumen del Módulo 9 y del Curso Completo
Resumen del Módulo 9: Solución de Problemas y Comunidad
En este módulo has aprendido:
- Módulo 9.1: Cómo leer e interpretar mensajes de error de Terraform, las categorías principales de errores y cómo corregir una configuración defectuosa con múltiples problemas.
- Módulo 9.2: Las herramientas de depuración de Terraform (
TF_LOG,terraform console, plan JSON) y cómo aplicarlas en una sesión de depuración completa. - Módulo 9.3: Cómo gestionar los problemas de estado más críticos: corrupción, drift, recursos huérfanos y bloqueos, con medidas preventivas para evitarlos.
- Módulo 9.4: El ecosistema completo de recursos, comunidad y herramientas de Terraform para continuar creciendo como profesional.
Resumen del Curso Completo
A lo largo de este curso has construido una base sólida en Terraform profesional:
| Módulo | Temas cubiertos |
|---|---|
| 1 | Introducción a Terraform, instalación y primeros pasos |
| 2 | HCL en profundidad: variables, outputs, recursos y providers |
| 3 | Gestión del estado: archivos de estado, estado remoto y state locking |
| 4 | Módulos: creación, uso y el registro público |
| 5 | Provisioning en AWS, Azure y GCP |
| 6 | Características avanzadas: workspaces, funciones, bloques dinámicos e import |
| 7 | Mejores prácticas: organización del código, control de versiones, testing y seguridad |
| 8 | Integración con CI/CD: Jenkins, GitHub Actions y Terraform Cloud |
| 9 | Troubleshooting: errores comunes, depuración, problemas de estado y recursos de comunidad |
Próximos pasos recomendados
- Practica con proyectos reales: El módulo 10 contiene proyectos completos con AWS, multi-cloud, Kubernetes y serverless.
- Prepárate para la certificación: HashiCorp Certified: Terraform Associate valida y acredita tus conocimientos.
- Explora el ecosistema: Terragrunt para proyectos grandes, Atlantis para GitOps, Infracost para gestión de costos.
- Contribuye a la comunidad: Publica módulos, responde preguntas en Stack Overflow, reporta bugs en GitHub.
- Mantente actualizado: Sigue el blog de HashiCorp y las release notes de Terraform para conocer las nuevas funcionalidades.
Has completado el módulo más desafiante del curso. La capacidad de diagnosticar problemas, encontrar soluciones en la documentación y aprovechar los recursos de la comunidad es lo que distingue a un profesional competente de alguien que solo conoce los comandos básicos.
El siguiente paso es el Módulo 10: Proyectos Prácticos, donde aplicarás todo lo aprendido en escenarios reales de infraestructura.
Curso de Terraform
Módulo 1: Introducción a Terraform
- ¿Qué es Terraform?
- Instalando Terraform
- Conceptos Básicos de Terraform
- Primera Configuración de Terraform
Módulo 2: Lenguaje de Configuración de Terraform
Módulo 3: Gestión del Estado
Módulo 4: Módulos de Terraform
Módulo 5: Aprovisionamiento de Recursos
- Conceptos Básicos de Aprovisionamiento
- Aprovisionamiento de Recursos AWS
- Aprovisionamiento de Recursos Azure
- Aprovisionamiento de Recursos GCP
Módulo 6: Funcionalidades Avanzadas de Terraform
Módulo 7: Mejores Prácticas de Terraform
- Organización del Código
- Control de Versiones
- Pruebas del Código de Terraform
- Mejores Prácticas de Seguridad
Módulo 8: Terraform en CI/CD
- Integración de Terraform con CI/CD
- Automatización de Terraform con Jenkins
- Uso de Terraform con GitHub Actions
- Terraform Cloud y Enterprise
