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"