Introducción
Este tutorial te guiará a través del proceso de instalación de Ansible, una potente herramienta de automatización de TI de código abierto, en el sistema operativo Ubuntu. Aprenderás a configurar Ansible y ejecutar libros de jugadas de Ansible para optimizar tus tareas de gestión de infraestructura.
Entendiendo Ansible
Ansible es una herramienta de código abierto para aprovisionamiento de software, gestión de configuración y despliegue de aplicaciones. Está diseñada para ser simple, potente y sin agentes, lo que permite a los usuarios gestionar y configurar múltiples sistemas remotos simultáneamente.
¿Qué es Ansible?
Ansible es una potente herramienta de automatización que te permite gestionar tu infraestructura, aplicaciones y servicios de forma declarativa e idempotente. Utiliza un lenguaje simple y legible llamado YAML para definir el estado deseado de tus sistemas y, a continuación, ejecuta las tareas necesarias para alcanzar ese estado.
Características Clave de Ansible
- Sin agentes (Agentless): Ansible no requiere ningún software o agente especial instalado en los sistemas remotos. Utiliza SSH (o Windows Remote Management) para comunicarse con los sistemas de destino.
- Enfoque Declarativo: Ansible utiliza un enfoque declarativo, donde defines el estado deseado de tus sistemas y Ansible se encarga de los pasos necesarios para alcanzar ese estado.
- Idempotencia: Las tareas de Ansible están diseñadas para ser idempotentes, lo que significa que se pueden ejecutar varias veces sin causar cambios no deseados.
- Diseño Modular: Ansible tiene un diseño modular, con una amplia gama de módulos incorporados que se pueden utilizar para realizar diversas tareas, como la gestión de archivos, la instalación de paquetes o la interacción con servicios en la nube.
- Simple y Legible: El lenguaje basado en YAML de Ansible está diseñado para ser simple y fácil de leer, lo que lo hace accesible tanto para desarrolladores como para administradores de sistemas.
Casos de Uso de Ansible
Ansible se puede utilizar para una amplia gama de tareas, incluyendo:
- Aprovisionamiento de infraestructura
- Gestión de configuración
- Despliegue de aplicaciones
- Orquestación
- Seguridad y cumplimiento
- Integración Continua/Despliegue Continuo (CI/CD)
Arquitectura de Ansible
Ansible utiliza una arquitectura cliente-servidor, donde el nodo de control de Ansible (el sistema donde está instalado Ansible) se comunica con los sistemas de destino remotos (los sistemas que deseas gestionar) a través de SSH o Windows Remote Management.
graph TD
A[Nodo de Control de Ansible] -- SSH/WinRM --> B[Sistema de Destino 1]
A -- SSH/WinRM --> C[Sistema de Destino 2]
A -- SSH/WinRM --> D[Sistema de Destino 3]
El nodo de control de Ansible ejecuta las tareas necesarias en los sistemas de destino, y los sistemas de destino comunican los resultados de vuelta al nodo de control.
Instalación de Ansible en Ubuntu
Requisitos previos
Antes de instalar Ansible, asegúrate de tener los siguientes requisitos previos:
- Sistema Ubuntu 22.04 LTS
- Python 3 instalado
- Privilegios de sudo o root
Instalar Ansible
- Actualiza el índice de paquetes:
sudo apt update
- Instala los paquetes necesarios:
sudo apt install software-properties-common
- Agrega el PPA (Archivo Personal de Paquetes) de Ansible a la lista de fuentes de tu sistema:
sudo add-apt-repository --yes --update ppa:ansible/ansible
- Instala Ansible:
sudo apt install ansible
- Verifica la instalación:
ansible --version
Debes ver la información de la versión de Ansible.
Configurar Ansible
- Crea un archivo de inventario de Ansible:
sudo nano /etc/ansible/hosts
Agrega los hosts de destino al archivo de inventario, por ejemplo:
[webservers]
192.168.1.100
192.168.1.101
[databases]
192.168.1.200
192.168.1.201
- Crea un archivo de configuración de Ansible:
sudo nano /etc/ansible/ansible.cfg
Agrega las opciones de configuración deseadas, por ejemplo:
[defaults]
inventory = /etc/ansible/hosts
remote_user = ubuntu
- Prueba la conexión de Ansible:
ansible all -m ping
Este comando enviará un ping a todos los hosts en el archivo de inventario y verificará la conexión.
Ahora has instalado Ansible correctamente en tu sistema Ubuntu 22.04 y lo has configurado para gestionar tus hosts de destino.
Ejecutando Playbooks de Ansible
¿Qué es un Playbook de Ansible?
Un Playbook de Ansible es un archivo con formato YAML que define el estado deseado de tu infraestructura o aplicación. Contiene una colección de tareas que se ejecutan en un orden específico para lograr el estado deseado.
Anatomía de un Playbook de Ansible
Un Playbook básico de Ansible consta de los siguientes elementos:
- Hosts: Los hosts o grupos de destino en los que se ejecutará el playbook.
- Tasks: Las acciones que Ansible realizará en los hosts de destino.
- Variables: Valores que se pueden usar en todo el playbook.
- Handlers: Tareas que se activan por otras tareas.
Aquí hay un ejemplo de un Playbook de Ansible que instala el servidor web Apache en un grupo de hosts Ubuntu:
- hosts: webservers
tasks:
- name: Instalar Apache
apt:
name: apache2
state: present
- name: Iniciar Apache
service:
name: apache2
state: started
enabled: yes
Ejecutando un Playbook de Ansible
Para ejecutar un Playbook de Ansible, sigue estos pasos:
- Guarda el playbook en un archivo, por ejemplo,
apache.yml. - Ejecuta el playbook usando el comando
ansible-playbook:
ansible-playbook apache.yml
Esto ejecutará las tareas definidas en el playbook en los hosts de destino.
Opciones de Ejecución de Playbook
Puedes personalizar la ejecución del playbook usando varias opciones, como:
- Limit: Ejecutar el playbook en un host o grupo específico.
ansible-playbook apache.yml -l webservers - Check: Realizar una prueba de ejecución para ver qué cambios se realizarían.
ansible-playbook apache.yml --check - Become: Ejecutar el playbook con privilegios elevados.
ansible-playbook apache.yml --become
Al comprender y utilizar los Playbooks de Ansible, puedes automatizar fácilmente el despliegue y la configuración de tu infraestructura y aplicaciones en sistemas Ubuntu.
Resumen
Al finalizar este tutorial, tendrás una comprensión sólida de Ansible y sus capacidades, así como el conocimiento para instalar Ansible en tu sistema Ubuntu y comenzar a automatizar las tareas de gestión de tu infraestructura utilizando playbooks de Ansible.


