homelab/inventory/README.md
gaia e3a9c44d5a
All checks were successful
Picsur Deploy / Validate Picsur Compose (pull_request) Successful in 12s
Picsur Deploy / Deploy Picsur to Dockerino (pull_request) Has been skipped
feat(inventory): add initial inventory structure with placeholders
Adds 4-layer inventory system as Single Source of Truth:
- inventory/physical.yaml: Physical hosts (Hestia, Proxmox, TrueNAS, ER605)
- inventory/proxmox.yaml: VMs and LXC containers (dockerino, media, homeassistant)
- inventory/truenas.yaml: ZFS pools, disks, datasets, NFS exports
- inventory/network.yaml: VLANs, subnets, DNS

All files have PLACEHOLDER fields to be filled with real data
using the discovery commands in inventory/README.md
2026-04-09 12:16:38 -03:00

2.3 KiB

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)