0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
Logo de Maxi Zamorano

Automatizar actualizaciones de servidores con Ansible

  Linux
21:42 hrs   233
Automatizar actualizaciones de servidores con Ansible

Mantener múltiples servidores actualizados puede ser una tarea compleja o repetitiva, especialmente cuando trabajas con diferentes sistemas operativos como RedHat y Ubuntu. Afortunadamente, Ansible, una herramienta de automatización ligera y potente te puede ayudar a simplificar este proceso. A continuación, te mostraré cómo puedes gestionar actualizaciones en grupos de servidores Linux de manera sencilla y eficiente.

Tabla de contenidos

¿Qué es Ansible y por qué usarlo?

Ansible es una herramienta de automatización open source que permite configurar y gestionar servidores sin necesidad de instalar agentes en ellos. Funciona mediante SSH, lo que lo hace ideal para mantener servidores con diferentes sistemas operativos.

Al usar Ansible para gestionar actualizaciones podrás:

  • Ahorrar tiempo al automatizar procesos repetitivos.
  • Reducir errores al ejecutar tareas de forma regular..
  • Centralizar la gestión de múltiples servidores.

Configuración inicial de Ansible

Antes de comenzar, asegúrate de tener instalado Ansible en tu sistema principal de control. Si aún no lo tienes, instálalo según el sistema principal que tengas.

Instalación en RHEL/CentOS

Si tu sistema principal está basado en RedHat ejecuta:

  
    sudo dnf install ansible
  

Instalación en Debian/Ubuntu

Si tu sistema principal es Debian o un derivado como Ubuntu ejecuta:

  
    sudo apt install ansible
  

Configurar archivo de inventario

Crea y configura tu archivo de inventario, puede ser cualquier nombre como inventario.ini, aquí especificarás los servidores, utiliza un nombre descriptivo, por ejemplo si tienes varios servidores con RedHat, Ubuntu, etc. de esa forma tendrás una mejor organización:

  
[servidores_redhat]
192.168.1.101
192.168.1.102
192.168.1.103

[servidores_ubuntu]
192.168.2.101
192.168.2.102
192.168.2.103

Playbooks de Ansible para gestionar las Actualizaciones

Un Playbook es un archivo YAML donde defines tareas automatizadas. Para este caso podemos crear dos playbooks, uno para servidores RedHat y otro para Ubuntu, o bien, podemos crear un solo archivo para los 2 grupos de servidores, depende de cual te acomode más, a continuación te mostraré unos ejemplos:

Playbook para actualizar servidores RedHat

Crea un archivo playbook_redhat.yml (o algun otro nombre que quieras) para las actualizaciones de servidores basados en RedHat y agrega lo siguiente:

  
    - hosts: servidores_redhat
      become: yes
      tasks:
        - name: Actualizar paquetes en RedHat
          yum:
            name: '*'
            state: latest
  

Playbook para actualizar servidores Ubuntu

Crea un archivo playbook_ubuntu.yml (o algun otro nombre que quieras) para las actualizaciones de servidores basados en Debian como Ubuntu y agrega lo siguiente:

  
    - hosts: servidores_ubuntu
      become: yes
      tasks:
        - name: Actualizar paquetes en Ubuntu
          apt:
            update_cache: yes
            upgrade: dist
  

Playbook para actualizar ambos grupos de servidores

Crea un archivo playbook_redhat_ubuntu.yml (o algun otro nombre que quieras) para actualizar ambos grupos de servidores, esto detecta el tipo de sistema y ejecuta las tareas correspondientes:

  
    - name: Actualizar servidores
      hosts: all
      become: true
      tasks:
        - name: Detectar sistema operativo
          setup:
        
        - name: Actualizar servidores Ubuntu
          apt:
            update_cache: yes
            upgrade: dist
            autoremove: yes
          when: ansible_facts['os_family'] == "Debian"
    
        - name: Actualizar servidores RedHat
          yum:
            name: "*"
            state: latest
          when: ansible_facts['os_family'] == "RedHat"
  

Ejecución de los Playbooks

Verificar la sintaxis

Para verificar si el archivo es correcto puedes verificar la sintaxis del Playbook sin ejecutarlo, para eso deber usar la opción --syntax-check:

  
    ansible-playbook playbook_redhat.yml --syntax-check
  

Ejecutar Playbook como una simulación

Usa la opción --check para ejecutar el Playbook como una simulación, evaluando las tareas y mostrando qué cambios se realizarían sin aplicarlos realmente:

  
    ansible-playbook -i inventario.ini playbook_redhat.yml --check
  

Ejecutar Playbook

Para ejecutar un playbook, usa el comando:

  
    ansible-playbook -i inventario.ini playbook_redhat.yml
  

Luego de ejecutar el o los playbooks correctamente habrás podido automatizar correctamente las actualizaciones de tus servidores.

Conclusión

Ansible es una herramienta extremadamente útil que te permitirá gestionar cualquier tipo de automatización que necesites como las actualizaciones de tus servidores de forma segura. Con una correcta configuración podrás ahorrar tiempo, minimizar errores y mantener tu infraestructura siempre al día.

COMENTARIOS

Mis Perfiles en:

 Maximiliano Zamorano
Ingeniero en Conectividad y Redes
 [email protected]