Commit Graph
49 Commits
Author SHA1 Message Date
Robert Rapp f3cfacfe48 pve-cluster: Token-Abfrage verträgt fehlenden Benutzer (Probelauf)
ci / test (push) Successful in 27s
2026-10-13 17:06:05 +02:00
Robert Rapp d9b2539dea pve-cluster: when-Listen in Anführungszeichen (YAML-Flow-Sequenz)
ci / test (push) Successful in 26s
2026-10-13 17:05:43 +02:00
Robert RappandClaude Fable 5.1 81602373fc pve-cluster: Phase 4 als Rolle – Admin-Gruppe/-Konten, Healer-Token, Benachrichtigungen, Firewall mit IPSET management (Tasks 4.1–4.4)
ci / test (push) Failing after 21s
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-13 17:05:30 +02:00
Robert RappandClaude Opus 5.5 5c790cc8d4 gpu-llamacpp: Compose auf P2000 per device_ids, Rolle und Playbook (Task 6.1)
ci / test (push) Successful in 27s
- Build-Pin wie im Benchmark (b6000 = 4762ad7, CUDA 12.4, sm_52;61), Host-Netz,
  Log-Rotation, /slots und Web-Oberfläche aus, Qwen3 ohne Denkphase.
- Exporter aus dem Compose entfernt (laufen nativ, Rolle gpu-exporters).
- Rolle gpu-llamacpp: Karten-UUID über den Namen, Modelle mit Prüfsumme,
  ufw-Regeln nur vorgemerkt. Inventargruppe gpu_llamacpp (ohne gpu-pve52).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 21:28:33 +02:00
Robert RappandClaude Opus 5.5 d8797a9433 benchmark: Compose-Kartenwahl und Rerank-Bedingung in ADR-0006 ergänzt
ci / test (push) Successful in 26s
- count: 1 in gpu-llamacpp greift die M4000 (geprüft), für die P2000 device_ids setzen
- Empfehlung pve44/46/48 unter der Bedingung, dass Embedding + Rerank gemeinsam auf die P2000 passen
- 8B-VRAM: 7,73 GiB gemessen, im Katalog auf 7,8 aufgerundet

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 21:21:11 +02:00
Robert RappandClaude Opus 5.5 cdf0bb63e3 benchmark: Task 3.3 auf gpu-pve48 gemessen (llama.cpp, whisper.cpp, Piper), ohne Strommessung
ci / test (push) Successful in 28s
- Katalog: vram_gb für Qwen3-Embedding, Qwen3-4B und Qwen3-8B gemessen, Messwerte als note
- ADR-0006: Nachtrag „Benchmark“ mit Tabellen und Empfehlung zur M4000
  (ja für STT auf pve52, auf pve44/46/48 vorerst nein)
- Plan: Task 3.3 abgehakt, Strommessung, Dialektsätze und D131/D133 offen

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 21:19:28 +02:00
Robert RappandClaude Opus 5.5 cd7f9308f1 docs: Rückmeldung 6.2 – VRAM-Angabe präzisiert, Energiesparen ergänzt
ci / test (push) Successful in 29s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 21:07:11 +02:00
Robert RappandClaude Opus 5.5 b9eb55bf44 docs: Rückmeldung Sprachdienste NEX (Task 6.2) mit Messwerten, Betrieb und Plan-Fortschritt
ci / test (push) Successful in 27s
Erkennung 10 s → 2,94 s, 60 s → 8,63 s (M4000, Median), TTS-TTFB < 1 s,
Autostart getestet, Stufe 2 geprüft (torch 2.9.1+cu126 letzte Version mit sm_50).
Offen: feste IP (D5), Abnahme von appsrv08, Slot stt-de.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 21:05:18 +02:00
Robert RappandClaude Opus 5.5 365549b1f4 plan: Task 5.2 – Infra-Stack mit Monitoring erledigt, n8n-Anbindung offen
ci / test (push) Successful in 25s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:57:47 +02:00
Robert RappandClaude Opus 5.5 828ed3975b nex-speech: /app vor COPY --chmod anlegen (sonst ohne x-Bit, Import scheitert)
ci / test (push) Successful in 26s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:52:22 +02:00
Robert RappandClaude Opus 5.5 456fce2386 infra-stack: Schutz gegen veralteten ZFS-Seiten-Cache nach HA-Umzug, Betriebsabschnitt 7
ci / test (push) Successful in 28s
Bei der HA-Probe startete dockerd auf pve48 nicht (bbolt „invalid freelist page“): Nach zfs receive
liefert der Zielknoten für früher gemappte Dateien alten Inhalt aus dem Seiten-Cache. Ein oneshot-Dienst
im LXC verwirft vor containerd/docker den Cache aller Dateien (posix_fadvise DONTNEED).
BETRIEB.md Abschnitt 7: URLs, Geheimnisse (ohne Werte), file_sd auffrischen, Wiederherstellung.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:49:49 +02:00
Robert RappandClaude Opus 5.5 ddd7ad033d nex-speech: Dateirechte explizit (Clone auf ops ist 0600, Piper läuft als nobody)
ci / test (push) Successful in 29s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:41:35 +02:00
Robert RappandClaude Opus 5.5 afc5fa0360 nex-speech: Sprachdienste für NEX (whisper.cpp CUDA 12 + Piper) als Compose und Ansible-Rolle
ci / test (push) Successful in 29s
- deploy/compose/nex-speech: whisper-server v1.9.4 (sm_52/sm_61, Port 8178, -l de -bs 5
  --convert, tmpfs, Aufwärmen mit 1 s Stille) und OpenAI-kompatibler Piper-Wrapper
  (Port 8179, mp3/opus/aac/flac/pcm gestreamt, wav, PCM 24 kHz mit Rate-Header)
