#005 Agent-Skript #5

Closed
opened 2026-09-17 19:42:59 +00:00 by florian.wilde · 0 comments
Owner

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.

Quelle: docs/issues/005-agent-skript.md – dort wird dieses Issue gepflegt.

## Ziel Schlanker Bash-Agent (nur `curl` und Proxmox-Bordmittel), der täglich per systemd-Timer seinen Status meldet, mit One-Liner-Installation. ## Aufgaben - [x] Produkterkennung PVE / PBS / PMG - [x] 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 - [x] JSON-Erzeugung ohne `jq` inkl. Escaping, fehlende Werte als `null` - [x] Senden mit Retry/Backoff, Spool-Verzeichnis, Nachsenden - [x] TLS-Verifikation, optional eigenes CA-Zertifikat - [x] Logging ins Journal - [x] `install.sh`: `--token`, `--url`, `--ca-cert`; Config `/etc/proxledger/agent.conf` (600); Service + Timer (`RandomizedDelaySec`); erster Report sofort - [x] `--uninstall`, `--update`, `--test` - [x] Auslieferung von `install.sh`/Agent über das Dashboard - [x] ShellCheck sauber; Tests mit Beispielausgaben der `*subscription get`-Befehle ## Akzeptanzkriterien - [x] Installation per One-Liner auf PVE 8/9 und PBS 3/4 erfolgreich - [x] Report scheitert nicht an fehlenden Befehlen/Feldern - [x] Dashboard offline → Report wird gepuffert und beim nächsten Lauf nachgesendet - [x] 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. --- Quelle: `docs/issues/005-agent-skript.md` – dort wird dieses Issue gepflegt.
florian.wilde added this to the v0.2.0 milestone 2026-09-17 19:42:59 +00:00
florian.wilde added the agent label 2026-09-17 19:42:59 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: florian.wilde/ProxLedger#5