homelab/inventory
gaia 82fec81eb2 inventory: fill all PLACEHOLDERs with Omada API discovered data
Discovery via Omada Controller API (gitea_client_2 app):
- All 4 network devices (ER605, SG2428P, 2x EAP610) with MAC/IP/firmware
- All 25 clients across VLANs 1/10/20 with MAC/IP/hostname
- Complete VLAN topology, gateways, DHCP ranges, static leases
- Proxmox node IP, VMs (homeassistant), LXC containers (dockerino, media)
- TrueNAS IP and all NFS mount points

Also fixes:
- hestia: gateway 10.0.0.1 (was PLACEHOLDER)
- physical.yaml: proxmox MAC/IP, truenas MAC/IP, ER605 full config
- network.yaml: all VLAN gateways filled (10.0.x.1 pattern)
2026-04-09 16:54:16 -03:00
..
network.yaml inventory: fill all PLACEHOLDERs with Omada API discovered data 2026-04-09 16:54:16 -03:00
physical.yaml inventory: fill all PLACEHOLDERs with Omada API discovered data 2026-04-09 16:54:16 -03:00
proxmox.yaml inventory: fill all PLACEHOLDERs with Omada API discovered data 2026-04-09 16:54:16 -03:00
README.md feat(inventory): add initial inventory structure with placeholders 2026-04-09 12:16:38 -03:00
truenas.yaml feat(inventory): add initial inventory structure with placeholders 2026-04-09 12:16:38 -03:00

Inventory — Single Source of Truth

Este diretório contém o inventário completo do homelab em arquivos YAML.

Arquivos

Arquivo Conteúdo
physical.yaml Máquinas físicas — hardware, MACs, IPs, localização
proxmox.yaml VMs e LXC containers no Proxmox
truenas.yaml Discos, pools ZFS, datasets, shares
network.yaml VLANs, subnets, DNS, DHCP

Princípio

Sempre atualize o inventory PRIMEIRO, antes de fazer qualquer mudança na infraestrutura real.

Exemplo:

  1. Você quer trocar o IP do Dockerino de 10.0.0.50 pra 10.0.0.51
  2. Edita inventory/proxmox.yaml → muda o IP do dockerino
  3. Terraform/Ansible pegam o novo IP e aplicam
  4. PR mostra: "Dockerino IP: 10.0.0.50 → 10.0.0.51"
  5. Após merge, a mudança é aplicada automaticamente

Como preencher com dados reais

1. Hestia (esta máquina)

# IP e MAC
ip link show
hostname -I

# CPU e RAM
lscpu | grep -E "^Model name|^CPU\(s\)"
free -h

# Discos
lsblk -d -o NAME,SIZE,TYPE | grep disk

2. Proxmox

# SSH para o Proxmox
ssh root@<proxmox-ip>

# Listar VMs e containers
pvesh get /cluster/resources

# Listar disks
pvesh get /cluster/disks/list

# Detalhes de uma VM específica
pvesh get /qemu/<vmid>/config
pvesh get /lxc/<vmid>/config

3. TrueNAS

# SSH para TrueNAS
ssh root@<truenas-ip>

# Status dos pools
zpool status -v

# Datasets
zfs list -o name,mountpoint,used

# Exports NFS
cat /etc/exports

# Discos
lsblk -d -o NAME,SIZE,TYPE,ROTA | grep disk
smartctl -a /dev/sdX

4. ER605 (Router)

Acesse a UI do Omada Controller (provavelmente em https://10.0.0.50:8043) e consulte:

  • LAN Settings → DHCP
  • VLANs
  • Port Forwards

Formato dos arquivos

Todos os arquivos usam YAML. Campos com PLACEHOLDER precisam ser preenchidos com dados reais.

Validação

# Instalar yq se necessário
sudo apt install yq

# Validar syntax do YAML
yq eval '.' inventory/physical.yaml

# Extrair IPs de todas as máquinas
yq eval '.physical_hosts | to_entries | .[].value.network.ip' inventory/physical.yaml

Ordem de leitura para Terraform/Ansible

physical.yaml (camada 0 — fatos)
    ↓
proxmox.yaml + truenas.yaml (camada 1 — provisionamento)
    ↓
ansible/ (camada 2 — configuração de OS)
    ↓
services/ (camada 3 — aplicações)