LinuxParty
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 desudo
directo. - Agrupa hosts por roles:
[webservers]
,[dbservers]
,[monitoring]
, etc.
Recursos y documentación adicional
- 📘 Documentación oficial: https://docs.ansible.com
- 📚 Libros recomendados:
- Ansible for DevOps – Jeff Geerling
- Infrastructure as Code – Kief Morris
- 🐙 Repositorios Git útiles:

-
Ubuntu
- Brainstorm, un punto de encuentro para los usuarios de Ubuntu
- La contribución de Canonical a Linux
- Cómo configurar un túnel IPv6 en Ubuntu.
- Ubuntu 9.04 arranca en 21 segundos con ext4
- La vida secreta de los usuarios de Ubuntu y Debian
- Crear un Pendrive USB Live, con Ubuntu.
- KVM Guest Management con Virt-Manager en Ubuntu 8.10
- Ubuntu 9.10 se llamará Karmic Koala
- Ubuntu 9.04 Release Candidate disponible
- Administración de varios Hosts KVM Con Enomalism2 [Ubuntu 8.10]
- El Escritorio Perfecto - Ubuntu 9.04 (Jaunty Jackalope)
- The Perfect Server - Ubuntu Jaunty Jackalope (Ubuntu 9.04) [ISPConfig 2]