Plan2026/01-decision-inventario.md

7.3 KiB

Decision: Herramienta de inventario para infraestructura Proxmox/PBS

Contexto

  • 100-500 servidores Proxmox VE y PBS
  • Necesidad de saber que hay, donde esta, que IP tiene, que version corre, que clientes tiene cada PBS
  • Integracion con Ansible para automatizacion

Opcion A: Netbox solo (CMDB pura)

Que es: CMDB (Configuration Management Database) open source de referencia. Diseñada por ingenieros de red de DigitalOcean.

Que cubre:

  • Inventario de servidores fisicos (rack, U, serial, modelo)
  • IPs y subredes (IPAM completo: VLANs, prefijos, rangos)
  • VMs y contenedores
  • Conexiones de red (que puerto fisico va a donde)
  • Contactos y tenants (clientes asociados a cada recurso)
  • Custom fields (quota PBS, tamaño comercial, servidor de sync, etc.)
  • API REST completa (todo automatizable)

Que NO cubre sin plugins:

  • No descubre automaticamente lo que tienes (hay que poblarlo)
  • No monitoriza estado (es un inventario, no sabe si el servidor esta caido)
  • No gestiona tickets ni incidencias

Plugins clave para vuestro caso:

  • netbox-proxmox: sincroniza VMs, nodos y storage desde Proxmox API
  • netbox-dns: gestion de zonas y registros DNS (complementa vuestro PowerDNS)
  • netbox-inventory: seguimiento de activos fisicos con ciclo de vida

Como se pobla:

  • Manual al principio (servidores fisicos, racks)
  • Automatico via API + scripts que lean de Proxmox y PBS
  • Ansible como consumidor: netbox.netbox.nb_inventory genera inventario dinamico

Ideal si: quereis una fuente de verdad unica, bien estructurada, que alimente al resto de herramientas (Ansible, Prometheus, Grafana). El equipo tiene disciplina para mantenerla actualizada.

Recursos: 2GB RAM, 1 vCPU, PostgreSQL + Redis. Una VM pequeña.

Veredicto: Para vuestro caso, Netbox solo es suficiente como inventario si le añadis el plugin de Proxmox y lo conectais con Ansible. Es la opcion mas limpia.


Opcion B: GLPI + FusionInventory (inventario + autodiscovery + ticketing)

Que es: Gestion de activos IT + helpdesk + autodescubrimiento. Muy extendido en entornos ITIL.

Que cubre:

  • Todo lo de inventario (servidores, VMs, IPs, software instalado)
  • Autodescubrimiento: instala un agente en cada servidor y reporta automaticamente hardware, software, paquetes, actualizaciones
  • Ticketing integrado (incidencias, peticiones, cambios)
  • Gestion de contratos y proveedores (util para controlar hosting OVH, licencias)
  • Base de conocimiento (wiki interna)
  • SLA tracking

Que NO cubre:

  • IPAM menos potente que Netbox
  • No tiene concepto nativo de "tenant/cliente" tan limpio como Netbox
  • Integracion con Ansible menos directa (existe pero no es nativa)

Ventaja diferencial: el agente FusionInventory escanea automaticamente cada servidor y reporta: hardware, paquetes instalados, versiones, discos, red. No tienes que mantener el inventario a mano, se actualiza solo.

Ideal si: quereis que el inventario se mantenga solo (autodiscovery), necesitais ticketing integrado, y el equipo prefiere una herramienta "todo en uno" tipo helpdesk.

Recursos: 2GB RAM, 1 vCPU, MariaDB + Apache. Una VM pequeña.

Veredicto: Mas facil de mantener actualizado que Netbox (autodiscovery), pero menos potente como CMDB de red y menos integracion con ecosistema DevOps.


Opcion C: Netbox + Ansible inventory + Prometheus service discovery (stack integrado)

Que es: No es una herramienta sino un patron. Netbox como SSOT, Ansible como consumidor y actualizador, Prometheus como validador.

Flujo:

