🏗️Infraestructura como Código

Terraform vs. Ansible: ¿Son complementarios o rivales?

Terraform y Ansible son herramientas complementarias, no rivales. Terraform se enfoca en aprovisionar infraestructura (crear servidores, redes, bases de datos). Ansible se enfoca en gestionar configuración de servidores existentes (instalar software, configurar servicios). La combinación ideal es usar Terraform para crear infraestructura y Ansible para configurarla.

#terraform#ansible#iac#gestión configuración#devops

Una de las preguntas más comunes en DevOps es: ¿Terraform o Ansible? La realidad es que estas herramientas resuelven problemas diferentes y funcionan mejor juntas que por separado. En este artículo te explico las diferencias clave y cómo usarlas de forma complementaria.

¿Terraform o Ansible?

¿Qué hace Terraform?

  • Crear y destruir recursos de infraestructura (servidores, redes, bases de datos)
  • Gestionar el ciclo de vida completo de recursos
  • Trabajar con múltiples proveedores de nube
  • Enfoque declarativo: describes qué quieres, no cómo hacerlo
  • Gestiona el estado (state) de la infraestructura

¿Qué hace Ansible?

  • Configurar servidores existentes (instalar software, configurar servicios)
  • Gestionar aplicaciones y servicios en servidores
  • Automatizar tareas repetitivas en múltiples servidores
  • Enfoque principalmente imperativo: especifica pasos a ejecutar
  • No gestiona el ciclo de vida de infraestructura

Comparativa: Terraform vs Ansible

AspectoTerraformAnsible
Propósito PrincipalAprovisionar infraestructuraGestionar configuración
Cuándo usarCrear/destruir recursosConfigurar recursos existentes
EnfoqueDeclarativoPrincipalmente imperativo
State ManagementSí, gestiona estadoNo, stateless
IdempotenciaSí, garantizadaSí, pero depende del módulo
Multi-cloudExcelenteBuena (pero menos enfocado)
LenguajeHCL (HashiCorp)YAML
Mejor paraCrear infraestructuraConfigurar servidores

¿Son Complementarios o Rivales?

  • Terraform: Crea la infraestructura (servidores, redes, bases de datos)
  • Ansible: Configura los servidores creados (instala software, configura servicios)
  • Resultado: Infraestructura completa y configurada de forma automatizada

Flujo de Trabajo Recomendado

  • 1. Terraform crea los servidores EC2 en AWS
  • 2. Terraform obtiene las IPs de los servidores creados
  • 3. Ansible se conecta a esos servidores usando las IPs
  • 4. Ansible instala y configura el software necesario
  • 5. Resultado: Infraestructura lista y configurada

¿Cuándo usar solo Terraform?

  • Solo necesitas crear infraestructura básica
  • Usas servicios gestionados (RDS, S3, Lambda) que no requieren configuración
  • La configuración es mínima o se hace mediante user-data scripts

¿Cuándo usar solo Ansible?

  • Ya tienes infraestructura existente que necesitas configurar
  • No necesitas crear nuevos recursos, solo gestionar los existentes
  • Trabajas principalmente con servidores on-premise

Integración Terraform + Ansible

  • Terraform puede generar un archivo de inventario para Ansible
  • Ansible puede usar outputs de Terraform como variables
  • Pipelines CI/CD pueden ejecutar Terraform primero, luego Ansible
  • Herramientas como Terragrunt facilitan la integración

Conclusión

Terraform y Ansible no son rivales, son complementarios. Terraform crea la infraestructura, Ansible la configura. La combinación de ambas herramientas te da el poder de gestionar infraestructura completa de forma automatizada y profesional. Si estás empezando, aprende Terraform primero para crear infraestructura, luego agrega Ansible para configurarla.

¿Quieres aprender más sobre esto?

Únete a talleres gratuitos o accede a contenido premium en la comunidad.