Boost Academy
FormaciónEvaluacionesPerfil
Volver
  • En directo

Ansible — Avanzado

8h 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

Dirigido a profesionales que ya dominan el uso intermedio de Ansible y necesitan dar el salto a su uso en entornos productivos de alta exigencia, este curso aborda los patrones de diseño, las técnicas de optimización y las integraciones externas que distinguen una automatización robusta de una meramente funcional. A lo largo de ocho horas, el participante aprenderá a construir colecciones reutilizables alineadas con los estándares de Ansible Galaxy, a diseñar estrategias de despliegue zero-downtime sobre entornos multi-nodo, a integrar gestores de secretos externos para eliminar credenciales en texto plano, y a establecer pipelines de testing con Molecule que validen la infraestructura de forma automatizada. Al finalizar, el participante será capaz de tomar decisiones arquitectónicas justificadas sobre cuándo y cómo usar Ansible en un contexto productivo real, respaldadas por evidencia técnica y criterios de mantenibilidad a largo plazo.

Al finalizar el curso, el participante será capaz de:

  1. Explicar los principios que diferencian una colección Ansible bien estructurada de un conjunto de roles sueltos, identificando los estándares de Ansible Galaxy que permiten su consumo por equipos distintos sin modificación interna.
  2. Describir los mecanismos de inventario dinámico multi-fuente y los criterios de configuración de caché que posibilitan la segmentación automática de hosts por entorno, región y rol.
  3. Aplicar al menos tres técnicas de optimización de rendimiento —como pipelining, async/poll, ajuste de forks, mitogen o fact caching— sobre un conjunto de playbooks existentes, verificando y justificando la reducción de tiempo de ejecución obtenida.
  4. Construir un pipeline de testing de infraestructura con Molecule que configure al menos dos escenarios —Docker y una plataforma cloud o VM— y valide idempotencia, convergencia y estado final de forma automatizada en un entorno de CI.
  5. Diseñar una estrategia de despliegue rolling update o blue-green sobre un entorno multi-nodo que garantice zero-downtime mediante construcciones nativas de Ansible (serial, delegate_to, run_once y health checks).
  6. Automatizar la gestión de secretos en un pipeline productivo integrando Ansible con HashiCorp Vault o AWS Secrets Manager, separando los secretos por entorno y eliminando el uso de contraseñas en texto plano.
  7. Anticipar y corregir problemas de drift e idempotencia en un entorno productivo degradado, usando --check, --diff y registros de cambio para comparar el estado real frente al declarado antes de aplicar cualquier cambio destructivo.
  8. Evaluar críticamente la viabilidad de Ansible frente a Terraform u otras herramientas IaC para un caso de uso concreto, argumentando trade-offs de idempotencia, estado, escalabilidad y mantenibilidad y defendiendo la decisión ante escenarios de contraejemplo.

Bloque 1 — Colecciones y arquitectura de código reutilizable El curso arranca revisando qué separa una colección Ansible madura de un repositorio de roles ad hoc. Se estudia la estructura de directorios exigida por Ansible Galaxy, la convención de nombrado de namespaces, y la forma de empaquetar roles, plugins de lookup, módulos propios y filtros de Jinja2 dentro de una misma unidad distribuible. Se trabaja el flujo completo de publicación y versionado, así como las implicaciones para equipos que consumen la colección sin acceso a su código fuente interno.

Bloque 2 — Inventario dinámico multi-fuente y fact caching Se profundiza en la construcción de inventarios dinámicos que combinen al menos dos plugins —AWS EC2, GCP Compute, estado de Terraform u otros— y se configura la caché de inventario para reducir la latencia de resolución. Se abordan las estrategias de segmentación por entorno, región y rol de forma declarativa, y se analiza cómo el fact caching complementa el inventario dinámico para minimizar la recolección repetida de información en entornos de gran escala.

Bloque 3 — Optimización de rendimiento Este bloque cubre las técnicas más relevantes para reducir el tiempo de ejecución de playbooks en entornos productivos: habilitación de SSH pipelining, control de forks, uso de async/poll para tareas de larga duración, integración del conector Mitogen y configuración de fact caching con Redis o archivos JSON. Se realiza un ejercicio de benchmarking antes y después de aplicar las técnicas, documentando y justificando cada mejora medida.

Bloque 4 — Testing de infraestructura con Molecule Se construye desde cero un pipeline de testing con Molecule que contemple dos escenarios: uno basado en contenedores Docker para pruebas rápidas en local y otro apoyado en una plataforma cloud o máquina virtual para validación en condiciones cercanas a producción. Se implementan las fases de lint, create, converge, idempotence, verify y destroy, y se integra el pipeline en un sistema de CI (GitHub Actions o equivalente) de forma que cualquier cambio en un rol dispare la suite automáticamente.

