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.

