📦 Inventario ShFlow
🇪🇸 Descripción
El sistema de inventario de ShFlow permite definir los hosts, grupos y variables que participan en las tareas automatizadas. Se compone de tres archivos principales ubicados en core/inventory/:
core/inventory/
├── hosts.yaml # Define los hosts y su pertenencia a grupos
├── groups.yaml # Describe los grupos y sus metadatos
└── vars/
└── all.yaml # Variables globales para todos los hosts🧩 hosts.yaml — Inventario principal
Este archivo define los hosts disponibles y su agrupación lógica. Cada host puede tener atributos como IP, privilegios (become), o variables específicas.
🧬 Sintaxis
all:
hosts:
nombre_host:
ansible_host: <IP o FQDN>
become: <true|false>
<clave>: <valor>
children:
nombre_grupo:
hosts:
nombre_host:🧪 Ejemplo
all:
hosts:
equipo1:
ansible_host: 192.168.1.10
become: true
env: staging
equipo2:
ansible_host: 192.168.1.11
become: false
children:
servidores_web:
hosts:
equipo1:
equipo2:🧩 groups.yaml — Metadatos de grupos
Este archivo permite describir los grupos definidos en hosts.yaml, asignar etiquetas y facilitar la organización.
🧬 Sintaxis
groups:
nombre_grupo:
description: <texto descriptivo>
tags: [tag1, tag2, ...]🧪 Ejemplo
groups:
servidores_web:
description: "Grupo de servidores que exponen servicios HTTP"
tags: [nginx, apache, frontend]🧩 vars/all.yaml — Variables globales
Este archivo define variables comunes que se aplican a todos los hosts, salvo que sean sobrescritas por variables de grupo o de host.
🧬 Sintaxis
clave: valor🧪 Ejemplo
timezone: Europe/Madrid
ntp_servers:
- 0.europe.pool.ntp.org
- 1.europe.pool.ntp.org
default_packages:
- curl
- vim
- bash-completion
ssh_port: 22
become: true
env: production
vault_enabled: true
vault_rotation_interval: 30d🔄 Herencia y sobreescritura
- Las variables definidas en
vars/all.yamlse aplican a todos los hosts. - Pueden ser sobrescritas por variables definidas en:
vars/grupo.yaml(si existe)vars/host.yaml(si existe)
- Los atributos definidos en
hosts.yamltienen prioridad sobre los globales.
📜 Changelog
Consulta el historial de cambios en changelog/inventory.md