15 módulos73 lecciones~12h 21min

Ansible desde Cero

Automatiza la configuración de servidores con Ansible: inventarios, playbooks, roles, Jinja2, Vault y el patrón Terraform + Ansible en producción.

Temario del curso

1

Fundamentos y contexto

0 / 5 lecciones

1
Qué es Ansible y qué problema resuelve3 min
2
Agentless: cómo Ansible configura un servidor sin instalar nada en él5 min
3
Ansible vs Terraform vs Puppet/Chef: qué problema resuelve cada uno4 min
4
Idempotencia: el concepto que hace confiable a Ansible4 min
5
El proyecto del curso: configurar la infraestructura de tallerdigital5 min
2

Instalación y laboratorio

0 / 5 lecciones

1
Instalar Ansible (control node) en Windows, macOS y Linux15 min
2
Requisitos de Python: control node vs managed node7 min
3
Levantar el laboratorio: 3 servidores SSH con Docker Compose20 min
4
Primera conexión SSH manual a los 3 servidores del laboratorio16 min
5
Verificar la instalación con ansible --version y ansible-config9 min
3

El inventario

0 / 5 lecciones

1
Qué es el inventario y por qué es el primer archivo que escribes6 min
2
Inventario en formato INI: el de tallerdigital paso a paso12 min
3
El mismo inventario en formato YAML8 min
4
Grupos, subgrupos (children) y variables de grupo6 min
5
ansible-inventory y patterns para seleccionar hosts (all, web:&db, web1)23 min
4

Comandos ad-hoc

0 / 4 lecciones

1
El módulo ping: tu primer comando contra el laboratorio11 min
2
Ejecutar comandos sueltos con los módulos command y shell13 min
3
Gestionar paquetes y servicios en caliente (apt, systemd_service)16 min
4
Cuándo usar ad-hoc y cuándo ya necesitas un playbook5 min
5

Playbooks fundamentales

0 / 6 lecciones

1
Anatomía de un playbook: plays, tasks y el YAML que los describe9 min
2
Tu primer playbook: instalar y arrancar Nginx en los servidores web9 min
3
become: cuándo y cómo escalar privilegios dentro de una task9 min
4
La idempotencia en acción: correr el mismo playbook dos veces8 min
5
check mode (--check) y --diff: simular antes de aplicar9 min
6
Organizar un playbook con múltiples plays (web y db por separado)8 min
6

Variables y facts

0 / 5 lecciones

1
Declarar variables: en el play, en vars_files y en la línea de comandos20 min
2
group_vars y host_vars: variables por grupo y por servidor14 min
3
gather_facts: qué sabe Ansible del servidor sin que se lo digas15 min
4
register: guardar el resultado de una task para usarlo después11 min
5
Precedencia de variables: qué gana cuando hay varias fuentes12 min
7

Plantillas con Jinja2

0 / 5 lecciones

1
El módulo template vs copy: cuándo cada uno6 min
2
Sintaxis básica de Jinja2: {{ variable }} dentro de un archivo real8 min
3
Condicionales y bucles dentro de una plantilla (if, for)10 min
4
Filtros de Jinja2 más usados: default, upper, join, to_json19 min
5
Práctica: la plantilla real del virtual host de Nginx para tallerdigital15 min
8

Condicionales y bucles en tasks

0 / 5 lecciones

1
when: ejecutar una task solo si se cumple una condición12 min
2
when combinado con facts: distinto comportamiento por sistema operativo10 min
3
loop: repetir una task sobre una lista de valores9 min
4
loop sobre diccionarios y loop_control para etiquetas legibles10 min
5
Gotcha: with_items es legado, por qué el curso usa loop11 min
9

Handlers y manejo de errores

0 / 4 lecciones

1
handlers y notify: reiniciar un servicio solo si su configuración cambió10 min
2
block, rescue y always: try/catch/finally en un playbook8 min
3
ignore_errors, failed_when y changed_when: redefinir qué es un fallo11 min
4
Práctica: un deploy que detecta un fallo y se recupera con rescue10 min
10

Roles

0 / 6 lecciones

1
Por qué un playbook gigante no escala y qué problema resuelve un role6 min
2
La estructura exacta de carpetas de un role (tasks, handlers, templates, defaults)5 min
3
ansible-galaxy init: crear el esqueleto de un role nuevo10 min
4
Práctica: convertir el playbook de Nginx en el role nginx de tallerdigital16 min
5
Práctica: el role postgresql de tallerdigital11 min
6
Dependencias entre roles con meta/main.yml9 min
11

Ansible Galaxy y colecciones

0 / 4 lecciones

1
Qué es una colección y qué es un FQCN (namespace.collection.modulo)5 min
2
Instalar community.docker y community.postgresql con ansible-galaxy12 min
3
requirements.yml: fijar versiones de roles y colecciones del proyecto9 min
4
Buscar y evaluar contenido de la comunidad en Ansible Galaxy6 min
12

Ansible Vault

0 / 4 lecciones

1
El problema: la contraseña de PostgreSQL no puede vivir en texto plano en git8 min
2
ansible-vault create, encrypt, decrypt, edit y view20 min
3
vault_password_file, encriptar un string suelto, y usar el secreto en un playbook13 min
4
Múltiples vault IDs: un secreto distinto por entorno (dev, producción)16 min
13

Terraform y Ansible integrados

0 / 4 lecciones

1
El patrón: Terraform aprovisiona, Ansible configura (y por qué no al revés)5 min
2
Generar el inventario de Ansible a partir de outputs de Terraform13 min
3
Por qué evitar el provisioner remote-exec de Terraform para configurar servidores6 min
4
El pipeline completo: terraform apply, extraer outputs, ansible-playbook7 min
14

Buenas prácticas, testing y producción

0 / 5 lecciones

1
ansible-lint: atrapar errores de estilo y de fondo antes de correr un playbook15 min
2
Testing de roles con Molecule: qué prueba y cómo se integra con Docker12 min
3
ansible-navigator: la interfaz TUI interactiva para correr y explorar un playbook10 min
4
AWX: la interfaz web para ejecutar playbooks en equipo, sin que nadie use su laptop5 min
5
Checklist de buenas prácticas antes de llevar un playbook a producción7 min
15

Proyecto final

0 / 6 lecciones

1
Definición del proyecto: qué va a quedar configurado y en qué servidores5 min
2
Role base: usuarios, firewall (ufw) y endurecimiento inicial del servidor11 min
3
Role docker: instalar Docker y desplegar el contenedor de la app de tallerdigital11 min
4
Role nginx: reverse proxy hacia el contenedor, con la plantilla del módulo 77 min
5
Role postgresql con la contraseña protegida por Vault12 min
6
site.yml final: los 4 roles orquestados, y checklist de cierre del curso8 min