Boost Academy
FormaciónEvaluacionesPerfil
Volver
  • En directo

Ansible — Intermedio

10h de clase en directo·HACK A BOSS·Español

Skills que aprenderás

  • ansible

Convocatorias

Necesitas un plan activo

Para acceder a los cursos en directo necesitas un plan activo. Estamos trabajando para que los planes estén disponibles pronto — ¡mantente atento!

No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una convocatoria.

Descripción

Objetivos

Temario

Requisitos técnicos

Conocimientos previos

Detalles de la convocatoria

Recursos

No hay recursos disponibles todavía para esta convocatoria

Este curso está dirigido a profesionales que ya dominan los fundamentos de Ansible y necesitan dar el salto hacia proyectos de automatización más complejos y mantenibles en entornos reales. A lo largo de las 10 horas, el alumno aprenderá a estructurar proyectos con roles y variables jerarquizadas, a gestionar múltiples entornos (dev / staging / prod) con estrategias de variables bien fundamentadas, a generar ficheros de configuración dinámicos mediante plantillas Jinja2 y a proteger secretos con Ansible Vault, terminando con las técnicas de depuración que permiten identificar y corregir fallos de ejecución e idempotencia sin recurrir a modificaciones a ciegas; al finalizar, el alumno será capaz de entregar un proyecto Ansible modular, seguro y libre de comportamientos no deterministas que pueda integrarse en un flujo de trabajo colaborativo.

  1. Diseñar la estructura de un proyecto Ansible con roles, variables de grupo y variables de host, justificando la separación de responsabilidades entre sus componentes.
  2. Comparar las distintas fuentes de variables disponibles en Ansible y seleccionar la estrategia óptima ante un escenario real con múltiples entornos diferenciados.
  3. Diseñar plantillas Jinja2 que produzcan ficheros de configuración dinámicos a partir de variables de inventario, aplicando filtros y estructuras condicionales.
  4. Adaptar un playbook para que opere correctamente en distribuciones Linux heterogéneas mediante condicionales basados en hechos del sistema, sin duplicar tareas.
  5. Integrar roles externos de Ansible Galaxy o colecciones de comunidad en un proyecto propio, personalizando sus variables para el entorno objetivo.
  6. Integrar Ansible Vault en un proyecto multi-entorno de forma que ningún secreto quede almacenado en texto plano en el repositorio.
  7. Depurar playbooks con fallos de ejecución y problemas de idempotencia utilizando las herramientas nativas de Ansible, identificando la causa raíz y aplicando la corrección adecuada.
  8. Justificar, ante un requisito concreto, la decisión de implementar una funcionalidad como tarea inline o encapsularla en un rol dedicado, aplicando criterios de reusabilidad, complejidad y tamaño del proyecto.

Bloque 1 — Arquitectura de proyectos con roles y variables jerarquizadas El bloque abre con el diseño de la estructura de directorios de un proyecto Ansible profesional: cómo organizar roles con sus propios defaults, tasks, handlers y templates, y cómo complementar esa estructura con group_vars y host_vars para separar claramente las responsabilidades de cada componente. A continuación se aborda la gestión de variables en profundidad: se contrastan vars_files, group_vars y extra_vars ante escenarios reales con entornos dev, staging y producción, de modo que el alumno pueda justificar de forma razonada qué mecanismo emplear en cada caso. El bloque cierra con los criterios que determinan cuándo una funcionalidad merece encapsularse en un rol dedicado frente a mantenerse como tarea inline, integrando los conceptos de reusabilidad y coste de mantenimiento.

Bloque 2 — Configuración dinámica y portabilidad entre distribuciones Este bloque cubre la generación de ficheros de configuración mediante plantillas Jinja2 que consumen variables de inventario, incluyendo el uso de filtros integrados y estructuras condicionales para producir salidas adaptadas al contexto de cada host. Sobre esa base se trabaja la portabilidad: se parte de un playbook funcional en una distribución Linux y se adapta para que opere también en una segunda distribución diferente —por ejemplo, Debian frente a RHEL— usando condicionales when alimentados por ansible_facts, evitando la duplicación de tareas mediante una organización lógica de las condiciones.

Bloque 3 — Reutilización con Galaxy y protección de secretos con Vault El alumno aprende a localizar, instalar y consumir roles y colecciones publicados en Ansible Galaxy, adaptando sus variables por defecto a los requisitos del entorno de destino sin modificar el código fuente original. A continuación se introduce Ansible Vault como mecanismo para cifrar variables sensibles —contraseñas, tokens y claves API— y se diseña un flujo de trabajo que garantiza que ningún secreto permanece en texto plano en el repositorio, incluso cuando el proyecto abarca múltiples entornos con ficheros de variables distintos.

Bloque 4 — Depuración, idempotencia y toma de decisiones de diseño El bloque final consolida las habilidades de diagnóstico: se trabaja con las opciones --check y --diff y con el módulo debug para reproducir y aislar fallos de ejecución sin alterar el sistema real. Se dedica atención específica a los problemas de idempotencia —playbooks que reportan changed en ejecuciones sucesivas sin que el sistema haya cambiado— analizando qué módulo o tarea genera el falso positivo y aplicando la corrección correcta. El bloque, y el curso, concluyen con un ejercicio integrador en el que el alumno toma y argumenta decisiones de diseño sobre un proyecto completo, poniendo en práctica todos los criterios adquiridos.

  • Máquina de control con Ansible ≥ 2.15 instalado (Linux o macOS; en Windows se recomienda WSL 2).
  • Python ≥ 3.10 disponible en la máquina de control.
  • Acceso a un mínimo de dos nodos gestionados (máquinas virtuales o contenedores) con distribuciones distintas —una basada en Debian y otra en RHEL— alcanzables por SSH sin contraseña (clave pública configurada).
  • Cliente ansible-galaxy incluido en la instalación estándar de Ansible.
  • Acceso a internet desde la máquina de control para descargar colecciones y roles de Ansible Galaxy.
  • Editor de código con soporte YAML y Jinja2 (se recomienda VS Code con la extensión Ansible oficial).
  • Git ≥ 2.40 instalado y repositorio local configurado para prácticas de Vault.
  • Mínimo 4 GB de RAM y 10 GB de disco libre si los nodos gestionados se ejecutan en local (VirtualBox, VMware o similar).
  • Manejo fluido de playbooks, inventarios y módulos básicos de Ansible (equivalente al curso ANS201).
  • Experiencia básica con la línea de comandos Linux: navegación de sistema de ficheros, permisos y edición de ficheros de texto.
  • Conocimiento elemental de YAML: indentación, listas y diccionarios.
  • Noción básica de control de versiones con Git (commits, ramas y repositorios remotos).
  • Familiaridad con al menos una distribución Linux (Debian/Ubuntu o RHEL/CentOS) como sistema gestionado.