Netbox (SSOT) --> Ansible (dynamic inventory) --> Configura servidores
     ^                    |
     |                    v
     +---- Script sync <-- Proxmox API (autodescubre VMs nuevas)
     |
     +---- Prometheus (valida que lo que dice Netbox coincide con la realidad)

Componentes:

  1. Netbox: inventario maestro con plugin proxmox
  2. Script de sync (cron diario): consulta la API de cada Proxmox, crea/actualiza VMs en Netbox automaticamente
  3. Ansible netbox.netbox.nb_inventory: genera inventario dinamico desde Netbox. Los playbooks siempre trabajan contra datos reales.
  4. Prometheus + netbox-prometheus-sd: Prometheus descubre targets desde Netbox. Si un servidor esta en Netbox, se monitoriza automaticamente.

Que cubre:

  • Todo lo de Netbox (Opcion A)
  • Autodescubrimiento via API de Proxmox (no necesita agente como GLPI)
  • Inventario siempre sincronizado con la realidad
  • Monitoring automatico de todo lo que entra en inventario
  • Ansible siempre trabaja con datos actualizados

Que requiere:

  • Mas trabajo inicial de integracion (scripts de sync, configurar plugins)
  • El equipo tiene que entender el flujo completo
  • Necesita Prometheus y Grafana (que ya deberian desplegarse de todos modos)

Ideal si: quereis construir un ecosistema integrado donde añadir un servidor a Netbox automaticamente lo provisione con Ansible y lo monitorice con Prometheus. La opcion mas potente a largo plazo.

Recursos: Netbox VM (2GB) + Prometheus/Grafana (ya necesario para monitoring).

Veredicto: Mas esfuerzo inicial, pero es el objetivo final al que llegareis con cualquiera de las otras opciones. Si vais a desplegar Prometheus y Ansible de todos modos, tiene sentido empezar con este enfoque.


Comparativa rapida

Criterio A: Netbox solo B: GLPI+Fusion C: Netbox+stack
Esfuerzo inicial Medio Bajo Alto
Mantenimiento Manual + API Automatico (agente) Automatico (API)
IPAM (gestion IPs) Excelente Basico Excelente
Autodiscovery Con plugin/script Nativo (agente) Con script
Ticketing No (necesita otra tool) Integrado No
Integracion Ansible Nativa Plugin Nativa
Integracion Prometheus Plugin No directa Nativa
Tenants/clientes Excelente Basico Excelente
Curva de aprendizaje Media Baja Alta
Comunidad Proxmox Fuerte Media Fuerte
Escalabilidad 10000+ 5000 10000+

Mi recomendacion para vuestro caso

Opcion C, pero implementada en fases:

  1. Semana 1-2: Desplegar Netbox con plugin proxmox. Importar servidores fisicos y que sincronice VMs automaticamente.
  2. Semana 3-4: Conectar Ansible con inventario dinamico de Netbox. Primer playbook de hardening base.
  3. Mes 2: Añadir script de sync PBS (datastores, clientes, quotas como custom fields en Netbox).
  4. Mes 2-3: Conectar Prometheus con Netbox para service discovery automatico.

Resultado: cualquier servidor nuevo que se añada a Proxmox aparece en Netbox automaticamente, se configura con Ansible, y se monitoriza con Prometheus. Sin intervencion manual.


Nota sobre datos especificos de PBS que modelar en Netbox

Custom fields recomendados para vuestro modelo de negocio:

Campo Tipo Ejemplo
pbs_commercial_size_gb Integer 100
pbs_quota_gb Integer 600
pbs_reservation_gb Integer 500
pbs_sync_server Text pbs3343.vpn9.com.es
pbs_sync_day Integer 15
pbs_password Secret (via Vault) -
pbs_pve_host Text ns31157129.ip-51-91-154.eu
pbs_status Choice active / migrated / suspended
pbs_last_gc DateTime auto-updated
pbs_last_verify DateTime auto-updated
pbs_used_space_gb Integer auto-updated