Bloque 5 — Estrategias de despliegue zero-downtime Se diseñan y ejecutan estrategias de rolling update y blue-green sobre un clúster multi-nodo simulado. Se estudia el uso de serial para controlar la ventana de actualización, delegate_to y run_once para coordinar operaciones de balanceo de carga, y la incorporación de health checks que interrumpan el despliegue ante fallos antes de afectar al siguiente lote de nodos. Se analizan los puntos de rollback y la trazabilidad del estado durante el proceso.

Bloque 6 — Gestión de secretos e integración con Vault externo Se diseña un modelo de gestión de secretos que elimina las contraseñas en texto plano del repositorio y de la memoria de los operadores. Se integra Ansible con HashiCorp Vault y con AWS Secrets Manager, mostrando cómo referenciar secretos dinámicamente desde playbooks y roles sin exponerlos en logs ni en artifacts de CI. Se implementa la separación de secretos por entorno (dev, staging, prod) mediante políticas de acceso diferenciadas.

Bloque 7 — Drift, idempotencia y toma de decisiones en producción El penúltimo bloque aborda uno de los riesgos más habituales en automatización madura: la divergencia entre el estado declarado y el estado real de la infraestructura. Se practican flujos de auditoría con --check y --diff, se diseñan registros de cambio estructurados y se establecen protocolos para corregir drift de forma segura antes de ejecutar tareas destructivas. Se trabajan casos reales de entornos degradados con desviaciones intencionales para ejercitar el diagnóstico sistemático.

Bloque 8 — Ansible vs. otras herramientas IaC: decisión arquitectónica El curso cierra con un análisis comparativo entre Ansible y herramientas como Terraform, Pulumi o Chef para casos de uso representativos. Se argumentan los trade-offs de idempotencia sin estado, la escalabilidad de los modelos push y pull, la mantenibilidad del código declarativo frente al imperativo, y los patrones de integración híbrida. Los participantes defienden una decisión arquitectónica propia ante escenarios de contraejemplo planteados por el instructor, consolidando la capacidad de justificación técnica ante audiencias críticas.

  • Equipo con al menos 8 GB de RAM y 4 núcleos de CPU; se recomiendan 16 GB para ejecutar escenarios Molecule con máquinas virtuales en paralelo.
  • Sistema operativo Linux (Ubuntu 22.04 LTS o similar) o macOS con Homebrew; Windows requiere WSL2 con Ubuntu configurado.
  • Python 3.10 o superior con pip disponible en el PATH.
  • Ansible Core 2.15 o superior instalado en un entorno virtual Python dedicado.
  • Molecule 6.x con el driver Docker (molecule-docker) y, opcionalmente, el driver para la plataforma cloud elegida.
  • Docker Engine 24.x o superior con el daemon activo y acceso sin sudo para el usuario del curso.
  • Acceso a una cuenta de AWS o GCP con permisos suficientes para crear y destruir instancias EC2/Compute Engine durante los ejercicios de inventario dinámico y Molecule cloud; se recomienda usar cuentas de laboratorio con presupuesto acotado.
  • HashiCorp Vault en modo desarrollo (vault server -dev) instalado localmente, o acceso a una instancia de Vault o AWS Secrets Manager en el entorno de laboratorio.
  • Cliente git 2.x y cuenta en GitHub o GitLab para integrar los pipelines de CI.
  • Editor de código con soporte YAML y extensión de Ansible (VS Code con vscode-ansible es la opción recomendada).
  • Conexión a Internet estable para la descarga de colecciones desde Ansible Galaxy y de imágenes Docker durante los ejercicios.
  • Dominio de los contenidos cubiertos en ANS202 (Ansible — Intermedio): inventarios estáticos y dinámicos básicos, roles, variables, plantillas Jinja2, handlers, tags y uso de Ansible Vault para cifrado de variables.
  • Experiencia operativa con entornos Linux en producción: gestión de servicios con systemd, configuración de SSH, manejo de permisos y usuarios.
  • Familiaridad con al menos un proveedor cloud (AWS, GCP o Azure) a nivel de consola y CLI: instancias, grupos de seguridad, IAM básico.
  • Conocimientos básicos de contenedores Docker: construcción de imágenes, ejecución de contenedores y redes básicas.
  • Nociones de integración continua: comprensión del modelo de pipelines y capacidad de leer y modificar un fichero de definición de CI (GitHub Actions, GitLab CI o equivalente).
  • Experiencia con control de versiones Git a nivel de ramas y pull requests.