Cómo instalar paquetes de software con un playbook de Ansible

Ansible es una herramienta de automatización popular utilizada por los administradores y desarrolladores de sistemas para poner los ordenadores en un estado específico. Los módulos de Ansible son, en cierto modo, lo que son los comandos para un ordenador con Linux. Brindan soluciones a problemas específicos, y una tarea común en el mantenimiento de ordenadores es mantenerlas actualizadas y consistentes. En este artículo, le muestro cómo instalar paquetes de software con Ansible.

Índice

Requisitos

Para ejecutar los libros de jugadas y los comandos ad hoc de Ansible en los nodos administrados, se requiere un usuario remoto con acceso SSH. Para este ejemplo, llamaré a este usuario. Tux necesita permiso para ejecutar comandos con privilegios elevados para instalar paquetes. Por eso el archivo /etc/sudoers.d/tux con el siguiente contenido debe existir en todos los nodos administrados:

tux ALL=(ALL) NOPASSWD:ALL

Usar visudo para modificar el /etc/sudoers entradas de archivo.

Instalación del paquete

Supongamos que encuentra un nuevo paquete genial llamado sysstat que ahora desea instalar en todos sus hosts a la vez. Es un trabajo fácil para Ansible:

$ ansible all --user tux --become 
--module-name dnf -a’name=sysstat state=latest’

Y ya está.

Esta línea se denomina comando ad hoc de Ansible. Por lo general, estas son tareas únicas que no espera repetir. Sin embargo, en aras de la reutilización, es mejor incluir dichas instrucciones en un libro de jugadas de Ansible, como este:

---
- hosts: all
  tasks:
  - name: Make sure the current version of ‘sysstat’ is installed.
    dnf:
      name: sysstat
      state: latest

Guarde este libro de jugadas en un archivo llamado install_packages.yml, entonces puedes ejecutarlo con el siguiente comando:

$ ansible-playbook -u tux -b install_packages.yml

Puedes ponerlo en un calendario con cron, asegurándose de que el paquete deseado esté instalado y reinstalado si alguien lo elimina.

Instalar varios paquetes

¿Qué pasaría si quisiera instalar una lista de paquetes en todos sus hosts? También es fácil:

---
- hosts: all
  tasks:
  - name: Package installation
    dnf:
      name:
        - sysstat
        - httpd
        - mariadb-server
      state: latest

Ejecute el libro de jugadas:

$ ansible-playbook -u tux -b install_packages.yml

Estoy seguro de que entiendes la idea. ¿Necesitas más paquetes? Solo agrégalos a la lista.

Concluir

Administrar software con Ansible es bastante sencillo. Puede usar el módulo DNF para administrar la instalación real y un libro de jugadas de Ansible basado en YAML para distribuir las instrucciones de instalación a sus nodos administrados. Este es otro gran ejemplo de cómo Ansible facilita la vida de los administradores de sistemas que administran muchos sistemas.

Artículos de interés

Subir