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:
@@ -53,10 +53,14 @@ Observed and standardized across servers:
|
||||
|
||||
| Name | IP | Site | Role | Details |
|
||||
|------|-----|------|------|---------|
|
||||
| ana-ml2 | 10.250.50.54 | Anaheim (`10.250.0.0/16`) | GPU / AI inference | `servers/ana-ml2/README.md` |
|
||||
| ana-docker | 10.250.50.70 | Anaheim (`10.250.0.0/16`) | General-purpose Docker host (non-GPU) | `servers/ana-docker/README.md` |
|
||||
| nh3-docker | 10.100.50.40 | NH3 (`10.100.0.0/16`) | General-purpose Docker host (non-GPU) | `servers/nh3-docker/README.md` |
|
||||
| esh-docker-vm | 10.0.50.45 | ESH home lab (`esteban.net`, `10.0.50.0/24`) | Home-lab Docker host (non-PFI scope) | `servers/esh-docker-vm/README.md` |
|
||||
| ana-ml2 | 10.250.50.54 | Anaheim (`10.250.0.0/16`) | GPU / AI inference (bare metal) | `servers/ana-ml2/README.md` |
|
||||
| ana-docker | 10.250.50.70 | Anaheim | General-purpose Docker host (non-GPU VM on pfi-pve) | `servers/ana-docker/README.md` |
|
||||
| pfi-pve | 10.250.250.31 | Anaheim | Proxmox VE hypervisor | `servers/pfi-pve/README.md` |
|
||||
| nh3-docker | 10.100.50.40 | NH3 (`10.100.0.0/16`) | General-purpose Docker host (non-GPU VM on nh3-pve) | `servers/nh3-docker/README.md` |
|
||||
| nh3-pve | 10.100.250.60 | NH3 | Proxmox VE hypervisor | `servers/nh3-pve/README.md` |
|
||||
| esh-docker-vm | 10.0.50.45 | ESH home lab (`esteban.net`, `10.0.50.0/24`) | Home-lab Docker host (VM on esh-pve) | `servers/esh-docker-vm/README.md` |
|
||||
| esh-pve | 10.0.250.35 | ESH home lab | Proxmox VE hypervisor | `servers/esh-pve/README.md` |
|
||||
| esh-pve-nas | 10.0.50.55 | ESH home lab | Proxmox VE hypervisor (storage / media) | `servers/esh-pve-nas/README.md` |
|
||||
|
||||
**Placement rules:**
|
||||
- GPU-required stacks → `ana-ml2`.
|
||||
@@ -64,6 +68,7 @@ Observed and standardized across servers:
|
||||
- NH-site non-GPU services → `nh3-docker`.
|
||||
- ESH home-lab workloads (`esteban.net`) → `esh-docker-vm`. Not part of the PFI colo topology, but shares monitoring/backup tooling.
|
||||
- Cross-site services (e.g. Beszel hub, Dozzle hub) live on `ana-docker` and pull from agents on the other hosts.
|
||||
- **Hypervisors** (`pfi-pve`, `nh3-pve`, `esh-pve`, `esh-pve-nas`) are tracked for inventory / capacity planning. Don't deploy Docker stacks directly on them; new workloads land as VMs. `server_inspect.sh` captures host-level detail only — VM/LXC/ZFS enumeration needs Proxmox-native tooling (`qm list`, `pvesh get …`, `zpool list`).
|
||||
|
||||
## How to refresh a server's state
|
||||
|
||||
|
||||
@@ -6,12 +6,23 @@ See **[CLAUDE.md](CLAUDE.md)** for the full set of conventions and the rules Cla
|
||||
|
||||
## The fleet
|
||||
|
||||
**Docker hosts:**
|
||||
|
||||
| Host | IP | Site | Role |
|
||||
|---|---|---|---|
|
||||
| ana-ml2 | `10.250.50.54` | Anaheim (`10.250.0.0/16`) | GPU / AI inference |
|
||||
| ana-docker | `10.250.50.70` | Anaheim | General-purpose Docker + cross-site hubs |
|
||||
| nh3-docker | `10.100.50.40` | NH3 (`10.100.0.0/16`) | General-purpose Docker (NH site) |
|
||||
| esh-docker-vm | `10.0.50.45` | ESH home lab (`esteban.net`) | Home-lab Docker (non-PFI scope) |
|
||||
| ana-ml2 | `10.250.50.54` | Anaheim (`10.250.0.0/16`) | GPU / AI inference (bare metal) |
|
||||
| ana-docker | `10.250.50.70` | Anaheim | General-purpose Docker + cross-site hubs (VM on pfi-pve) |
|
||||
| nh3-docker | `10.100.50.40` | NH3 (`10.100.0.0/16`) | General-purpose Docker (VM on nh3-pve) |
|
||||
| esh-docker-vm | `10.0.50.45` | ESH home lab (`esteban.net`) | Home-lab Docker (VM on esh-pve, non-PFI scope) |
|
||||
|
||||
**Proxmox hypervisors** (tracked for inventory; not Docker targets):
|
||||
|
||||
| Host | IP | Site | Role |
|
||||
|---|---|---|---|
|
||||
| pfi-pve | `10.250.250.31` | Anaheim | Proxmox VE (188 GB / Xeon Silver 4310) |
|
||||
| nh3-pve | `10.100.250.60` | NH3 | Proxmox VE (62 GB / i9-13900H) |
|
||||
| esh-pve | `10.0.250.35` | ESH home lab | Proxmox VE (62 GB / i9-13900H) |
|
||||
| esh-pve-nas | `10.0.50.55` | ESH home lab | Proxmox VE, storage-dedicated (125 GB / Xeon W-1250) |
|
||||
|
||||
Per-host snapshots of the running system live under `servers/<host>/system-details.txt`, refreshed via `scripts/refresh-server-info.sh`.
|
||||
|
||||
|
||||
@@ -82,14 +82,20 @@ done
|
||||
[ -n "$STACK" ] || { echo "usage: $(basename "$0") <host> <stack>" >&2; exit 2; }
|
||||
|
||||
resolve_target() {
|
||||
# ssh-target file wins when present (may carry user@ or non-default port);
|
||||
# /etc/hosts + ssh_config is the fallback.
|
||||
local host="$1"
|
||||
local fb="$SERVERS_DIR/$host/ssh-target"
|
||||
if [ -f "$fb" ]; then
|
||||
local t
|
||||
t=$(awk 'NF{print $1; exit}' "$fb")
|
||||
if [ -n "$t" ]; then echo "$t"; return; fi
|
||||
fi
|
||||
local effective
|
||||
effective=$(ssh -G "$host" 2>/dev/null | awk '/^hostname /{print $2; exit}')
|
||||
if [ -n "$effective" ] && getent hosts "$effective" >/dev/null 2>&1; then
|
||||
echo "$host"; return
|
||||
fi
|
||||
local fb="$SERVERS_DIR/$host/ssh-target"
|
||||
if [ -f "$fb" ]; then awk 'NF{print $1; exit}' "$fb"; return; fi
|
||||
echo "$host"
|
||||
}
|
||||
|
||||
|
||||
@@ -94,21 +94,24 @@ fi
|
||||
resolve_target() {
|
||||
# Prints the SSH target to use for a given dir name.
|
||||
# Preference order:
|
||||
# 1. The dir name — if ssh's effective hostname (after ssh_config) resolves.
|
||||
# 2. Contents of servers/<host>/ssh-target (first whitespace token).
|
||||
# 1. servers/<host>/ssh-target if present — it may carry a user
|
||||
# prefix (root@host) or port that /etc/hosts + ssh_config can't
|
||||
# express, so an explicit file is authoritative when it exists.
|
||||
# 2. The dir name, if /etc/hosts or DNS resolves it.
|
||||
# 3. The dir name as-is — let ssh fail with its own error.
|
||||
local host="$1"
|
||||
local fallback="$SERVERS_DIR/$host/ssh-target"
|
||||
if [ -f "$fallback" ]; then
|
||||
local target
|
||||
target=$(awk 'NF{print $1; exit}' "$fallback")
|
||||
if [ -n "$target" ]; then echo "$target"; return; fi
|
||||
fi
|
||||
local effective
|
||||
effective=$(ssh -G "$host" 2>/dev/null | awk '/^hostname /{print $2; exit}')
|
||||
if [ -n "$effective" ] && getent hosts "$effective" >/dev/null 2>&1; then
|
||||
echo "$host"
|
||||
return
|
||||
fi
|
||||
local fallback="$SERVERS_DIR/$host/ssh-target"
|
||||
if [ -f "$fallback" ]; then
|
||||
awk 'NF{print $1; exit}' "$fallback"
|
||||
return
|
||||
fi
|
||||
echo "$host"
|
||||
}
|
||||
|
||||
|
||||
@@ -71,14 +71,20 @@ for arg in "$@"; do
|
||||
done
|
||||
|
||||
resolve_target() {
|
||||
# ssh-target file wins when present (may carry user@ or non-default port);
|
||||
# /etc/hosts + ssh_config is the fallback.
|
||||
local host="$1"
|
||||
local fb="$SERVERS_DIR/$host/ssh-target"
|
||||
if [ -f "$fb" ]; then
|
||||
local t
|
||||
t=$(awk 'NF{print $1; exit}' "$fb")
|
||||
if [ -n "$t" ]; then echo "$t"; return; fi
|
||||
fi
|
||||
local effective
|
||||
effective=$(ssh -G "$host" 2>/dev/null | awk '/^hostname /{print $2; exit}')
|
||||
if [ -n "$effective" ] && getent hosts "$effective" >/dev/null 2>&1; then
|
||||
echo "$host"; return
|
||||
fi
|
||||
local fb="$SERVERS_DIR/$host/ssh-target"
|
||||
if [ -f "$fb" ]; then awk 'NF{print $1; exit}' "$fb"; return; fi
|
||||
echo "$host"
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
# esh-pve-nas
|
||||
|
||||
Second Proxmox VE host at the ESH home lab (`esh-nas-pve.esteban.net`), dedicated to NAS / storage duty.
|
||||
|
||||
## Network
|
||||
|
||||
- **LAN IP:** 10.0.50.55
|
||||
- **FQDN:** `esh-nas-pve.esteban.net`
|
||||
- **Web UI:** `https://10.0.50.55:8006`
|
||||
- **SSH:** `root@esh-pve-nas` (key auth)
|
||||
|
||||
Media services on this box sit at `10.0.50.56` (Plex) and `10.0.50.57` (Jellyfin) — references to `esh-nas-pve` in the homepage config point at those addresses.
|
||||
|
||||
## Hardware
|
||||
|
||||
- **CPU:** Intel Xeon W-1250 @ 3.30 GHz
|
||||
- **RAM:** 125.6 GB
|
||||
- **Kernel:** `6.8.12-13-pve` (Proxmox 8.x)
|
||||
- **Storage:** local `pve-root` is tiny (5.9 GB, **87% used — worth watching**) + NFS `/mnt/pve/tank-vmbu` (93 TB) for VM backups
|
||||
|
||||
> **Root-fs pressure:** at 87% used on a 5.9 GB root partition, there's not much room for package upgrades or logs. Worth cleaning up or growing the root if this host is staying in production for a while.
|
||||
|
||||
## What it runs
|
||||
|
||||
Media + storage-adjacent workloads for the ESH site. Not yet catalogued here; `qm list` / `pct list` on the host is authoritative.
|
||||
|
||||
The `ESH-FileBot` entry in homepage (`10.0.50.70`, labeled "Restic Backup Target and File Sync — esh-nas-pve") is a workload running here — mentioned in the backup project as a possible additional restic endpoint; confirm role before integrating into the fleet plan.
|
||||
|
||||
## Refresh state
|
||||
|
||||
```bash
|
||||
scripts/refresh-server-info.sh esh-pve-nas
|
||||
```
|
||||
|
||||
## Placement rule
|
||||
|
||||
Hypervisor for ESH storage/media VMs. Non-PFI scope.
|
||||
@@ -0,0 +1 @@
|
||||
root@esh-pve-nas
|
||||
@@ -0,0 +1,122 @@
|
||||
|
||||
===== HOST =====
|
||||
|
||||
Hostname: esh-nas-pve.esteban.net
|
||||
Date: 2026-04-20T14:54:19-07:00
|
||||
Uptime: up 2 weeks, 6 days, 22 hours, 45 minutes
|
||||
OS: Debian GNU/Linux 12 (bookworm)
|
||||
Kernel: 6.8.12-13-pve
|
||||
Arch: x86_64
|
||||
|
||||
===== HARDWARE =====
|
||||
|
||||
CPU cores: 12
|
||||
CPU model: Intel(R) Xeon(R) W-1250 CPU @ 3.30GHz
|
||||
MemTotal: 125.6 GB
|
||||
MemAvailable: 56.4 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 5.9G 4.9G 756M 87% /
|
||||
efivarfs 192K 30K 158K 16% /sys/firmware/efi/efivars
|
||||
/dev/sdq2 511M 12M 500M 3% /boot/efi
|
||||
ssd 1.5T 128K 1.5T 1% /ssd
|
||||
nvme 870G 128K 870G 1% /nvme
|
||||
ssd/iso 1.5T 4.6G 1.5T 1% /ssd/iso
|
||||
ssd/vm 1.5T 128K 1.5T 1% /ssd/vm
|
||||
ssd/ssd-pvestore 1.5T 128K 1.5T 1% /ssd/ssd-pvestore
|
||||
nvme/subvol-107-disk-0 40G 8.0G 33G 20% /nvme/subvol-107-disk-0
|
||||
ssd/compose 1.5T 4.1G 1.5T 1% /ssd/compose
|
||||
nvme/subvol-105-disk-0 128G 7.9G 121G 7% /nvme/subvol-105-disk-0
|
||||
nvme/subvol-106-disk-0 80G 1.1G 79G 2% /nvme/subvol-106-disk-0
|
||||
nvme/subvol-103-disk-0 128G 807M 128G 1% /nvme/subvol-103-disk-0
|
||||
nvme/nvme-pvestore 870G 28M 870G 1% /nvme/nvme-pvestore
|
||||
nvme/tmp 872G 1.6G 870G 1% /nvme/tmp
|
||||
nvme/qnap-apps 870G 32M 870G 1% /nvme/qnap-apps
|
||||
tank 92T 384K 92T 1% /tank
|
||||
tank/music 92T 256K 92T 1% /tank/music
|
||||
tank/share 96T 4.0T 92T 5% /tank/share
|
||||
tank/books 92T 96G 92T 1% /tank/books
|
||||
tank/media 111T 20T 92T 18% /tank/media
|
||||
tank/documents 92T 256K 92T 1% /tank/documents
|
||||
tank/backup 92T 26G 92T 1% /tank/backup
|
||||
tank/vmbu 93T 1.4T 92T 2% /tank/vmbu
|
||||
tank/pvestore 92T 2.7G 92T 1% /tank/pvestore
|
||||
/dev/fuse 128M 32K 128M 1% /etc/pve
|
||||
10.0.50.50:/mnt/tank-vmbu 93T 1.4T 92T 2% /mnt/pve/tank-vmbu
|
||||
|
||||
===== PERSISTENT MOUNTS (/etc/fstab, non-comment) =====
|
||||
|
||||
/dev/pve/root / ext4 errors=remount-ro 0 1
|
||||
UUID=1D32-43A5 /boot/efi vfat defaults 0 1
|
||||
/dev/pve/swap none swap sw 0 0
|
||||
proc /proc proc defaults 0 0
|
||||
|
||||
===== TARGETED DATA PATHS =====
|
||||
|
||||
/tank (total: 25T)
|
||||
total 137
|
||||
drwxr-xr-x 10 root root 10 2024-06-09 13:06 .
|
||||
drwxr-xr-x 21 root root 4096 2024-06-08 00:27 ..
|
||||
drwxrwxrwx 7 nas nas_shares 7 2024-06-09 12:48 backup
|
||||
drwxrwxrwx 7 nas nas_shares 9 2025-05-06 10:58 books
|
||||
drwxrwxrwx 3 nas nas_shares 3 2024-06-09 12:53 documents
|
||||
drwxrwxrwx 8 nas nas_shares 9 2024-06-10 14:06 media
|
||||
drwxrwxrwx 2 nas nas_shares 2 2024-06-09 09:41 music
|
||||
drwxrwxrwx 7 nas nas_shares 7 2024-06-09 13:37 pvestore
|
||||
drwxrwxrwx 9 nas nas_shares 11 2025-03-09 15:02 share
|
||||
drwxrwxrwx 3 nas nas_shares 3 2024-06-08 00:31 vmbu
|
||||
|
||||
/opt (total: 4.0K)
|
||||
total 8
|
||||
drwxr-xr-x 2 root root 4096 2024-04-24 04:26 .
|
||||
drwxr-xr-x 21 root root 4096 2024-06-08 00:27 ..
|
||||
|
||||
/srv (total: 4.0K)
|
||||
total 8
|
||||
drwxr-xr-x 2 root root 4096 2024-04-24 04:26 .
|
||||
drwxr-xr-x 21 root root 4096 2024-06-08 00:27 ..
|
||||
|
||||
|
||||
===== 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@103.service running
|
||||
pve-container@105.service running
|
||||
pve-container@106.service running
|
||||
pve-container@107.service running
|
||||
|
||||
===== DONE =====
|
||||
|
||||
Paste the above back into the chat, or pass a path as argv[1] to save.
|
||||
@@ -0,0 +1,35 @@
|
||||
# esh-pve
|
||||
|
||||
Proxmox VE hypervisor for the ESH home lab (`pve.esteban.net`). Non-PFI scope.
|
||||
|
||||
## Network
|
||||
|
||||
- **LAN IP:** 10.0.250.35
|
||||
- **FQDN:** `pve.esteban.net`
|
||||
- **Web UI:** `https://10.0.250.35:8006`
|
||||
- **SSH:** `root@esh-pve` (key auth)
|
||||
|
||||
## Hardware
|
||||
|
||||
- **CPU:** 13th Gen Intel Core i9-13900H
|
||||
- **RAM:** 62.5 GB
|
||||
- **Kernel:** `6.8.12-16-pve` (Proxmox 8.x)
|
||||
- **Storage:** local `pve-root` at 94G (21% used) + two large NFS mounts from `10.0.50.50`:
|
||||
- `/mnt/pve/esh-nas` — 92 TB available on `/mnt/pvestore`
|
||||
- `/mnt/pve/tank-vmbu` — 93 TB, VM backup target (~1.4 TB used)
|
||||
|
||||
## What it runs
|
||||
|
||||
`esh-docker-vm` (`10.0.50.45`) is a VM here. Other home-lab VMs are not yet catalogued in this workspace — run `qm list` on the host for the live inventory.
|
||||
|
||||
## Refresh state
|
||||
|
||||
```bash
|
||||
scripts/refresh-server-info.sh esh-pve
|
||||
```
|
||||
|
||||
Same Proxmox-inspect caveat as `pfi-pve`.
|
||||
|
||||
## Placement rule
|
||||
|
||||
Hypervisor for ESH home-lab VMs. Not part of the PFI colo topology.
|
||||
@@ -0,0 +1 @@
|
||||
root@esh-pve
|
||||
@@ -0,0 +1,91 @@
|
||||
|
||||
===== HOST =====
|
||||
|
||||
Hostname: pve.esteban.net
|
||||
Date: 2026-04-20T14:50:55-07:00
|
||||
Uptime: up 2 weeks, 6 days, 22 hours, 35 minutes
|
||||
OS: Debian GNU/Linux 12 (bookworm)
|
||||
Kernel: 6.8.12-16-pve
|
||||
Arch: x86_64
|
||||
|
||||
===== HARDWARE =====
|
||||
|
||||
CPU cores: 20
|
||||
CPU model: 13th Gen Intel(R) Core(TM) i9-13900H
|
||||
MemTotal: 62.5 GB
|
||||
MemAvailable: 27.5 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 94G 18G 72G 21% /
|
||||
efivarfs 192K 131K 57K 70% /sys/firmware/efi/efivars
|
||||
/dev/nvme0n1p2 1022M 12M 1011M 2% /boot/efi
|
||||
/dev/fuse 128M 32K 128M 1% /etc/pve
|
||||
10.0.50.50:/mnt/pvestore 92T 2.7G 92T 1% /mnt/pve/esh-nas
|
||||
10.0.50.50:/mnt/tank-vmbu 93T 1.4T 92T 2% /mnt/pve/tank-vmbu
|
||||
|
||||
===== PERSISTENT MOUNTS (/etc/fstab, non-comment) =====
|
||||
|
||||
/dev/pve/root / ext4 errors=remount-ro 0 1
|
||||
UUID=E902-F78C /boot/efi vfat defaults 0 1
|
||||
/dev/pve/swap none swap sw 0 0
|
||||
proc /proc proc defaults 0 0
|
||||
|
||||
===== TARGETED DATA PATHS =====
|
||||
|
||||
/tank (total: 12K)
|
||||
total 12
|
||||
drwxr-xr-x 3 root root 4096 2024-06-08 00:57 .
|
||||
drwxr-xr-x 20 root root 4096 2025-12-02 15:01 ..
|
||||
drwxr-xr-x 3 root root 4096 2024-06-08 00:57 vmbu
|
||||
|
||||
/opt (total: 4.0K)
|
||||
total 8
|
||||
drwxr-xr-x 2 root root 4096 2024-04-24 04:26 .
|
||||
drwxr-xr-x 20 root root 4096 2025-12-02 15:01 ..
|
||||
|
||||
/srv (total: 4.0K)
|
||||
total 8
|
||||
drwxr-xr-x 2 root root 4096 2024-04-24 04:26 .
|
||||
drwxr-xr-x 20 root root 4096 2025-12-02 15:01 ..
|
||||
|
||||
|
||||
===== 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 =====
|
||||
|
||||
(none matching)
|
||||
|
||||
===== DONE =====
|
||||
|
||||
Paste the above back into the chat, or pass a path as argv[1] to save.
|
||||
@@ -0,0 +1,33 @@
|
||||
# nh3-pve
|
||||
|
||||
Proxmox VE hypervisor for the NH3 site (`nh3-vmhost.phasefinal.com`).
|
||||
|
||||
## Network
|
||||
|
||||
- **LAN IP:** 10.100.250.60
|
||||
- **FQDN:** `nh3-vmhost.phasefinal.com`
|
||||
- **Web UI:** `https://10.100.250.60:8006`
|
||||
- **SSH:** `root@nh3-pve` (key auth)
|
||||
|
||||
## Hardware
|
||||
|
||||
- **CPU:** 13th Gen Intel Core i9-13900H
|
||||
- **RAM:** 62.5 GB
|
||||
- **Kernel:** `6.8.12-11-pve` (Proxmox 8.x)
|
||||
- **Storage:** mostly networked — `/mnt/pve/pfi-nh3-nas` (42 TB) mounted from the Synology at `10.100.50.50:/volume1/VMStorage`; ~27 TB used
|
||||
|
||||
## What it runs
|
||||
|
||||
`nh3-docker` (`10.100.50.40`) is a VM on this hypervisor. Other VMs (if any) aren't catalogued yet — run `qm list` on the host when you need the current inventory.
|
||||
|
||||
## Refresh state
|
||||
|
||||
```bash
|
||||
scripts/refresh-server-info.sh nh3-pve
|
||||
```
|
||||
|
||||
Same Proxmox-inspect caveat as `pfi-pve`: snapshots capture host-level detail only. VM/LXC/storage enumeration needs the Proxmox tooling manually.
|
||||
|
||||
## Placement rule
|
||||
|
||||
Hypervisor. New NH-site workloads land here as VMs.
|
||||
@@ -0,0 +1 @@
|
||||
root@nh3-pve
|
||||
@@ -0,0 +1,89 @@
|
||||
|
||||
===== HOST =====
|
||||
|
||||
Hostname: nh3-vmhost.phasefinal.com
|
||||
Date: 2026-04-20T14:50:55-07:00
|
||||
Uptime: up 5 weeks, 5 days, 7 hours, 39 minutes
|
||||
OS: Debian GNU/Linux 12 (bookworm)
|
||||
Kernel: 6.8.12-11-pve
|
||||
Arch: x86_64
|
||||
|
||||
===== HARDWARE =====
|
||||
|
||||
CPU cores: 20
|
||||
CPU model: 13th Gen Intel(R) Core(TM) i9-13900H
|
||||
MemTotal: 62.5 GB
|
||||
MemAvailable: 39.3 GB
|
||||
|
||||
===== GPUS =====
|
||||
|
||||
nvidia-smi not present (no NVIDIA GPUs or driver not installed)
|
||||
|
||||
===== FILESYSTEMS (df) =====
|
||||
|
||||
Filesystem Size Used Avail Use% Mounted on
|
||||
rpool/ROOT/pve-1 857G 6.2G 850G 1% /
|
||||
efivarfs 192K 127K 61K 68% /sys/firmware/efi/efivars
|
||||
rpool/var-lib-vz 851G 864M 850G 1% /var/lib/vz
|
||||
rpool 850G 128K 850G 1% /rpool
|
||||
rpool/ROOT 850G 128K 850G 1% /rpool/ROOT
|
||||
rpool/data 850G 128K 850G 1% /rpool/data
|
||||
rpool/data/subvol-103-disk-0 40G 831M 40G 3% /rpool/data/subvol-103-disk-0
|
||||
/dev/fuse 128M 20K 128M 1% /etc/pve
|
||||
10.100.50.50:/volume1/VMStorage 42T 27T 16T 64% /mnt/pve/pfi-nh3-nas
|
||||
|
||||
===== PERSISTENT MOUNTS (/etc/fstab, non-comment) =====
|
||||
|
||||
proc /proc proc defaults 0 0
|
||||
|
||||
===== TARGETED DATA PATHS =====
|
||||
|
||||
/opt (total: 512)
|
||||
total 9
|
||||
drwxr-xr-x 2 root root 2 2024-02-05 08:38 .
|
||||
drwxr-xr-x 18 root root 22 2024-04-23 07:00 ..
|
||||
|
||||
/srv (total: 512)
|
||||
total 9
|
||||
drwxr-xr-x 2 root root 2 2024-02-05 08:38 .
|
||||
drwxr-xr-x 18 root root 22 2024-04-23 07:00 ..
|
||||
|
||||
|
||||
===== 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
|
||||
0.0.0.0:37105
|
||||
0.0.0.0:59691
|
||||
[::]:111
|
||||
[::1]:25
|
||||
127.0.0.1:25
|
||||
127.0.0.1:85
|
||||
[::]:22
|
||||
*:3128
|
||||
[::]:43035
|
||||
[::]:45287
|
||||
*:8006
|
||||
|
||||
===== MODEL / HUGGINGFACE CACHES =====
|
||||
|
||||
|
||||
===== DOCKER-ADJACENT SYSTEMD SERVICES =====
|
||||
|
||||
pve-container@103.service running
|
||||
|
||||
===== DONE =====
|
||||
|
||||
Paste the above back into the chat, or pass a path as argv[1] to save.
|
||||
@@ -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.
|
||||
@@ -0,0 +1 @@
|
||||
root@pfi-pve
|
||||
@@ -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.
|
||||
Reference in New Issue
Block a user