Ansible: Automatizando la Infraestructura de TI

Última actualización: 29/08/2023

Ansible es una poderosa herramienta de automatización que simplifica la gestión de la infraestructura de TI. Permite a los profesionales de TI automatizar tareas repetitivas, mejorar la eficiencia y garantizar la consistencia en el entorno de TI.

Introducción a Ansible

¿Qué es Ansible?

Ansible es una herramienta de automatización de código abierto que permite a los profesionales de TI automatizar la provisión, configuración y gestión de la infraestructura de TI.

Desarrollado por Red Hat, simplifica la tarea compleja de administrar la infraestructura al proporcionar un lenguaje declarativo y una arquitectura sin agentes.

Beneficios de Usar Ansible

El uso de Ansible ofrece varios beneficios significativos para los equipos de tecnología e infraestructura. Estos incluyen:

  1. Simplicidad: Utiliza una sintaxis legible y fácil de entender, lo que facilita la creación y mantenimiento de scripts de automatización.
  2. Escalabilidad: Es una herramienta altamente escalable y puede administrar desde una única máquina hasta miles de nodos de manera eficiente.
  3. Reutilización de código: Los Playbooks permiten reutilizar el código para automatizar tareas comunes en diferentes entornos.
  4. Agentless (sin agentes): Ansible utiliza una arquitectura sin agentes, lo que significa que no es necesario instalar software adicional en los nodos gestionados, al contrario que ocurre con otras soluciones como .
  5. Orquestación: Permite orquestar y coordinar tareas complejas y secuencias de comandos en múltiples servidores de forma sencilla.

Playbooks y Módulos

Los Playbooks son archivos escritos en formato YAML que describen las tareas y la configuración que Ansible debe aplicar en los nodos gestionados. Los módulos son componentes (escritos en Python) que permiten ejecutar acciones específicas, como instalar paquetes, crear usuarios, configurar servicios, entre otros.

Los Playbooks permiten definir de manera estructurada y legible las tareas que se ejecutarán en los nodos gestionados. Es posible utilizar variables, plantillas, condiciones y bucles para personalizar el flujo de ejecución y adaptarlo a diferentes escenarios.

Para comenzar a utilizar Ansible, primero debemos instalarlo en nuestro sistema. A continuación, configuraremos la conexión con los nodos gestionados y estableceremos la autenticación necesaria para realizar las tareas de automatización.

Inventario y Hosts de Ansible

El inventario de Ansible es un archivo donde se definen los nodos gestionados y se agrupan según criterios específicos. Los hosts representan los nodos individuales y se les asignan variables que determinan su configuración y comportamiento durante la ejecución de los Playbooks.

Ejemplo con Ansible

A continuación tienes un ejemplo básico de un playbook de Ansible que instala un paquete en servidores remotos:

---
- name: Instalar Apache en servidores
  hosts: servidores_web
  become: yes

  tasks:
    - name: Actualizar lista de paquetes
      apt:
        update_cache: yes
      become: yes

    - name: Instalar Apache
      apt:
        name: apache2
        state: present
      become: yes

En nuestro ejemplo:

  • name: Define el nombre del playbook.
  • hosts: Especifica en qué servidores se ejecutará el playbook (debes definir estos nombres en tu archivo de inventario).
  • become: Indica que el usuario que ejecuta las tareas debe cambiar a superusuario (root) para poder instalar paquetes.
  • tasks: Contiene una lista de tareas que se ejecutarán en los servidores especificados.

Las tareas realizadas en este playbook son:

  1. Actualizar la lista de paquetes (apt-get update).
  2. Instalar el paquete Apache2.

Ansible Tower

Ansible Tower es una interfaz web y una plataforma centralizada para administrar y escalar Ansible. Proporciona características adicionales, como programación de tareas, control de acceso basado en roles y un tablero de control visual.

Características Clave de Ansible Tower:

  1. Programación de Tareas: Ansible Tower permite programar tareas de automatización en un horario específico o desencadenarlas en respuesta a eventos.
  2. Control de Acceso: La plataforma ofrece control de acceso basado en roles, lo que significa que puedes asignar permisos y roles específicos a los usuarios y equipos. De esta foorma garantiza que solo las personas autorizadas puedan realizar cambios en la infraestructura.
  3. Panel de Control: Proporciona un panel de control visual que muestra el estado de las tareas de automatización y la salud general de la infraestructura, con lo que podemos garantizar una supervisión constante y una respuesta rápida a problemas potenciales.
  4. Registro y Auditoría: Ansible Tower registra todas las actividades de automatización, lo que permite la auditoría y la resolución de problemas retrospectivos.
  5. Gestión de Inventario: Permite definir y organizar el inventario de los sistemas que se automatizarán que facilita la gestión de grandes entornos con múltiples nodos.
  6. Plantillas y Flujo de Trabajo: Ansible Tower permite crear plantillas reutilizables para tareas comunes, lo que agiliza la implementación y garantiza la coherencia en todo el entorno.
  7. Notificaciones y Alertas: Puede configurar notificaciones y alertas para mantenerse informado sobre el estado de las tareas de automatización y cualquier problema que pueda surgir.

Mejores cursos para Aprender Ansible

A continuación tienen dos cursos para continuar aprendiendo Ansible, una herramienta muy potente para poder automatizar de forma profesional la infraestructura.

Dominando la automatización con Ansible

Curso Introduccion Ansible

Aprende las claves para dominar rápidamente la automatización con Ansible. Aunque este curso está diseñado para alumnos con poca experiencia en programación, es útil (no obligatorio) estar familiarizado con Linux, la interfaz de línea de comandos y los conceptos básicos de shell scripting.

Las tareas contienen breves explicaciones con imágenes y ejemplos de código ejecutables con sugerencias de edición para explorar más a fondo los ejemplos de código. Hay evaluaciones periódicas y ejercicios de codificación accesibles.

Curso de Ansible: Automatización de principiante a experto

Curso Ansible Español

Este curso disponible en Español en la plataforma de formación online Udemy va desde lo más básico hasta elementos avanzados, facilitando el aprendizaje de todas las personas que quieran aprender a utilizar esta tecnología. Cubre desde la instalación, configuración y el uso de Ansible y Ansible Tower, la interfaz web para administrar trabajos y playbooks.

Preguntas Frecuentes – FAQ

¿Cuál es la diferencia entre Ansible y Ansible Tower?

Ansible es la herramienta central de automatización, mientras que Ansible Tower es una plataforma de gestión de automatización basada en interfaz gráfica. Tower agrega características como programación de tareas, control de acceso, registro y tableros de control para facilitar la administración de automatización a gran escala.

¿Cómo se comunican los nodos controladores y los nodos gestionados en Ansible?

Ansible se basa en una arquitectura de comunicación SSH (Secure Shell). El nodo controlador (donde se ejecutan los Playbooks) se comunica de forma segura con los nodos gestionados (los sistemas que se automatizan) a través de conexiones SSH.

¿Cómo funciona la ejecución de tareas en Ansible?

Ansible ejecuta tareas en nodos gestionados utilizando módulos. Los módulos son programas pequeños escritos en Python que se ejecutan en los nodos gestionados para realizar tareas específicas, como instalar software, gestionar archivos o configurar servicios.

¿Cómo se definen las variables en Ansible?

Las variables en Ansible se pueden definir en diferentes niveles. Pueden estar en Playbooks, en archivos de variables o en inventarios. Las variables permiten personalizar y parametrizar las tareas, lo que hace que los Playbooks sean más flexibles y reutilizables.

Deja una respuesta