- Host-Netz, damit ufw greift; keine Texte in Logs, kein Access-Log
- Rolle nex-speech + Playbook (nur gpu-pve52): ufw, Modelle mit sha256, Compose bauen/starten
- compose-check um nex-speech erweitert, community.docker in requirements.yml

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:41:11 +02:00
Robert RappandClaude Opus 5.5 b66c4c37cc grafana: GPU-Namen in der knaster-Übersicht über nvidia_smi_gpu_info
ci / test (push) Successful in 32s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:28:17 +02:00
Robert RappandClaude Opus 5.5 02f1d62715 infra-stack: Repo-Auszug für Container-Benutzer lesbar machen (Clone auf ops ist 0600)
ci / test (push) Successful in 29s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:26:20 +02:00
Robert RappandClaude Opus 5.5 bf7c137adf infra: Compose-Stack mit Monitoring, ohne LiteLLM (Task 5.2)
ci / test (push) Successful in 28s
- deploy/compose/infra: Dienst litellm entfernt (D4), Router auf LITELLM_BASE_URL
  (appsrv08, Port noch offen), alle Images gepinnt, Grafana und pve-exporter
  ohne Profile, node-exporter für den LXC, Zustand über KNASTER_STATE_DIR
- Prometheus: GPU-VMs per file_sd (node, gpu), Proxmox-Knoten per IP, infra-node
- Grafana: Datasource und Dashboards provisioniert (grafana.com 10347, 1860,
  14574 sowie knaster-Übersicht)
- Alertmanager: n8n-Receiver nur vorbereitet (auskommentiert)
- Ansible: Rollen infra-stack und gpu-exporters, Playbooks monitoring.yml und
  monitoring-targets.yml, Skript monitoring-targets.py (tofu output → file_sd)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:22:26 +02:00
