refactor(playbooks): host-generic GPU host + GPU LXC playbooks for nh3-ml1

- esh-pve-nvidia-host -> pve-nvidia-host: headers/dkms/build-essential step,
  nouveau blacklist + guarded unload (refuses if nouveau bound a device)
- esh-ml1-lxc -> gpu-lxc: host vars have no defaults (elway aborts on undefined),
  rootfs storage/startup order parameterized, CT kept out of all-guests vzdump jobs
- embed-rerank: Homepage labels take HOST_NAME/HOST_IP, defaults = esh-ml1
This commit is contained in:
vh
2026-09-25 14:17:31 -07:00
parent cdd7605e89
commit bc278d4ba8
10 changed files with 170 additions and 72 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
# esh-ml1 (CT 110 on esh-pve) — Beszel agent with NVIDIA GPU telemetry for the
# RTX 2000E Ada (utilization, VRAM, temperature, power). Docker-in-LXC: the
# NVIDIA container toolkit runs with no-cgroups=true (playbooks/esh-ml1-lxc.yaml).
# NVIDIA container toolkit runs with no-cgroups=true (playbooks/gpu-lxc.yaml).
# No extra filesystems: the root filesystem holds everything, models included.
services:
beszel-agent:
+7 -1
View File
@@ -1,4 +1,10 @@
# embed-rerank tunables (esh-ml1, TEI). Copy to `.env` on the server.
# embed-rerank tunables (TEI). Copy to `.env` on the server.
# Per-host Homepage labels. Unset = esh-ml1's values. nh3-ml1 sets:
# HOST_NAME=nh3-ml1
# HOST_IP=10.100.50.80
#HOST_NAME=esh-ml1
#HOST_IP=10.0.50.80
# TEI image tag. `89-` = the Ada Lovelace (sm_89) build; a different GPU
# generation needs a different prefix (see the TEI README's image table).
+10 -8
View File
@@ -1,6 +1,8 @@
# embed-rerank — THE fleet's embedding + reranking service, on esh-ml1 (CT 110 on
# esh-pve, RTX 2000E Ada, 16 GB). Served by Hugging Face Text Embeddings
# Inference (TEI).
# Inference (TEI). A second instance runs on nh3-ml1 (CT 109 on nh3-pve, the same
# card) since 2026-09-25; the per-host bits are HOST_NAME / HOST_IP in .env, and
# their defaults are esh-ml1's, so esh-ml1's live .env needs no change.
#
# Prime, 2026-09-25: "TEI is embed/reranker server for esh-ml1 and the FLEET in
# general, in future." It replaced vLLM here the same day, after a side-by-side
@@ -30,7 +32,7 @@
# ports, and in practice only the LiteLLM gateway does (verified from the seats'
# logs 2026-09-25: every request matched a gateway spend-log row).
#
# Host setup: playbooks/esh-pve-nvidia-host.yaml, then playbooks/esh-ml1-lxc.yaml.
# Host setup: playbooks/pve-nvidia-host.yaml, then playbooks/gpu-lxc.yaml.
# Tunables live in .env.
name: embed-rerank
@@ -76,10 +78,10 @@ services:
start_period: 60s
labels:
- homepage.group=AI - Eval & Retrieval
- homepage.name=Embed — Qwen3 0.6B (TEI, esh-ml1)
- homepage.name=Embed — Qwen3 0.6B (TEI, ${HOST_NAME:-esh-ml1})
- homepage.icon=mdi-vector-arrange-below
- homepage.description=Fleet embeddings (qwen3-embedding) via TEI on esh-ml1
- homepage.href=http://10.0.50.80:${EMBED_PORT}/docs
- homepage.description=Fleet embeddings (qwen3-embedding) via TEI on ${HOST_NAME:-esh-ml1}
- homepage.href=http://${HOST_IP:-10.0.50.80}:${EMBED_PORT}/docs
tei-rerank:
image: ghcr.io/huggingface/text-embeddings-inference:${TEI_TAG}
@@ -117,7 +119,7 @@ services:
start_period: 60s
labels:
- homepage.group=AI - Eval & Retrieval
- homepage.name=Rerank — bge-v2-m3 (TEI, esh-ml1)
- homepage.name=Rerank — bge-v2-m3 (TEI, ${HOST_NAME:-esh-ml1})
- homepage.icon=mdi-sort-variant
- homepage.description=Fleet reranker (reranker) via TEI on esh-ml1
- homepage.href=http://10.0.50.80:${RERANK_PORT}/docs
- homepage.description=Fleet reranker (reranker) via TEI on ${HOST_NAME:-esh-ml1}
- homepage.href=http://${HOST_IP:-10.0.50.80}:${RERANK_PORT}/docs
+1 -1
View File
@@ -32,7 +32,7 @@ irv-ml1-docker:
port: 2375
# esh-ml1 — CT 110 on esh-pve: the fleet embed/rerank (TEI) + reward seats.
# dockerd listens only on its own address (playbooks/esh-ml1-lxc.yaml), 2026-09-25.
# dockerd listens only on its own address (playbooks/gpu-lxc.yaml), 2026-09-25.
esh-ml1-docker:
host: 10.0.50.80
port: 2375