servers: register nh3-extdev (sudo-less infra-ops manager box)

NH3 manager/external-dev box at 10.100.50.42 (Debian 13 VM on nh3-pve),
successor to the retired nh3-ansible. infra-ops identity here is sudo-LESS
by operator decision (2026-06-17): key-only, no NOPASSWD, not in docker
group — user-level management only. Adds servers/nh3-extdev/{README,
ssh-target,system-details.txt}, the CLAUDE.md inventory row, and a local
ssh alias (nh3-extdev -> infra-ops@10.100.50.42, infra-ops key). Login +
sudo-less posture verified.
This commit is contained in:
2026-06-17 14:57:06 -07:00
parent fe77a3596a
commit a841eab3ff
4 changed files with 110 additions and 0 deletions
+1
View File
@@ -105,6 +105,7 @@ Observed and standardized across servers:
| corviduo-dev | 10.250.50.152 | Anaheim | **Worldtree-team dev VM (PFI-hosted)** — runs the demo + personal + pinned Worldtree deployments vor/asset-engine talk to | `servers/corviduo-dev/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-dev | 10.100.10.50 | NH3 | Dev box — fleet sidecars (egress SOCKS5 proxy, ttyd seat, mead-hall, volva) + live Claude Code sessions; not a Docker-stack host | `servers/nh3-dev/README.md` |
| nh3-extdev | 10.100.50.42 | NH3 | Manager / external-dev box (VM on nh3-pve, Debian 13); **sudo-less** infra-ops identity (user-level only, no Docker); successor to retired nh3-ansible | `servers/nh3-extdev/README.md` |
| nh3-pve | 10.100.250.60 | NH3 | Proxmox VE hypervisor | `servers/nh3-pve/README.md` |
| nh3-nas | 10.100.50.50 | NH3 | Synology RS2418+ — NFS exports, rest-server-nh3, PBS-NH3 datastore backend | `servers/nh3-nas/README.md` |
| pbs-nh3 | 10.100.50.90 | NH3 | Proxmox Backup Server — DR mirror (VM on nh3-pve, NFS datastore on nh3-nas); syncs from pbs-ana | `servers/pbs-nh3/README.md` |
+34
View File
@@ -0,0 +1,34 @@
# nh3-extdev
NH3-site **manager / external-dev box**`10.100.50.42`. Fresh Debian 13
(trixie) VM on `nh3-pve` (QEMU: 8 vCPU / 7.8 GB / 250 GB, no GPU). Successor to
the retired **nh3-ansible**. Not a Docker-stack host (Docker not installed).
**Reach:** the dedicated agent identity only —
`ssh nh3-extdev` (alias) = `ssh -i ~/.ssh/infra-ops_ed25519 infra-ops@10.100.50.42`.
The `infra-ops` user here is **sudo-LESS by design** (operator decision
2026-06-17): key-only login, password locked, **no NOPASSWD sudo**, **not** in the
`docker` group — deliberately tighter than the rest of the fleet's infra-ops
identity ([`reference_infra_ops_sudo_identity`] in auto-memory, which is the
*sudo* variant). Management here is **user-level only**: files/repos/tooling under
the home dir, `systemctl --user`, world-readable system state. No root ops (apt,
system services, `/etc`, root-owned files) and **no Docker** unless a later,
explicit grant is made (command-scoped sudoers preferred over docker-group, which
is root-equivalent).
## Purpose
NH3 manager / external-dev box; role being established (2026-06-17). Successor to
the retired `nh3-ansible`.
<!-- Refine once the workload is settled — e.g. if this becomes the pi/GLM
client-agent control node, document the per-client workspace layout here. -->
## Notes
- Debian **13** (trixie) — newer than the fleet's Debian-12 baseline; watch for
package/behaviour drift vs other hosts.
- `sudo` warns `unable to resolve host nh3-extdev` (hostname not in `/etc/hosts`)
— cosmetic; add `127.0.1.1 nh3-extdev` to `/etc/hosts` (needs root) to silence.
- Stood up 2026-06-17; first `system-details.txt` captured the same day (sudo-less,
so docker/root-only sections are necessarily blank).
+1
View File
@@ -0,0 +1 @@
infra-ops@10.100.50.42
+74
View File
@@ -0,0 +1,74 @@
===== HOST =====
Hostname: nh3-extdev
Date: 2026-06-17T14:55:16-07:00
Uptime: up 16 minutes
OS: Debian GNU/Linux 13 (trixie)
Kernel: 6.12.90+deb13.1-amd64
Arch: x86_64
===== HARDWARE =====
CPU cores: 8
CPU model: QEMU Virtual CPU version 2.5+
MemTotal: 7.8 GB
MemAvailable: 7.4 GB
===== GPUS =====
nvidia-smi not present (no NVIDIA GPUs or driver not installed)
===== FILESYSTEMS (df) =====
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 250G 3.2G 235G 2% /
===== PERSISTENT MOUNTS (/etc/fstab, non-comment) =====
UUID=fabc36b3-459e-4ef1-80a6-8a0f85a1a781 / ext4 errors=remount-ro 0 1
UUID=bf3fd6d0-4537-4626-bdcc-551c5603ab98 none swap sw 0 0
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0
===== TARGETED DATA PATHS =====
/opt (total: 4.0K)
total 8
drwxr-xr-x 2 root root 4096 2024-05-30 19:51 .
drwxr-xr-x 18 root root 4096 2026-06-17 14:37 ..
/srv (total: 4.0K)
total 8
drwxr-xr-x 2 root root 4096 2024-05-30 19:51 .
drwxr-xr-x 18 root root 4096 2026-06-17 14:37 ..
===== 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:22
[::1]:25
127.0.0.1:25
[::]:22
===== 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.