Add the four Proxmox hypervisors to the inventory

pfi-pve (Anaheim), nh3-pve (NH), esh-pve + esh-pve-nas (ESH home lab) now
have servers/<host>/ entries with ssh-target files, README stubs, and
first snapshots. Register all four via add-host.sh + ssh-copy-id; SSH
auth is root@<name> with key-based access.

Fix a resolver bug in the three workspace scripts: previously, when a
hostname resolved via /etc/hosts, resolve_target returned the bare name
and ssh dropped the user prefix stored in ssh-target (connecting as the
wrong user). Now ssh-target wins whenever it's present, since it can
carry user@ or port info that /etc/hosts + ssh_config cannot. Falls back
to the dir name only when no ssh-target file exists.

CLAUDE.md and README.md split the fleet table into Docker hosts vs
hypervisors with an explicit placement rule: don't deploy Docker stacks
on PVE hosts; capture host-level detail with server_inspect.sh, use
Proxmox-native tooling (qm list, pvesh, zpool) for VM/storage audits.
This commit is contained in:
vh
2026-04-20 14:58:17 -07:00
parent f6b0e2b22f
commit 8c15ec2d5f
17 changed files with 593 additions and 19 deletions
+35
View File
@@ -0,0 +1,35 @@
# pfi-pve
Proxmox VE hypervisor for the Anaheim colo (`pve.phasefinal.com`). Hosts every VM in the PFI-ANA cluster.
## Network
- **LAN IP:** 10.250.250.31
- **FQDN:** `pve.phasefinal.com`
- **Web UI:** `https://10.250.250.31:8006`
- **SSH:** `root@pfi-pve` (key auth; `ssh-target` file uses the hostname)
## Hardware
- **CPU:** Intel Xeon Silver 4310 @ 2.10 GHz
- **RAM:** 188 GB
- **Kernel:** `6.8.12-8-pve` (Proxmox 8.x)
- **Storage:** local `pve-root` at 65G (49% used) + `pve` LVM pool for VM disks
## What it runs
The VMs in [`docs/pfi/proxmox-vms.md`](../../docs/pfi/proxmox-vms.md) live here — VM 100 (PFI-ANA-TRUENAS, now Debian NFS/SMB), VM 101 (DC), VM 102 (PFI-ANA-Docker = `ana-docker`), 103–111 (Mongo, Postgres, Tailscale, Pteradactyl, Webhost, tacticalrmm, etc.).
`ana-ml2` (`10.250.50.54`) is a separate bare-metal box, not on this hypervisor.
## Refresh state
```bash
scripts/refresh-server-info.sh pfi-pve
```
The snapshot captures host/hardware/filesystem/network/ports but **not** VM-level detail (`server_inspect.sh` targets Docker hosts). Running `qm list`, `pvesh get /cluster/resources`, and `zpool list -v` manually is the current way to audit VMs and storage. A Proxmox-flavored inspect script is a future improvement.
## Placement rule
This is a hypervisor, not a target for Docker stacks. Add new workloads by standing up VMs here (or on ana-docker / ana-ml2, whichever fits) rather than deploying containers directly on the PVE host.
+1
View File
@@ -0,0 +1 @@
root@pfi-pve
+97
View File
@@ -0,0 +1,97 @@
===== HOST =====
Hostname: pve.phasefinal.com
Date: 2026-04-20T14:50:54-07:00
Uptime: up 34 weeks, 2 days, 1 hour, 32 minutes
OS: Debian GNU/Linux 12 (bookworm)
Kernel: 6.8.12-8-pve
Arch: x86_64
===== HARDWARE =====
CPU cores: 48
CPU model: Intel(R) Xeon(R) Silver 4310 CPU @ 2.10GHz
MemTotal: 188.1 GB
MemAvailable: 40.7 GB
===== GPUS =====
nvidia-smi not present (no NVIDIA GPUs or driver not installed)
===== FILESYSTEMS (df) =====
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/pve-root 65G 30G 32G 49% /
efivarfs 304K 212K 88K 71% /sys/firmware/efi/efivars
/dev/sdk2 1022M 356K 1022M 1% /boot/efi
ospool 11T 128K 11T 1% /ospool
NASPool 20T 128K 20T 1% /NASPool
NASPool/db 20T 282M 20T 1% /NASPool/db
NASPool/docker 20T 384K 20T 1% /NASPool/docker
ospool/subvol-113-disk-0 8.0G 623M 7.4G 8% /ospool/subvol-113-disk-0
ospool/subvol-109-disk-0 80G 812M 80G 1% /ospool/subvol-109-disk-0
ospool/subvol-112-disk-0 80G 813M 80G 1% /ospool/subvol-112-disk-0
ospool/backup 11T 240M 11T 1% /ospool/backup
NASPool/backupStore 20T 1.1G 20T 1% /NASPool/backupStore
NASPool/pve-VMStorage 22T 2.4T 20T 11% /NASPool/pve-VMStorage
NASPool/webdav 20T 256K 20T 1% /NASPool/webdav
/dev/fuse 128M 24K 128M 1% /etc/pve
===== PERSISTENT MOUNTS (/etc/fstab, non-comment) =====
/dev/pve/root / ext4 errors=remount-ro 0 1
UUID=C333-4BC2 /boot/efi vfat defaults 0 1
/dev/pve/swap none swap sw 0 0
proc /proc proc defaults 0 0
===== TARGETED DATA PATHS =====
/opt (total: 8.0M)
total 12
drwxr-xr-x 3 root root 4096 2026-04-18 21:54 .
drwxr-xr-x 20 root root 4096 2024-06-12 11:08 ..
drwxr-xr-x 3 root root 4096 2026-04-18 21:54 MegaRAID
/srv (total: 4.0K)
total 8
drwxr-xr-x 2 root root 4096 2023-03-22 07:38 .
drwxr-xr-x 20 root root 4096 2024-06-12 11:08 ..
===== DOCKER =====
docker not installed
===== COMPOSE FILES (/opt/docker/compose/) =====
/opt/docker/compose not present
===== CONFIG LAYOUT (/opt/docker/conf/ — top 200 entries) =====
/opt/docker/conf not present
===== LISTENING PORTS =====
0.0.0.0:111
0.0.0.0:22
[::]:111
[::1]:25
127.0.0.1:25
127.0.0.1:85
[::]:22
*:3128
*:8006
===== MODEL / HUGGINGFACE CACHES =====
===== DOCKER-ADJACENT SYSTEMD SERVICES =====
pve-container@109.service running
pve-container@112.service running
pve-container@113.service running
===== DONE =====
Paste the above back into the chat, or pass a path as argv[1] to save.