homelab/inventory
gaia 276dee3412
All checks were successful
Picsur Deploy / Validate Picsur Compose (pull_request) Successful in 16s
Picsur Deploy / Deploy Picsur to Dockerino (pull_request) Has been skipped
fix(inventory): fill Hestia real data — MACs, IP, disk size
- enp9s0 (wired): 74:86:7a:f9:15:c1 (cabo sem link)
- wlp6s0 (WiFi): 0c:84:dc:d5:03:d1 (IP atual)
- IP via WiFi: 10.0.10.100
- Disk SSD: 224GB real
2026-04-09 12:30:53 -03:00
..
network.yaml feat(inventory): add initial inventory structure with placeholders 2026-04-09 12:16:38 -03:00
physical.yaml fix(inventory): fill Hestia real data — MACs, IP, disk size 2026-04-09 12:30:53 -03:00
proxmox.yaml feat(inventory): add initial inventory structure with placeholders 2026-04-09 12:16:38 -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)