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
This commit is contained in:
parent
665e5e1f40
commit
e3a9c44d5a
113
inventory/README.md
Normal file
113
inventory/README.md
Normal file
@ -0,0 +1,113 @@
|
||||
# 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@<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
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```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)
|
||||
```
|
||||
78
inventory/network.yaml
Normal file
78
inventory/network.yaml
Normal file
@ -0,0 +1,78 @@
|
||||
# ===========================================
|
||||
# INVENTÁRIO DE REDE
|
||||
# ===========================================
|
||||
# TODO: Descobrir IPs reais via:
|
||||
# - ER605 Admin UI: LAN settings
|
||||
# - AdGuard: 10.0.0.2 → Settings > DHCP
|
||||
# ===========================================
|
||||
|
||||
network:
|
||||
domain: "hackerfortress.cc"
|
||||
gateway: "PLACEHOLDER" # IP do ER605 na VLAN1
|
||||
|
||||
# ===========================================
|
||||
# Subnets e VLANs
|
||||
# ===========================================
|
||||
vlans:
|
||||
1:
|
||||
name: "infra"
|
||||
subnet: "10.0.0.0/24"
|
||||
gateway: "PLACEHOLDER"
|
||||
dhcp_server: true
|
||||
dhcp_range:
|
||||
start: "10.0.0.100"
|
||||
end: "10.0.0.200"
|
||||
static_leases:
|
||||
# TODO: Adicionar leases fixos已知
|
||||
# "MAC_ADDRESS": "IP"
|
||||
"hestia-mac": "PLACEHOLDER"
|
||||
"truenas-mac": "PLACEHOLDER"
|
||||
"proxmox-mac": "PLACEHOLDER"
|
||||
|
||||
10:
|
||||
name: "geral"
|
||||
subnet: "10.0.10.0/24"
|
||||
gateway: "PLACEHOLDER"
|
||||
dhcp_server: true
|
||||
dhcp_range:
|
||||
start: "10.0.10.100"
|
||||
end: "10.0.10.200"
|
||||
|
||||
20:
|
||||
name: "iot"
|
||||
subnet: "10.0.20.0/24"
|
||||
gateway: "PLACEHOLDER"
|
||||
dhcp_server: true
|
||||
dhcp_range:
|
||||
start: "10.0.20.100"
|
||||
end: "10.0.20.200"
|
||||
|
||||
30:
|
||||
name: "guests"
|
||||
subnet: "10.0.30.0/24"
|
||||
gateway: "PLACEHOLDER"
|
||||
dhcp_server: true
|
||||
dhcp_range:
|
||||
start: "10.0.30.100"
|
||||
end: "10.0.30.200"
|
||||
|
||||
# ===========================================
|
||||
# DNS — Services
|
||||
# ===========================================
|
||||
dns_services:
|
||||
adguard:
|
||||
ip: "10.0.0.2"
|
||||
port: 53
|
||||
web_ui: "http://10.0.0.2"
|
||||
roles:
|
||||
- dns-recursive
|
||||
- dns-blocklist
|
||||
|
||||
# ===========================================
|
||||
# Port Forwards (ER605)
|
||||
# ===========================================
|
||||
# TODO: ER605 Admin UI > NAT > Port Forwarding
|
||||
forwarding:
|
||||
# external_port: [protocol, internal_ip, internal_port, description]
|
||||
#443: ["TCP", "10.0.0.50", "443", "Picsur HTTPS"]
|
||||
#80: ["TCP", "10.0.0.50", "80", "Picsur HTTP"]
|
||||
182
inventory/physical.yaml
Normal file
182
inventory/physical.yaml
Normal file
@ -0,0 +1,182 @@
|
||||
# ===========================================
|
||||
# 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"
|
||||
141
inventory/proxmox.yaml
Normal file
141
inventory/proxmox.yaml
Normal file
@ -0,0 +1,141 @@
|
||||
# ===========================================
|
||||
# INVENTÁRIO PROXMOX — VMs e Containers
|
||||
# ===========================================
|
||||
# Máquinas virtuais e containers rodando no Proxmox.
|
||||
# TODO: Preencher com dados reais via: pvesh get /qemu-auto, /lxc-auto
|
||||
# ===========================================
|
||||
|
||||
proxmox_node: "proxmox"
|
||||
|
||||
# ===========================================
|
||||
# Virtual Machines (VMs)
|
||||
# ===========================================
|
||||
vms:
|
||||
|
||||
homeassistant:
|
||||
description: "Home Assistant OS rodando como VM"
|
||||
status: "running"
|
||||
os_type: "qubes" # HAOS usa o tipo qubes
|
||||
vmid: "PLACEHOLDER"
|
||||
resources:
|
||||
cpu_cores: 4
|
||||
ram_mb: 4096
|
||||
disk_gb: 32
|
||||
boot_order: "scsi0"
|
||||
network:
|
||||
bridge: "vmbr0"
|
||||
vlan: 10 # Rede geral
|
||||
volumes:
|
||||
# TrueNAS NFS mounts dentro da VM
|
||||
nfs_config: "/mnt/nfs/homeassistant/config"
|
||||
nfs_media: "/mnt/nfs/media"
|
||||
roles:
|
||||
- home-automation
|
||||
|
||||
# PLACEHOLDER — adicione mais VMs aqui
|
||||
|
||||
# ===========================================
|
||||
# Containers (LXC)
|
||||
# ===========================================
|
||||
containers:
|
||||
|
||||
dockerino:
|
||||
description: "Container principal — Docker + Docker Compose (swarm mode)"
|
||||
status: "running"
|
||||
os_type: "debian"
|
||||
vmid: "PLACEHOLDER"
|
||||
resources:
|
||||
cpu_cores: 4
|
||||
ram_mb: 8192
|
||||
disk_gb: 64
|
||||
network:
|
||||
ip: "10.0.0.50/24"
|
||||
bridge: "vmbr0"
|
||||
vlan: 1 # Rede infra
|
||||
gateway: "PLACEHOLDER" # IP do ER605
|
||||
dns: "10.0.0.2"
|
||||
volumes:
|
||||
# Mounts do TrueNAS NFS
|
||||
nfs_picsur: "/mnt/nfs/picsur/data"
|
||||
nfs_docker_volumes: "/mnt/nfs/docker-volumes"
|
||||
docker:
|
||||
version: "PLACEHOLDER"
|
||||
compose_version: "PLACEHOLDER"
|
||||
services:
|
||||
- picsur
|
||||
- adguard #outro instance?
|
||||
- outline
|
||||
- nginx-proxy
|
||||
- homer
|
||||
- bookstack
|
||||
- flatnotes
|
||||
- homebox
|
||||
- speedtest
|
||||
- omada-controller
|
||||
- twingate
|
||||
roles:
|
||||
- docker-host
|
||||
- reverse-proxy
|
||||
- application-host
|
||||
|
||||
media:
|
||||
description: "Container — Jellyfin e serviços de mídia"
|
||||
status: "running"
|
||||
os_type: "debian"
|
||||
vmid: "PLACEHOLDER"
|
||||
resources:
|
||||
cpu_cores: 4
|
||||
ram_mb: 8192
|
||||
disk_gb: 128
|
||||
network:
|
||||
ip: "PLACEHOLDER" # TODO: Descobrir IP
|
||||
bridge: "vmbr0"
|
||||
vlan: 1
|
||||
gateway: "PLACEHOLDER"
|
||||
dns: "10.0.0.2"
|
||||
volumes:
|
||||
nfs_media: "/mnt/nfs/media"
|
||||
docker:
|
||||
version: "PLACEHOLDER"
|
||||
services:
|
||||
- jellyfin
|
||||
roles:
|
||||
- media-server
|
||||
|
||||
# ===========================================
|
||||
# Storage Pools (Proxmox → TrueNAS)
|
||||
# ===========================================
|
||||
nfs_mounts:
|
||||
nfs-media:
|
||||
server: "PLACEHOLDER" # IP do TrueNAS
|
||||
export: "/mnt/tank/media"
|
||||
mount_point: "/mnt/nfs/media"
|
||||
usage: "Jellyfin media files"
|
||||
|
||||
nfs-picsur:
|
||||
server: "PLACEHOLDER"
|
||||
export: "/mnt/tank/picsur"
|
||||
mount_point: "/mnt/nfs/picsur"
|
||||
usage: "Picsur image storage"
|
||||
|
||||
nfs-docker-volumes:
|
||||
server: "PLACEHOLDER"
|
||||
export: "/mnt/tank/docker-volumes"
|
||||
mount_point: "/mnt/nfs/docker-volumes"
|
||||
usage: "Docker named volumes (named volumes persistem entre recreações)"
|
||||
|
||||
nfs-homeassistant:
|
||||
server: "PLACEHOLDER"
|
||||
export: "/mnt/tank/homeassistant"
|
||||
mount_point: "/mnt/nfs/homeassistant"
|
||||
usage: "Home Assistant config"
|
||||
|
||||
# ===========================================
|
||||
# Notes
|
||||
# ===========================================
|
||||
# Para descobrir IPs das VMs:
|
||||
# pvesh get /qemu/<vmid>/agent/network-get-interfaces
|
||||
# pvesh get /lxc/<vmid>/agent/network-get-interfaces
|
||||
#
|
||||
# Para listar todos os containers:
|
||||
# pvesh get /cluster/resources
|
||||
163
inventory/truenas.yaml
Normal file
163
inventory/truenas.yaml
Normal file
@ -0,0 +1,163 @@
|
||||
# ===========================================
|
||||
# INVENTÁRIO TRUENAS — Discos, Pools e Datasets
|
||||
# ===========================================
|
||||
# TODO: Obter dados reais via:
|
||||
# 1. Web UI TrueNAS > Storage > Disks
|
||||
# 2. CLI: zpool status, zfs list
|
||||
# ===========================================
|
||||
|
||||
truenas:
|
||||
hostname: "truenas"
|
||||
version: "PLACEHOLDER"
|
||||
ip: "PLACEHOLDER"
|
||||
|
||||
# ===========================================
|
||||
# Discos Físicos
|
||||
# ===========================================
|
||||
disks:
|
||||
# TODO: lsblk -d -o NAME,SIZE,TYPE,ROTA | grep disk
|
||||
# TODO: smartctl -a /dev/sdX
|
||||
|
||||
sdb:
|
||||
size_tb: 4
|
||||
type: "HDD"
|
||||
model: "PLACEHOLDER"
|
||||
serial: "PLACEHOLDER"
|
||||
role: "data"
|
||||
pool: "tank"
|
||||
|
||||
sdc:
|
||||
size_tb: 4
|
||||
type: "HDD"
|
||||
model: "PLACEHOLDER"
|
||||
serial: "PLACEHOLDER"
|
||||
role: "data"
|
||||
pool: "tank"
|
||||
|
||||
sdd:
|
||||
size_tb: 4
|
||||
type: "HDD"
|
||||
model: "PLACEHOLDER"
|
||||
serial: "PLACEHOLDER"
|
||||
role: "data"
|
||||
pool: "tank"
|
||||
|
||||
sde:
|
||||
size_tb: 4
|
||||
type: "HDD"
|
||||
model: "PLACEHOLDER"
|
||||
serial: "PLACEHOLDER"
|
||||
role: "data"
|
||||
pool: "tank"
|
||||
|
||||
sdf:
|
||||
size_gb: 500
|
||||
type: "SSD"
|
||||
model: "PLACEHOLDER"
|
||||
serial: "PLACEHOLDER"
|
||||
role: "SLOG/Cache"
|
||||
pool: "tank"
|
||||
|
||||
# ===========================================
|
||||
# ZFS Pools
|
||||
# ===========================================
|
||||
pools:
|
||||
tank:
|
||||
description: "Pool principal — dados de todos os serviços"
|
||||
vdev_type: "mirror" # mirror = 2x4TB espelhados (RAID-1)
|
||||
# TODO: Descobrir configuração real — pode ser raidz ou mirror
|
||||
disks:
|
||||
- /dev/sdb
|
||||
- /dev/sdc
|
||||
- /dev/sdd
|
||||
- /dev/sde
|
||||
compression: "lz4"
|
||||
ashift: 12 # 4K sectors
|
||||
atime: "off"
|
||||
|
||||
# ===========================================
|
||||
# Datasets — o que existe hoje
|
||||
# ===========================================
|
||||
datasets:
|
||||
tank:
|
||||
docker-volumes:
|
||||
description: "Volumes Docker do Dockerino (NFS-mounted)"
|
||||
mount_point: "/mnt/tank/docker-volumes"
|
||||
share: "docker-volumes"
|
||||
nfs_export: "*(rw,no_root_squash,subtree_check)"
|
||||
used_by:
|
||||
- dockerino:/mnt/nfs/docker-volumes
|
||||
|
||||
picsur:
|
||||
description: "Dados do Picsur (imagens armazenadas)"
|
||||
mount_point: "/mnt/tank/picsur"
|
||||
share: "picsur"
|
||||
nfs_export: "*(rw,no_root_squash,subtree_check)"
|
||||
used_by:
|
||||
- dockerino:/mnt/nfs/picsur
|
||||
|
||||
media:
|
||||
description: "Biblioteca de mídia — Jellyfin"
|
||||
mount_point: "/mnt/tank/media"
|
||||
share: "media"
|
||||
nfs_export: "*(rw,no_root_squash,subtree_check)"
|
||||
used_by:
|
||||
- media:/mnt/nfs/media
|
||||
- homeassistant:/mnt/nfs/media
|
||||
|
||||
homeassistant:
|
||||
description: "Config do Home Assistant"
|
||||
mount_point: "/mnt/tank/homeassistant"
|
||||
share: "homeassistant"
|
||||
nfs_export: "*(rw,no_root_squash,subtree_check)"
|
||||
used_by:
|
||||
- homeassistant:/mnt/nfs/homeassistant
|
||||
|
||||
backup:
|
||||
description: "Backups periódicos"
|
||||
mount_point: "/mnt/tank/backup"
|
||||
snapshot_enabled: true
|
||||
snapshot_schedule: "daily"
|
||||
|
||||
# ===========================================
|
||||
# SMB Shares (se TrueNAS exportar via SMB)
|
||||
# ===========================================
|
||||
smb_shares:
|
||||
# TODO: smbctl listshares
|
||||
media:
|
||||
dataset: "tank/media"
|
||||
share_name: "media"
|
||||
description: "Biblioteca de mídia"
|
||||
|
||||
picsur:
|
||||
dataset: "tank/picsur"
|
||||
share_name: "picsur"
|
||||
description: "Dados do Picsur"
|
||||
|
||||
# ===========================================
|
||||
# NFS Exports
|
||||
# ===========================================
|
||||
nfs_exports:
|
||||
# TODO: cat /etc/exports
|
||||
tank:
|
||||
- path: "/mnt/tank/docker-volumes"
|
||||
clients: "10.0.0.50" # Dockerino
|
||||
options: "rw,no_root_squash,subtree_check"
|
||||
- path: "/mnt/tank/picsur"
|
||||
clients: "10.0.0.50" # Dockerino
|
||||
options: "rw,no_root_squash,subtree_check"
|
||||
- path: "/mnt/tank/media"
|
||||
clients: "10.0.0.60,10.0.0.70" # Media VM, HA VM
|
||||
options: "rw,no_root_squash,subtree_check"
|
||||
- path: "/mnt/tank/homeassistant"
|
||||
clients: "10.0.0.70" # HA VM
|
||||
options: "rw,no_root_squash,subtree_check"
|
||||
|
||||
# ===========================================
|
||||
# Notes
|
||||
# ===========================================
|
||||
# Para descobrir configuração real:
|
||||
# Web UI: Storage > Disks
|
||||
# CLI: zpool status -v
|
||||
# CLI: zfs list -o name,mountpoint,used,available
|
||||
# CLI: cat /etc/exports
|
||||
Loading…
Reference in New Issue
Block a user