Robert RappandClaude Opus 5.5 fd48fd1c7f plan: Phase 4 – 4.5 und 4.7 erledigt, 4.1 teilweise
ci / test (push) Successful in 29s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:07:31 +02:00
Robert RappandClaude Opus 5.5 4bdfd205fa betrieb: rollierende Update- und Neustart-Routine für den Cluster (Task 4.7)
ci / test (push) Successful in 29s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:07:18 +02:00
Robert RappandClaude Opus 5.5 c1f11d2660 tofu: Container-Pool nicht über tofu (pool_id erzwingt Ersetzen)
ci / test (push) Successful in 29s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:06:29 +02:00
Robert RappandClaude Opus 5.5 438e0949e9 tofu: Gäste in die Pools gpu und infra (Task 4.5)
ci / test (push) Successful in 28s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:06:05 +02:00
Robert RappandClaude Opus 5.5 bbe9236792 plan: GPU-VMs (3.2), HA/Replikation (2.2) und infra-LXC erledigt und getestet
ci / test (push) Successful in 29s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:04:19 +02:00
Robert RappandClaude Opus 5.5 c794cd3f0a docker-host: Compose-Paketname für Debian 13
ci / test (push) Successful in 28s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 19:54:24 +02:00
Robert RappandClaude Opus 5.5 56576c7d3c scripts: Zugang auch für Infra-Container (Hostschlüssel per pct exec, Knoten nach HA-Umzug)
ci / test (push) Successful in 30s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 19:53:37 +02:00
Robert RappandClaude Opus 5.5 bf20da1629 infra: HA-Ressource und Node-Affinity per pve-host statt tofu, Infra-IP im Inventar
ci / test (push) Successful in 29s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 19:41:17 +02:00
Robert RappandClaude Opus 5.5 23d6e36028 gpu-vms: DHCP-Client-ID auf MAC, Docker-Runtime als Aufgabe, Zugang nach Neustart auffrischen
ci / test (push) Successful in 28s
Nach dem Treiber-Neustart hatten gpu-pve44 und gpu-pve46 ihre DHCP-Adressen
getauscht; die strenge Hostschlüssel-Prüfung hat den Lauf gestoppt. netplan
nutzt jetzt die MAC als Client-ID (Voraussetzung für Reservierungen, D5).
Der Handler für nvidia-ctk ist eine idempotente Aufgabe, vor dem Neustart
werden Handler ausgeführt. scripts/refresh-vm-access.sh holt Adressen aus
dem Agenten, schreibt das Inventar und trägt die Hostschlüssel ein.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 19:39:25 +02:00
Robert RappandClaude Opus 5.5 ba42ce3f9d scripts: Hostschlüssel der GPU-VMs über den Gast-Agenten eintragen
ci / test (push) Successful in 27s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 19:19:58 +02:00
Robert RappandClaude Opus 5.5 72e293ce9a ansible: Python-Interpreter der GPU-VMs festlegen
ci / test (push) Successful in 27s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 19:13:03 +02:00
Robert RappandClaude Opus 5.5 47816bda68 plan: Task 3.1 erledigt, 3.2 vorbereitet; Sprach-Auftrag NEX als 6.2, HDD-Befund in 5.1
ci / test (push) Successful in 28s
ops-LXC, vfio auf allen GPU-Knoten (Bildschirm danach schwarz), Templates
9044/9046/9048/9052, API-Benutzer tofu@pve. Auftrag Sprachmodelle mit
Abgleich gegen den echten Cluster unter docs/auftraege/. Die 4-TB-HDD ist
die Toshiba BACKUP und scheidet für den Cluster aus.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 19:10:36 +02:00
Robert RappandClaude Opus 5.5 e5d1fa45b1 tofu: neue Ressourcennamen des Providers (hardware_mapping_pci, haresource)
ci / test (push) Successful in 27s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 19:09:08 +02:00
Robert RappandClaude Opus 5.5 ff74c1a7b2 tofu: GPU-VMs mit allen Karten des Knotens, DHCP über Gast-Agent, Provider für PVE 9
ci / test (push) Successful in 28s
bpg/proxmox ~> 0.116.0 (nur API). Template je Knoten, Speicher je Gast,
hostpci dynamisch aus vms.*.gpus, kein Secure Boot (DKMS), Vendor-Snippet
für den qemu-guest-agent, Ausgabe ansible_inventory für die DHCP-Adressen.
scripts/make-template.sh legt das Ubuntu-24.04-Template mit Prüfsumme an.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 19:04:56 +02:00
Robert RappandClaude Opus 5.5 e88e0ea46b sites: Inventar und Registry an echte Knoten (pve44–pve61) angepasst; ADR-0001/0002/0006 und PLAN §1.3/1.4/9 ergänzt
Inventar mit pve44–pve61 und den Ada-Rechnern gode-pc-05/06 (M4000 weiter
disabled). Registry-ops auf gpu-pve44/gpu-pve48/infra laut Placement, bei
den Ada-Slots entfallen pve_node und vmid (Worker-Registry v2, Task 6.4).
Tests: neuer test_site_knaster_matches_real_nodes, Konsistenztest auf
gpus-Liste umgestellt. ADR-Nachträge zu D1 (Variante B), D2 (eine GPU-VM
pro Knoten) und D3 (Ada bleibt Windows, vorgeschlagen).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 19:04:55 +02:00
Robert RappandClaude Opus 5.5 9b2ad426da pve-host: update-grub ohne ZFS-Root wirklich ausführen
ci / test (push) Failing after 27s
proxmox-boot-tool refresh endet ohne proxmox-boot-uuids mit Exit 0, die
Verkettung mit || hat update-grub deshalb nie erreicht.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 19:00:33 +02:00
Robert RappandClaude Opus 5.5 ac91744ce0 pve-host: lesende Aufgaben auch im Check-Modus ausführen
ci / test (push) Failing after 27s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 18:59:09 +02:00
Robert RappandClaude Opus 5.5 908c698589 proxmox: Site-Datei und pve-host-Rolle an die echten Knoten (pve44–pve61) angepasst
ci / test (push) Failing after 27s
proxmox.yaml mit gelesenen PCI-IDs/IOMMU-Gruppen, eine GPU-VM pro Knoten
mit allen Karten, DHCP, Templates je Knoten. pve-host nur für GPU-Knoten:
vfio-pci-IDs auf dem Knoten gelesen, softdeps, sysfb aus, initramfs-
Handler, Vendor-Snippet für den Gast-Agenten, Replikation erst wenn
der Container existiert.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 18:58:34 +02:00
Robert RappandClaude Opus 5.5 dfb2630517 plan: Ausgangslage und Plattenregel an den Stand nach dem Löschen angepasst
ci / test (push) Successful in 27s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 18:39:01 +02:00
Robert RappandClaude Opus 5.5 4cfa31bc3e plan: Windows-Platten gelöscht, ZFS-Pool tank auf pve44/pve48/pve52 (Task 1.2)
ci / test (push) Successful in 27s
Freigabe vom 12.10. umgesetzt: zweite SSD per Seriennummer gelöscht,
tank angelegt und im Cluster eingetragen, ARC 4 GiB, Neustart-Probe
auf pve48 (Legacy) und pve44 (UEFI) bestanden. Nebenbefund: pve44 ohne
/boot/efi in fstab.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 18:37:40 +02:00
Robert RappandClaude Opus 5.5 983b39f238 docs(plan): Erst-Update auf PVE 9.2.21 / Kernel 7.0.14 und Cluster knaster mit 5 Knoten erledigt
ci / test (push) Successful in 29s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 16:45:09 +02:00
Robert RappandClaude Opus 5.5 640e79dbe8 feat(platform): bootstrap-node.sh für Proxmox-Knoten (Schlüssel, Paketquellen, full-upgrade)
Idempotent, läuft vom Admin-Laptop in Git-Bash. Hostschlüssel wird nur mit
--reinstall verworfen, das Update läuft per systemd-run abgekoppelt von der
SSH-Sitzung. .gitattributes hält Shell-Skripte auf LF.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 16:35:07 +02:00
Robert RappandClaude Opus 5.5 bc0f3d8f91 docs(plan): D2 entschieden, D5 zurückgestellt (Gäste vorerst DHCP)
ci / test (push) Successful in 27s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 16:25:03 +02:00
Robert RappandClaude Opus 5.5 6876e63983 docs(plan): Abhängigkeitsübersicht (D1 blockiert wenig), tank nach dem Cluster, ops auf pve46
ci / test (push) Successful in 27s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 16:18:49 +02:00
Robert RappandClaude Opus 5.5 c6b0b4e380 docs(plan): Ada-Worker bestätigt: je RTX 4000 Ada 20 GB und 64 GB RAM
ci / test (push) Successful in 27s
ci / test (pull_request) Successful in 28s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 16:08:14 +02:00
Robert RappandClaude Opus 5.5 cbc41e9e67 docs(plan): Ada-Worker je eine RTX 4000 Ada (20 GB) laut mygodel/scripts
ci / test (push) Successful in 27s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 16:05:02 +02:00
Robert RappandClaude Opus 5.5 e9c0c2c933 docs(plan): pve52 nur mit M4000, 3× P2000 im Einsatz
ci / test (push) Successful in 27s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 16:03:03 +02:00
Robert RappandClaude Opus 5.5 d46037272a docs(plan): D1 als Variante B entschieden, Löschfreigabe nach Prüfung der Windows-Platten
ci / test (push) Successful in 27s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 14:38:26 +02:00
Robert RappandClaude Opus 5.5 3fdc581561 docs(plan): pve48 inventarisiert (vierter GPU-Knoten, drei Platten), Platzierung und D1 angepasst
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 14:32:27 +02:00
Robert RappandClaude Opus 5.5 c3020eafa8 docs(plan): Platten-Bestandsaufnahme vom 12.10. eintragen, Platzangaben in D1 und Task 3.2 korrigieren
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 14:12:37 +02:00
Robert RappandClaude Opus 5.5 f7ff7e8eab docs(plan): D1 Empfehlung B (ZFS-Pool tank remote, ohne Neuinstallation), Planner-Neuanlagen ohne Duplikate
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 12:51:59 +02:00
Robert RappandClaude Opus 5.5 12a373227e docs(plan): RAM-Budget, vfio-pci-Bindung, iGPU-Prüfpunkt, Laptop-Reservierung, Ada-Inventar korrigiert
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 12:06:28 +02:00
Robert RappandClaude Opus 5.5 a7da3c1096 docs: Aufbauplan auf echter Hardware, zusammengeführt mit Planner Epic 7
Chronologischer Plan (Phasen 0-9) für pve44/46/48/52/61 mit
Entscheidungen D1-D5 (ZFS, GPU-VM pro Knoten, Ada unter Windows,
ein LiteLLM mit PSE, IP-Plan), Duplikat-Zuordnung zu Epic 7 und
Parallelspur NEX. PLAN §8 und IMPLEMENTATION "Gemeinsames
Deployment" als abgelöst markiert.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 12:03:49 +02:00