Saltar al contenido principal

Clase 00 — Introducción a YAML

YAML (YAML Ain't Markup Language) es un formato de serialización de datos legible por humanos. Se usa ampliamente en DevOps para archivos de configuración.

¿Dónde se usa YAML?

HerramientaArchivo
Docker Composedocker-compose.yml
KubernetesManifests (.yaml)
GitHub Actions.github/workflows/*.yml
GitLab CI.gitlab-ci.yml
AnsiblePlaybooks, inventarios
Helmvalues.yaml, Chart.yaml

¿Por qué YAML y no JSON o XML?

# YAML — Legible y limpio
nombre: RoxsRoss
rol: DevOps Engineer
habilidades:
- Docker
- Kubernetes
- Terraform

YAML es menos verboso que JSON y mucho menos que XML. Soporta comentarios y es más legible.

Reglas fundamentales

# ✅ Regla 1: Indentación con ESPACIOS (nunca tabs)
padre:
hijo: valor

# ✅ Regla 2: Espacio obligatorio después de :
nombre: RoxsRoss # ✅ Correcto
# nombre:RoxsRoss # ❌ Error

# ✅ Regla 3: Comentarios con #
# Esto es un comentario

# ✅ Regla 4: La indentación define la estructura
nivel1:
nivel2:
nivel3: valor

Tu primer archivo YAML

# mi-config.yaml
app:
nombre: mi-api
version: "1.0.0"
puerto: 8080
debug: false

base_datos:
host: localhost
puerto: 5432
nombre: mi_db

logs:
nivel: info
archivo: /var/log/app.log

Validar YAML

# Instalar yamllint
pip install yamllint

# Validar archivo
yamllint mi-config.yaml

# Con Python
python3 -c "import yaml; yaml.safe_load(open('mi-config.yaml'))"

Errores comunes

# ❌ Error 1: Usar tabs
padre:
hijo: valor

# ❌ Error 2: Falta espacio después de :
nombre:valor

# ❌ Error 3: Indentación inconsistente
padre:
hijo1: a
hijo2: b

# ❌ Error 4: Caracteres especiales sin comillas
mensaje: esto tiene: dos puntos
# ✅ Correcto:
mensaje: "esto tiene: dos puntos"