Commit Graph
12 Commits
Author SHA1 Message Date
spektr 88b063a234 Encoding/CT-101: PVE-Host-NFS konvergiert, Berechtigungsmodell entschieden, Verifikation dokumentiert.
- pve_nfs_export: NFSv4-only via /etc/nfs.conf ([nfsd] vers2/vers3=n; Debian-13-Unit
  startet nfsd ohne EnvironmentFile, RPCNFSDARGS wirkungslos), Restart-Handler,
  selbstheilende nfsd-Versionspruefung; verify-production um Export-Root- und
  Versions-Assertions erweitert
- Autorisierte Konvergenz auf dem PVE-Host: Export-Root 100000:970 2775,
  /proc/fs/nfsd/versions -3 +4 +4.1 +4.2, verify ok=17 changed=0, Idempotenz changed=0
- Berechtigungsmodell (Betreiberentscheidung 30.10.2026): Mode 2777 auf input/- und
  output/-Baum der Pipeline (LXC-idmap-Diskrepanz guest-root vs. UID 982/983:970)
- GNENC-000/001/002, GNAI-017/018/019 auf NFS-auf-PVE-Host-Stand gebracht;
  CT-101-Verifikation ok=47 changed=0 dokumentiert; AGENTS.md-Seccomp-Hinweis korrigiert

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-10-30 19:54:42 +01:00
spektr 6a1eff7392 CT-101 Samba + PVE-Host: NFS auf den Host verlagert, Host per Ansible verwaltet
- CT 101 kennt NFS nicht mehr: samba_nfs-Rolle und Ganesha-Artefakte entfernt,
  kein Podman, keine 2049-Firewall-Regel, kein seccomp-Sondereintrag; live
  restlos bereinigt und deckungsgleich mit dem Playbook (verify ok=47,
  Idempotenz changed=0). Dafür neue SMB-Freigabe [Encoding] (Export-Root) für
  die Kontrolle von anderen Geräten als ghostnet-ki.
- Grund: Weder kernel-nfsd noch Ganesha (VFS-FSAL) laufen in einem
  unprivileged LXC — open_by_handle_at braucht CAP_DAC_READ_SEARCH in der
  init-userns und liefert dort immer EPERM (verifiziert auf Kernel
  7.0.14-14-pve; Web-Recherche: NFS direkt auf dem PVE-Host ist gängige Praxis
  und anerkannte Ausnahme vom Host-Grundsatz).
- Neuer Account ansible-deploy (UID 1001) auf dem PVE-Host 10.0.0.2 nach
  LXC-Muster: gelocktes Passwort, source-restrictierter passphrase-loser Key
  (nur pub im Repo), NOPASSWD-Sudoers; Host-Key-Fingerprint verifiziert.
- Neues Host-Projekt proxmox/pve-host/ansible (Schema wie die CT-Projekte):
  preflight/site.yml/verify-production + Rollen pve_nfs_export (Kernel-NFS,
  /etc/exports nur 10.0.0.90/32, NFSv4-only, Export-Root 100000:970 2775,
  nft 2049 nur von 10.0.0.90) und pve_lxc_conf (seccomp-Leerzeile aus
  101.conf entfernt). Auf dem Host grün: check changed=0, verify ok=15,
  Idempotenz changed=0.
- Abnahme bestanden: NFSv4.2-Mount von ghostnet-ki gegen
  10.0.0.2:/media/datenhdd3/Encoding (Export-Root 100000:970 2775 sichtbar),
  sauberer Unmount. CT 101 nach Reboot: Seccomp 2, keine failed units, 17
  Shares, 10 CIFS-Mounts der Workstation hängen.
- Doku aktualisiert: GNAI-017 §4.1 und GNAI-019 E2/E3/§15 revidiert,
  Bereichsindex ergänzt, READMEs angepasst; PVE-Lifecycle-Skripte ohne
  seccomp-Ausnahme (Hashes aktualisiert).

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-10-30 18:49:10 +01:00
spektr 2753677c7c CT-101 Samba: ganesha 6.5 Client-Allowlist per CLIENT-Block (vor EXPORT)
- Mount von ghostnet-ki schlug mit EPERM fehl: Export hatte "0 defined
  clients" (kein clients-Parameter -> Zugriffspruefung schlaegt fehl)
- Ganesha 6.5: CLIENT-Block mit kleingeschriebenem `clients`, Block MUSS vor
  dem EXPORT stehen (Parser ist reihenfolgeempfindlich); gegen den 6.5-Parser
  verifiziert. EXPORT auf Access_Type = None (deny-by-default), CLIENT gewaehrt
  10.0.0.90 RW; nftables deckelt zusaetzlich auf 2049 nur von 10.0.0.90

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-10-30 16:36:59 +01:00
spektr 191333b16d CT-101 Samba: ghost-Key-Rotation und Audit-Fixes (pdbedit-Pfad, passdb-Subset, is-active-Probes)
- ghost-Workstation-Key rotiert (Passphrase nicht mehr erinnerlich): neues
  Paar id_ed25519_ghostnet_ct101_ghost, samba-ghost.pub aktualisiert und auf
  CT 101 installiert; GNAI-017 Befund (f) dokumentiert die Rotation
  29.10.2026; altes Paar lokal gelöscht
- pdbedit-Pfad korrigiert: /usr/sbin/pdbedit -> /usr/bin/pdbedit (Debian),
  5 Stellen in audit-production/backup/verify-production/samba_smb
