homelab/inventory/truenas.yaml

164 lines
4.2 KiB
YAML
Raw Normal View History

# ===========================================
# 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