LinuxParty

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado
 

Ansible es una potente herramienta de automatización IT de código abierto que permite gestionar servidores, desplegar aplicaciones, orquestar tareas complejas y mantener la configuración de sistemas de forma sencilla, segura y repetible. Su principal ventaja radica en que no requiere agentes en los nodos y utiliza SSH para la comunicación. En este artículo aprenderás cómo instalar, configurar y desplegar tus primeros playbooks en Linux de manera clara y efectiva.

Lectruras recomendadas:

1. Automatización Efectiva con Ansible: Simplificando la Gestión de Infraestructuras 

2. Cómo instalar y configurar Ansible en CentOS, RedHat, AlmaLinux y Fedora 

3. Automatización con Ansible en Linux

Con Ansible, puedes reducir drásticamente el tiempo que dedicas a tareas repetitivas en múltiples sistemas. Desde pequeñas instalaciones hasta grandes despliegues multi-nodo, esta herramienta te permite llevar tu administración de sistemas Linux a otro nivel. ¿Qué esperas para automatiza.

¿Qué es Ansible y por qué usarlo?

Ansible está diseñado para automatizar tareas repetitivas en múltiples servidores: instalación de paquetes, gestión de usuarios, despliegue de código, configuración de servicios, etc. Todo esto lo realiza mediante:

  • Archivos YAML legibles (Playbooks).
  • SSH para conectarse a los hosts gestionados.
  • Módulos reutilizables.
  • Un control centralizado desde el nodo de administración.

💡 Ansible es idempotente, es decir, puedes ejecutar el mismo playbook una y otra vez, y solo aplicará cambios si es necesario.

1️⃣ Instalación de Ansible en Linux

Para Debian, Ubuntu y derivados:

sudo apt update
sudo apt install -y ansible

Para RHEL, AlmaLinux, Rocky Linux y CentOS:

sudo dnf install -y epel-release
sudo dnf install -y ansible

📝 En RHEL 9 y derivados puedes instalar desde AppStream o usar pip.

Alternativa universal con pip:

python3 -m pip install --user ansible

Verifica la instalación:

ansible --version

2️⃣ Estructura básica de Ansible

Una configuración mínima necesita:

  • Un archivo hosts (inventario) con las IPs o FQDNs de tus servidores.
  • Un playbook.yml con las tareas a ejecutar.
  • Claves SSH válidas para conectarte sin contraseña a los nodos.

Ejemplo de inventario simple (/etc/ansible/hosts o inventario.ini):

[web]
192.168.1.10

[db]
192.168.1.20 ansible_user=root

3️⃣ Primera prueba: módulo ping

ansible all -i inventario.ini -m ping

Si ves respuestas como:

192.168.1.10 | SUCCESS => {"ping": "pong"}

¡Ya estás listo para automatizar!

4️⃣ Tu primer Playbook

Creamos un archivo instalar_apache.yml para instalar Apache en servidores del grupo [web]:

---
- name: Instalar Apache en servidores web
  hosts: web
  become: yes
  tasks:
    - name: Instalar paquete Apache
      ansible.builtin.package:
        name: apache2
        state: present

    - name: Iniciar y habilitar servicio Apache
      ansible.builtin.service:
        name: apache2
        state: started
        enabled: yes

Ejecútalo con:

ansible-playbook -i inventario.ini instalar_apache.yml

5️⃣ Variables y roles: escalando tus proyectos

Ejemplo de variables por host:

[web]
192.168.1.10 ansible_user=ubuntu apache_port=8080

Y en el playbook:

- name: Personalizar puerto de Apache
  hosts: web
  become: yes
  tasks:
    - name: Modificar puerto en apache2.conf
      lineinfile:
        path: /etc/apache2/ports.conf
        regexp: '^Listen '
        line: "Listen {{ apache_port }}"

Cuando escales tu infraestructura, es recomendable usar roles, que organizan los playbooks, handlers, plantillas y tareas en carpetas estructuradas (roles/webserver/tasks/main.yml, etc).

6️⃣ Automatizaciones útiles con Ansible

Aquí tienes algunos ejemplos que puedes aplicar en tus servidores:

  • 🔐 Añadir usuarios con claves SSH.
  • 📦 Instalar y configurar Docker.
  • 📁 Montar y sincronizar unidades NFS.
  • 🌐 Desplegar sitios web desde Git.
  • 🔄 Reiniciar servicios tras cambios de configuración.
  • 📊 Configurar Prometheus + Node Exporter.

7️⃣ Seguridad y buenas prácticas

  • Usa ansible-vault para cifrar contraseñas o secretos sensibles.
  • Emplea --check para ver qué cambios se harían (modo dry-run).
  • Usa become: yes en lugar de sudo directo.
  • Agrupa hosts por roles: [webservers], [dbservers], [monitoring], etc.

Recursos y documentación adicional

No estás registrado para postear comentarios



Redes:



   

 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Filtro por Categorías