homelab/inventory/physical.yaml
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

183 lines
4.9 KiB
YAML

# ===========================================
# INVENTÁRIO FÍSICO — Single Source of Truth
# ===========================================
# Este arquivo mapeia TODAS as máquinas físicas do homelab.
# UPDATE: Sempre que mudar algo físico (IP, MAC, disco), atualize aqui PRIMEIRO.
# ===========================================
physical_hosts:
# ===========================================
# HESTIA — Notebook (esta máquina)
# ===========================================
hestia:
description: "Notebook Dell Latitude 5490 — usado como workstation e runner de CI/CD"
location: "rack caseiro"
hardware:
cpu: "Intel i5-8250U"
ram_gb: 16
disk:
- device: /dev/sda
type: SSD
size_gb: 256
mount: /
network:
mac: "PLACEHOLDER" # TODO: ip link show | grep ether
ip: "PLACEHOLDER" # TODO: hostname -I
gateway: "PLACEHOLDER" # IP do ER605
dns: "10.0.0.2" # AdGuard
os:
distro: "Debian"
version: "13"
hostname: "hestia"
roles:
- runner-ci # Gitea Actions runner
- workstation
ssh:
user: "iamferreirajp"
port: 22
# ===========================================
# PROXMOX — Server principal
# ===========================================
proxmox:
description: "Servidor mini-ITX — Proxmox VE rodando VMs e containers"
location: "rack caseiro"
hardware:
cpu: "PLACEHOLDER"
ram_gb: 64
disk:
- device: /dev/sda
type: SSD
size_gb: 512
mount: /
role: "Proxmox OS"
network:
mac: "PLACEHOLDER"
ip: "PLACEHOLDER"
gateway: "PLACEHOLDER"
dns: "10.0.0.2"
os:
distro: "Proxmox VE"
version: "PLACEHOLDER"
hostname: "proxmox"
roles:
- hypervisor # Proxmox (gerencia VMs)
- nfs-client # Mount TrueNAS volumes
ssh:
user: "root"
port: 22
# ===========================================
# TRUENAS — Storage server
# ===========================================
truenas:
description: "Servidor de storage — TrueNAS Scale baremetal"
location: "rack caseiro"
hardware:
cpu: "PLACEHOLDER"
ram_gb: 32
disk:
# TODO: lsblk -d -o NAME,SIZE,TYPE | grep disk
- device: /dev/sdb
type: HDD
size_tb: 4
role: "data"
- device: /dev/sdc
type: HDD
size_tb: 4
role: "data"
- device: /dev/sdd
type: HDD
size_tb: 4
role: "data"
- device: /dev/sde
type: HDD
size_tb: 4
role: "data"
- device: /dev/sdf
type: SSD
size_gb: 500
role: "SLOG/Cache"
network:
mac: "PLACEHOLDER"
ip: "PLACEHOLDER"
gateway: "PLACEHOLDER"
dns: "10.0.0.2"
os:
distro: "TrueNAS Scale"
version: "PLACEHOLDER"
hostname: "truenas"
roles:
- storage # NFS/SMB shares
- nfs-server # Exporta volumes
ssh:
user: "root"
port: 22
# ===========================================
# ER605 — Router TP-Link (Omada)
# ===========================================
er605:
description: "Router TP-Link ER605 — gateway + DHCP + VLANs"
location: "rack caseiro"
hardware:
model: "TP-Link ER605"
wan_port: "1Gbps"
lan_ports: 4
network:
mac: "PLACEHOLDER"
ip: "PLACEHOLDER" # Tipicamente .1 da subnet
gateway: "PLACEHOLDER" # WAN upstream
dns: "PLACEHOLDER"
os:
firmware: "Omada Controller"
controller_url: "http://10.0.0.50:8043"
roles:
- gateway
- dhcp-server
- firewall
management:
web_ui: "http://PLACEHOLDER"
ssh: "disabled"
# ===========================================
# VLANs — mapeamento de rede
# ===========================================
vlans:
1:
name: "infra"
subnet: "10.0.0.0/24"
dhcp_range: "10.0.0.100-10.0.0.200"
description: "Infraestrutura — Gitea, AdGuard, Omada Controller"
10:
name: "geral"
subnet: "10.0.10.0/24"
dhcp_range: "10.0.10.100-10.0.10.200"
description: "Workstations e laptops"
20:
name: "iot"
subnet: "10.0.20.0/24"
dhcp_range: "10.0.20.100-10.0.20.200"
description: "Dispositivos IoT — sensores, câmeras"
30:
name: "guests"
subnet: "10.0.30.0/24"
dhcp_range: "10.0.30.100-10.0.30.200"
description: "Rede de visitantes"
# ===========================================
# DNS — AdGuard
# ===========================================
dns:
adguard:
description: "DNS recursivo + bloqueador de ads"
ip: "10.0.0.2"
roles:
- dns-recursive
- dns-block
web_ui: "http://10.0.0.2"
upstream_dns:
- "1.1.1.1"
- "8.8.8.8"