Guía práctica de cero a cien para instalar Ansible, organizar archivos de inventario, redactar su primer playbook en YAML y orquestar tareas en servidores.
🔗 Related: Hoja de trucos básica de Ansible · Hoja de trucos de roles de Ansible · Ejemplos de Ansible Playbooks
Instalación
# macOS (Homebrew)
brew install ansible
# Ubuntu / Debian
sudo apt update && sudo apt install -y ansible
# Python Pip (Universal)
pip install ansible
Ver: Documentación oficial de instalación de Ansible: Ansible Installation Docs
Configuración del proyecto
mkdir -p ~/ansible-setup
cd ~/ansible-setup
Cree un directorio de trabajo dedicado para su inventario, playbooks y definiciones de variables.
Archivos de configuración
Archivo de inventario (Inventory)
hosts
[webservers]
192.168.0.10
192.168.0.11
[databases]
192.168.0.20
[local]
localhost ansible_connection=local
Los inventarios definen nodos de destino agrupados lógicamente. Puede apuntar a localhost con ansible_connection=local para probar la automatización localmente sin SSH.
Ver: Guía de creación de inventarios en Ansible: Ansible How to build your inventory
Definición del Playbook
playbook.yml
---
- name: Basic Server Provisioning
hosts: webservers
become: true
tasks:
- name: Update apt package cache
apt:
update_cache: yes
cache_valid_time: 3600
- name: Ensure Nginx is installed
apt:
name: nginx
state: present
- name: Start Nginx and enable on boot
service:
name: nginx
state: started
enabled: yes
- name: Create hello world banner
shell: echo "Managed by Ansible" > /tmp/motd.txt
Ejecución
Validación y ejecución
Verificar la conectividad mediante un ping ad-hoc:
ansible -i hosts all -m ping
Ejecutar el playbook completo con el inventario configurado:
ansible-playbook -i hosts playbook.yml
Ejecución de prueba (Modo Check)
Previsualizar cambios potenciales sin aplicarlos directamente en los nodos remotos:
ansible-playbook -i hosts playbook.yml --check --diff