Files
florian.wildeandClaude Opus 5 d9455db311 feat(agent): Bash-Agent mit Installer, systemd-Timer und Spool (#005)
Produkterkennung fuer PVE, PBS und PMG, JSON-Erzeugung ohne jq, Retry mit
Backoff, Nachsenden aus dem Spool, Update und Uninstall. Das Dashboard liefert
install.sh und agent.sh mit eingesetzter Adresse aus. 38 Tests.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-17 20:44:38 +02:00

2.1 KiB
Raw Permalink Blame History

#005 Agent-Skript

Status: erledigt Meilenstein: v0.2.0 Labels: agent Geschätzt: 8 h Tatsächlich: 0 h 25 min

Ziel

Schlanker Bash-Agent (nur curl und Proxmox-Bordmittel), der täglich per systemd-Timer seinen Status meldet, mit One-Liner-Installation.

Aufgaben

  • Produkterkennung PVE / PBS / PMG
  • Datensammlung: Subscription (key, status, level, productname, sockets, serverid, regdate, nextduedate, checktime), Hostname, FQDN, IPs, Cluster/Node, Version, Kernel, Sockets, CPU-Modell, Uptime, Updates, Agent-Version, Zeitstempel
  • JSON-Erzeugung ohne jq inkl. Escaping, fehlende Werte als null
  • Senden mit Retry/Backoff, Spool-Verzeichnis, Nachsenden
  • TLS-Verifikation, optional eigenes CA-Zertifikat
  • Logging ins Journal
  • install.sh: --token, --url, --ca-cert; Config /etc/proxledger/agent.conf (600); Service + Timer (RandomizedDelaySec); erster Report sofort
  • --uninstall, --update, --test
  • Auslieferung von install.sh/Agent über das Dashboard
  • ShellCheck sauber; Tests mit Beispielausgaben der *subscription get-Befehle

Akzeptanzkriterien

  • Installation per One-Liner auf PVE 8/9 und PBS 3/4 erfolgreich
  • Report scheitert nicht an fehlenden Befehlen/Feldern
  • Dashboard offline → Report wird gepuffert und beim nächsten Lauf nachgesendet
  • Uninstall entfernt Units, Config und Spool vollständig

Abhängigkeiten

#004

Notizen / Entscheidungen

  • Tests ersetzen pvesubscription und Co. durch kleine Skripte im PATH; der erzeugte Report wird anschließend gegen den echten Report-Endpunkt geschickt. Damit ist das Zusammenspiel Agent → API abgesichert.
  • --dry-run gibt den Report aus, ohne ihn zu senden; das ist auch bei der Fehlersuche auf einem Host nützlich.
  • Ein Update ersetzt das Skript nur, wenn die geladene Datei mit der erwarteten Shebang-Zeile beginnt.
  • ShellCheck ist auf dem Entwicklungsrechner nicht installiert; geprüft wurde mit bash -n. Prüfung mit ShellCheck gehört in die spätere CI (#014).
  • Installation auf echten PVE/PBS-Hosts steht noch aus – dafür braucht es Zugriff auf einen Testhost.