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>
2.1 KiB
2.1 KiB
#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
jqinkl. Escaping, fehlende Werte alsnull - 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
pvesubscriptionund 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-rungibt 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.