Commit Graph
7 Commits
Author SHA1 Message Date
spektr 2f03a7e624 GNAI-010 v0.10: Wiederanlauf-/Profilwechselabnahme; Ausschluss-Befund korrigiert (10.7)
10.4-Tests bestanden: Idempotenz (changed=0), kontrollierter Neustart
erhaelt Profil/Modell, bewusster Stopp bleibt Stopp, Profilwechsel in beide
Richtungen ueber die Rolle fehlerfrei ohne erneuten Download.

Befundkorrektur 5.3: direkter systemctl start der zweiten Unit fuehrt KEINEN
geordneten Wechsel aus - beide Modelle laden in der UEbergangsphase parallel
(beobachtet 01.11.2026). Conflicts= sichert nur den Endzustand; Before= aus
den Quadlets entfernt. Der geordnete Stop-vor-Start-Wechsel ist
ausschliesslich die Rollen-Umschaltoperation. Host-Reboot-Test an den
Betreiber uebertragen.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-11-01 17:32:17 +01:00
spektr ca79cc404a LLM-Server: Testing nach bestandener 64k-Abnahme auf 128k-Zielkontext gestellt
inference_engine_ctx_size_override auf null (GNAI-008 7.5, GNAI-010 10.3);
131072 aktiv seit 01.11.2026, kein OOM (VRAM 14,3/14,7 GiB von je 16 GiB).

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-11-01 17:32:17 +01:00
spektr 060901d104 LLM-Server: Container-Protokollierung geklärt und in GNAI-010 dokumentiert (v0.7)
conmon schreibt mit dem Journald-Treiber ins System-Journal (Syslog-Identifier
= Container-Name, _COMM=conmon); lesbar als root, podman logs bleibt für das
Workload-Konto leer (Journal-Dateirechte, bewusst keine systemd-journal-
Gruppe). Lesewege in GNAI-010 Abschnitt 8.1; 64k-Bring-up-Startlogs sind
protokollfähig (n_slots=1, n_ctx_slot=65536, Listening, MTP-Tensoren nicht
geladen). Zusätzlich dokumentiert: LLAMA_ARG_HOST-Default des Images und die
bewusst akzeptierte API-Key-Lücke des internen Testing-Netzes.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-11-01 17:32:17 +01:00
spektr 026c840029 LLM-Server: M2-Vertical-Slice in Betrieb - Swift-Stack läuft, Inferenz nachgewiesen
Erster produktiver Start des llama.cpp-Testing-Stacks auf ghostnet-ki
(31.10.2026). Fix-Liste aus den Live-Läufen:
- Quadlet-Exec ohne Binärnamen (AMD-Image hat ENTRYPOINT /app/llama-server;
  GNAI-010 v0.6 dokumentiert den Befund)
- Deterministischer daemon-reload vor Unit-Zugriff (Handler allein griff nicht,
  wenn ein vorheriger Lauf die Quadlets gerendert hatte)
- Netz-Abhängigkeit Wants/After im Container-Quadlet (Netzwerk-Unit wurde
  nie mitgestartet -> network not found)
- Stopp-Bedingung für Profilwechsel korrigiert (nur aktive Units stoppen)
- Health-Tool-Kette curl/wget/bash-/dev/tcp mit Pfad-Normalisierung; curl -f
  als Gesundheitssignal (Statuszeile stand nie im stdout)
- chdir für alle runuser-Aufrufe der Health-Checks

Nachweise: Health 200 OK, /v1/models Alias korrekt, Idempotenz changed=0,
VRAM 12,6/13,0 GiB von je 16 GiB auf beiden Karten (Layer-Split 1:1),
echte Chat-Completion mit System-Fingerprint des gepinnten Builds,
Reasoning getrennt von der Antwort.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-11-01 17:32:17 +01:00
spektr 89787b0e23 LLM-Server: IPv6 deaktiviert (host_baseline) + Swift-Repin und wget-4-Download nach Live-Befunden
Betreiberentscheidung 31.10.2026 (GNAI-002 Abschnitt 6): Der KI-Host wird
kohärent IPv4-only betrieben. host_baseline verwaltet
/etc/sysctl.d/99-ghostnet-disable-ipv6.conf (all+default), wendet es bei
Änderung an und verifiziert den Laufzeitwert. Anlass: hängender get_url-
Download durch AAAA-Antworten ohne nutzbare IPv6-Route (Messungen im
Dokument; Pi-hole filtert AAAA nicht, der Host nutzt Pi-hole nicht).

model_store nach Live-Befunden: Swift-Repin auf Repository-Revision
98a6100 (alte Revision entfernt, Datei laut Herausgeber-SHA256SUMS
unverändert; GNAI-010 v0.5) und Download über wget -4 mit expliziter
SHA-256-Verifikation vor dem atomaren Move.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-11-01 17:32:17 +01:00
spektr d53b2400c9 LLM-Server: llm/ansible für Check-Modus und ansible-core 2.21 fit gemacht
Nach Live-Check-Modus gegen ghostnet-ki (ok=23, changed=4, failed=0):
- Freiraumprüfung auf existierendes Elternelement (df schlägt im Check-Modus
  auf dem noch nicht angelegten Store fehl)
- Rechte-Durchsetzung nur über vorhandene Artefakte (file-Modul im Check-Modus)
- assert ohne loop (2.21 lehnt loop auf assert ab); statische Meldungen,
  Modell-Anwesenheit im Check-Modus nur informell
- find file_type=any für Character-Devices (renderD*)
- README: Aufruf mit --private-key nach Workstation-Konvention

Preview prognostiziert korrekt: 2 Modellverzeichnisse, 2 SOURCE.yml,
Netz-Quadlet, 2 Container-Quadlets; gepinntes ROCm-Image bereits im Store.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-11-01 17:31:45 +01:00
spektr 7af72785c9 LLM-Server: M2-Vertical-Slice - llm/ansible-Projekt mit model_store und inference_engine
Neues Kontrollprojekt llm-server/llm/ansible (GNAI-008 7.4, GNAI-010):
- Inventar testing (ansible-deploy), Playbook ai.yml
- Rolle model_store: gepinnte Modellartefakte (Swift/Unsloth Q6_K, Revision
  und SHA-256 nach GNAI-010 3.2/3.3), atomare Downloads mit Prüfsummen,
  70-GiB-Freiraumreserve, SOURCE.yml-Herkunftsnachweis je Verzeichnis
- Rolle inference_engine: gepinntes ROCm-Image per Digest, internes
  Quadlet-Netz (Internal=true), zwei gegenseitig ausgeschlossene
  llama-server-Quadlets (Conflicts/Before nach GNAI-010 5.3), 64k-Bring-up-
  Override, Generator-Dry-Run, exklusiver Profilwechsel, Health- und
  Alias-Verifikation; kein Host-Port, kein default.target-Enable
- Syntax-Check und Template-Render-Verifikation bestanden; Live-Check-Modus
  steht aus (KI-Server aktuell ausgeschaltet)

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-11-01 17:31:45 +01:00