Ansible: automatización de TI para todos

Ansible es una herramienta de código abierto para el aprovisionamiento de software, implementación de aplicaciones, orquestación, configuración y administración. Su objetivo es ayudarlo a automatizar sus procesos de configuración y simplificar la administración de múltiples sistemas. Por lo tanto, Ansible persigue esencialmente los mismos objetivos que Puppet, Chef o Saltstack.

Lo que me encanta de Ansible es que es flexible, liviano y fácil de comenzar. En la mayoría de los casos de uso, esto simplifica el trabajo.

Elegí usar Ansible en 2016 porque no es necesario instalar agentes en los nodos administrados: un nodo es lo que Ansible llama un sistema remoto administrado. Todo lo que necesita para comenzar a administrar un sistema remoto con Ansible es acceso SSH al sistema y Python instalado en él. Python viene preinstalado en la mayoría de los sistemas Linux y ya estaba acostumbrado a administrar mis hosts a través de SSH, por lo que estaba listo para comenzar de inmediato. Y si llega el día en que decido dejar de usar Ansible, solo necesito eliminar mi máquina controladora Ansible (nodo de control) y estoy listo para continuar. No quedan agentes en los nodos administrados que deban eliminarse.

Ansible ofrece dos formas de controlar sus nodos. Los primeros usos libros de juegos. Estos son archivos ASCII simples escritos en Otro lenguaje de marcado más (YAML), fácil de leer y escribir. Y segundo, están los comandos ad-hoc, que le permiten ejecutar un comando o módulo sin tener que crear un libro de jugadas primero.

Usted organiza los hosts que desea administrar y controlar en un inventario archivo, que ofrece opciones de formato flexibles. Por ejemplo, puede ser un archivo de tipo INI que se parece a:

mail.example.com

[webservers]
foo.example.com
bar.example.com

[dbservers]
one.example.com
two.example.com
three.example.com

[site1:children]
webservers
dbservers
Índice

    Ejemplos

    Me gustaría darte dos pequeños ejemplos del uso de Ansible. Empecé con estas tareas muy simples antes de usar Ansible para tomar el control de tareas más complejas en mi infraestructura.

    Ad-hoc: compruebe si Ansible puede administrar un sistema de forma remota

    Como recordará del principio de este artículo, todo lo que necesita para administrar un host remoto es acceso SSH y un intérprete de Python que funcione. Para verificar si se cumplen estas condiciones, ejecute el siguiente comando ad hoc en un host en su inventario:

    [[email protected]]$ ansible mail.example.com -m ping
    mail.example.com | SUCCESS => {
        "changed": false, 
        "ping": "pong"
    }
    

    Playbook: registre un sistema y adjunte una suscripción

    Este ejemplo demuestra cómo usar un libro de jugadas para mantener actualizados los paquetes instalados. El libro de jugadas es un archivo de texto ASCII que se ve así:

    ---
    # Make sure all packages are up to date
    - name: Update your system
      hosts: mail.example.com
      tasks:
      - name: Make sure all packages are up to date
        yum:
          name: "*"
          state: latest
    

    Ahora estamos listos para ejecutar el libro de jugadas:

    [[email protected]]$ ansible-playbook yum_update.yml 
    
    PLAY [Update your system] **************************************************************************
    
    TASK [Gathering Facts] *****************************************************************************
    ok: [mail.example.com]
    
    TASK [Make sure all packages are up to date] *******************************************************
    ok: [mail.example.com]
    
    PLAY RECAP *****************************************************************************************
    mail.example.com : ok=2    changed=0    unreachable=0    failed=0
    

    Aquí todo está bien y no hay nada más que hacer. Todos los paquetes instalados ya son la última versión.

    Es simple: pruébalo y úsalo

    Los ejemplos anteriores son bastante simples y solo deberían darle una primera impresión. Pero, desde el principio, no me tomó mucho tiempo usar Ansible para tareas más complejas como Espejo RHEL del pobre hombre o la Función de Ansible para la gestión de parches de RHEL.

    Hoy, Ansible me ahorra mucho tiempo y me apoya bastante bien en mis tareas diarias. ¿Entonces, Qué esperas? Pruébalo, úsalo y siéntete un poco más cómodo en el trabajo.

    Artículos de interés

    Subir