¿Qué es Ansible y para qué sirve?
Ansible es una herramienta de código abierto de automatización y gestión de configuración desarrollada por Red Hat. Sirve para automatizar el aprovisionamiento, configuración y gestión de servidores y aplicaciones. En DevOps, Ansible se usa para instalar software, configurar servicios, desplegar aplicaciones y gestionar infraestructura de forma automatizada y repetible, sin necesidad de agentes en los servidores.
Ansible es una de las herramientas más populares de automatización en DevOps. Si trabajas con múltiples servidores o necesitas automatizar configuración, Ansible puede simplificar enormemente tu trabajo. En este artículo te explico qué es Ansible y para qué sirve.
¿Qué es Ansible?
Lo que hace especial a Ansible es que no requiere agentes instalados en los servidores que gestiona. Se conecta mediante SSH (Linux) o WinRM (Windows) y ejecuta tareas de forma remota.
¿Para qué sirve Ansible?
- Instalar y configurar software en servidores
- Gestionar configuraciones de aplicaciones
- Desplegar aplicaciones en múltiples servidores
- Gestionar usuarios y permisos
- Configurar servicios (Nginx, Apache, MySQL, etc.)
- Aplicar actualizaciones de seguridad
- Gestionar infraestructura como código
- Automatizar tareas repetitivas
- Orquestar despliegues complejos
- Gestionar configuraciones de red
Características Clave de Ansible
| Característica | Descripción |
|---|---|
| Sin Agentes | No requiere software instalado en servidores gestionados |
| Idempotencia | Puede ejecutarse múltiples veces sin efectos secundarios |
| YAML | Configuración simple en YAML (fácil de leer) |
| Push-based | Empuja cambios a servidores (no pull) |
| Multi-plataforma | Funciona con Linux, Windows, network devices |
| Modular | Miles de módulos disponibles |
| Orquestación | Puede gestionar flujos complejos |
Componentes de Ansible
- Playbooks: Archivos YAML que definen tareas y configuraciones
- Inventory: Lista de servidores a gestionar
- Modules: Módulos que ejecutan tareas específicas
- Roles: Forma de organizar y reutilizar playbooks
- Ansible Tower/AWX: Interfaz web para gestión (opcional)
Ejemplo de Playbook Ansible
---
- name: Instalar y configurar Nginx
hosts: web_servers
become: yes
tasks:
- name: Instalar Nginx
apt:
name: nginx
state: present
- name: Iniciar servicio Nginx
systemd:
name: nginx
state: started
enabled: yes
- name: Copiar configuración
copy:
src: nginx.conf
dest: /etc/nginx/nginx.conf
notify: restart nginx
handlers:
- name: restart nginx
systemd:
name: nginx
state: restarted
Ansible vs. Otras Herramientas
| Herramienta | Ventaja Principal | Mejor Para |
|---|---|---|
| Ansible | Sin agentes, YAML simple | Gestión de configuración general |
| Chef | Ruby, muy potente | Configuraciones complejas |
| Puppet | Maduro, declarativo | Grandes infraestructuras |
| Terraform | Aprovisionamiento infraestructura | Crear recursos en la nube |
| SaltStack | Rápido, escalable | Miles de servidores |
¿Cuándo usar Ansible?
- Necesitas configurar múltiples servidores
- Quieres automatizar instalación de software
- Necesitas gestionar configuraciones de aplicaciones
- Quieres despliegues automatizados
- Necesitas aplicar cambios a muchos servidores
- Quieres documentar configuraciones en código
Ansible + Terraform
- Terraform: Crea la infraestructura (servidores, redes)
- Ansible: Configura los servidores creados (instala software, servicios)
- Resultado: Infraestructura completa y configurada automáticamente
Conclusión
Ansible es una herramienta poderosa y fácil de usar para automatizar gestión de configuración en DevOps. Su simplicidad (sin agentes, YAML) lo hace ideal para empezar en automatización. Combinado con Terraform para aprovisionamiento, puedes gestionar infraestructura completa de forma automatizada. Si trabajas con múltiples servidores, aprender Ansible te ahorrará mucho tiempo.
¿Quieres aprender más sobre esto?
Únete a talleres gratuitos o accede a contenido premium en la comunidad.
Gratuitos
De pago