- passdb-Subset-Asserts parsen user:uid:gecos jetzt korrekt per
  regex_replace (audit/verify/samba_smb)
- is-active-Leseproben mit failed_when: false, damit die Asserts die
  klaren Fehlermeldungen liefern (audit/preflight/verify/samba_smb)
- samba_lxc_baseline enabled+startet unattended-upgrades.service nach dem
  Paket-Install (CT-100/102-Konvention), README ergänzt

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-10-29 19:11:57 +01:00
spektr 6b6e4fce6f CT-101 Samba: dark2devil-Cleanup dokumentiert (erledigt 28.10.2026)
- GNAI-017/GNAI-019: Cleanup als erledigt markiert (smbpasswd -x dark2devil
  + userdel -r; passdb danach nur noch ghost/daidalaw/debugofen; Konto war
  gelockt, Shell /bin/false, keine Dateien außerhalb des Home)
- Inventar-Kommentare aktualisiert (UID 1002 wieder frei; ansible-deploy-UID
  1005 erlaeutert); alle drei Inventare byte-identisch
- samba_access-Kommentar angepasst (dark2devil nicht mehr unter den
  produktiven Accounts)

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-10-29 16:57:06 +01:00
spektr 8b21797502 CT-101 Samba: dark2devil-Korrektur, ACL-Abgleich und AGENTS.md-Grundwissen
- dark2devil (UID 1002) aus der gesamten deklarierten State entfernt:
  derselbe Benutzer wie debugofen (Betreiberklärung 2026-10-28); GNAI-019
  Entscheidung 11 revidiert, gn-media-Mitgliedschaft nur ghost
- Share-ACLs im Inventar an die live smb.conf angeglichen (GNAI-018 R4):
  admin users auf elf Shares ergänzt, write list Dokumente/Extern ergänzt,
  Serien2 ohne force user/group; Template [printers] um browseable=no ergänzt
- passdb-Asserts und Audit-Loops auf die drei deklarierten Medien-User
  umgestellt; Platzhalterzahl 11; provision-Script-Hash aktualisiert
- AGENTS.md (Repo-Root) um Grundwissen für Agenten ergänzt:
  ghost-agent-Convention, Account-Landscape/Inventory-Pfade,
  Operator-Run-Steps, LXC-Konventionen, Repo-Konventionen

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-10-28 16:30:33 +01:00
spektr 9b3b54bd99 CT-100 DNS: Lookup-Pfade in audit-production.yml und verify-production.yml korrigiert
- 5 template/file-Lookups verwendeten relative Pfade (roles/..., files/...),
  die sich aus playbooks/ nicht auflösen; auf playbook_dir ~ '/../...' umgestellt
- dns_pihole_container_name, dns_pihole_data_directory und dns_pihole_quadlet_path
  aus den Rollen-Defaults in alle 3 Inventories gespiegelt (self-contained inventory)
- Verifiziert: gerendertes Quadlet byte-identisch mit Live-Datei, nftables weicht
  nur um die Managed-Kennung ab, 18/18 Syntax-Checks

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-10-26 19:20:36 +01:00
spektr 220d921e09 CT-101 Samba: Ansible-Migration (GNAI-017/018/019) mit PVE-Skripten, Runbooks und Fresh-State-Rebuild aufgenommen
- Ansible-Projekt proxmox/lxc/ct-101-samba/ansible: 7 Playbooks, 6 Rollen,
  3 Inventories (agent/bootstrap/production), 11 fail-closed Platzhalter
- Design GNAI-019: Samba nativ (templated smb.conf mit testparm-Gate),
  NFS-Ganesha als rootful Quadlet mit Host-Networking und leerem
  lxc.seccomp.profile, NFSv4-only, gn-media GID 970, passdb-Erhalt
- PVE-Skripte: upgrade-ct101-to-debian13.sh (Adoption),
  provision-ct101-samba.sh (Fresh-State-Rebuild), sha256-gepinnt
- Runbooks: Adoption (15 Schritte) und Fresh-State-Rebuild (9 Schritte)
- Dokumentation: GNAI-019 (DEC), GNAI-017 aktualisiert, Index-Einträge;
  Befund Dist-Upgrade 21.10.2026: smb.conf-Verlust aus vzdump-Backup
  wiederhergestellt und verifiziert
- Secrets (SMB-Passwörter, passdb, private Schlüssel) nicht im Repository

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-10-26 19:20:36 +01:00
spektr 92c846f527 LLM-Server: ausführbares Projekt in die Hauptverzeichnisse host/, llm/ und encoding/ aufgeteilt.
Grundkonfiguration des Servers liegt nun unter llm-server/host/ansible/
(vorher llm-server/ansible/), der LLM-Stack-Platzhalter unter llm-server/llm/
und der Encoding-Workload unter llm-server/encoding/. Dokumentation und
Pfadverweise (ansible.cfg roles_path, .venv-Tiefe, Markdown-Links) angepasst;
Linkvalidator meldet broken_local_links=0.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-10-19 14:42:14 +02:00
spektr 82af4e9235 CT-100 DNS: Migration nach Ansible abgeschlossen. 2026-10-19 12:34:36 +02:00
spektr 00ed091890 CT-102 Keycloak: Migration nach Podman und Ansible abgeschlossen und gehärtet. 2026-10-14 15:01:14 +02:00
spektr b40f726d22 Add: DNS über Pi-Hole LXC. Härtung von CT-105 Wireguard. 2026-10-05 17:45:38 +02:00