🏗️Infraestructura como Código

¿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#gestión configuración#automatización#devops#infraestructura

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ísticaDescripción
Sin AgentesNo requiere software instalado en servidores gestionados
IdempotenciaPuede ejecutarse múltiples veces sin efectos secundarios
YAMLConfiguración simple en YAML (fácil de leer)
Push-basedEmpuja cambios a servidores (no pull)
Multi-plataformaFunciona con Linux, Windows, network devices
ModularMiles de módulos disponibles
OrquestaciónPuede 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

HerramientaVentaja PrincipalMejor Para
AnsibleSin agentes, YAML simpleGestión de configuración general
ChefRuby, muy potenteConfiguraciones complejas
PuppetMaduro, declarativoGrandes infraestructuras
TerraformAprovisionamiento infraestructuraCrear recursos en la nube
SaltStackRápido, escalableMiles 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.