Sobes.tech
Intern

¿Qué es Ansible?

sobes.tech AI

Respuesta de la IA

Ansible es una herramienta de automatización de infraestructura de TI de código abierto y fácil de usar. Se utiliza para configurar servidores, desplegar aplicaciones y orquestar tareas.

Características clave:

  • Sin agente: No requiere la instalación de agentes en los nodos gestionados. Utiliza SSH (o WinRM para Windows).
  • Idempotente: Las operaciones se pueden repetir varias veces sin cambiar el estado final, si ya se ha alcanzado.
  • Simplicidad: Utiliza YAML para escribir playbooks, lo que lo hace legible y comprensible.
  • Módulos: Viene con una gran cantidad de módulos para realizar diversas tareas (instalación de paquetes, copia de archivos, gestión de servicios, etc.).
  • Extensibilidad: Es fácil crear tus propios módulos y plugins.

Componentes principales:

  • Nodo de control: Servidor desde el cual se ejecutan comandos y playbooks de Ansible. Normalmente es Linux.
  • Nodos gestionados: Servidores o dispositivos que gestionas con Ansible.
  • Inventario: Archivo que describe tus nodos gestionados (direcciones IP, nombres de host, grupos).
    [webservers]
    web1.ejemplo.com
    web2.ejemplo.com
    
    [databases]
    db1.ejemplo.com
    
  • Módulos: Los módulos son unidades de código que realizan tareas específicas en los nodos gestionados.
    - name: Instalar Nginx
      ansible.builtin.apt:
        name: nginx
        state: present
    
  • Tareas: La tarea es una llamada a un módulo con parámetros definidos. Las tareas se ejecutan en secuencia.
  • Playbooks: Los playbooks son archivos YAML que contienen un conjunto de tareas para lograr un objetivo específico. Describen el estado deseado del sistema.
    ---
    - name: Configurar servidores web de producción
      hosts: webservers
      become: yes  # Ejecutar tareas con privilegios sudo
      tasks:
        - name: Instalar la última versión de Apache
          ansible.builtin.yum:
            name: httpd
            state: latest
        - name: Asegurar que Apache esté en ejecución y habilitado al arrancar
          ansible.builtin.service:
            name: httpd
            state: started
            enabled: yes
    
  • Roles: Los roles agrupan tareas, variables y plantillas en estructuras reutilizables.

Aplicaciones:

  • Gestión de configuración.
  • Despliegue de aplicaciones.
  • Provisionamiento de infraestructura (por ejemplo, configuración de máquinas virtuales después de su creación).
  • Orquestación de tareas (ejecución secuencial de acciones en diferentes nodos).
  • Automatización de operaciones rutinarias.