# 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) ```bash # 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 ```bash # SSH para o Proxmox ssh root@ # Listar VMs e containers pvesh get /cluster/resources # Listar disks pvesh get /cluster/disks/list # Detalhes de uma VM específica pvesh get /qemu//config pvesh get /lxc//config ``` ### 3. TrueNAS ```bash # SSH para TrueNAS ssh root@ # 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 ```bash # 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) ```