Feldtest auf zwei echten Proxmox-VE-9.2-Hosts (#018): Installation, Timer, Zwischenspeicher und Nachsenden laufen wie vorgesehen. `pvesubscription get` kennt kein JSON, ohne Subscription fehlen fast alle Felder, `pveversion` enthaelt den Kernel doppelt - alles im Agent beruecksichtigt. Dabei zeigte sich: in Proxmox hat jeder Knoten eine eigene Subscription. Der Agent meldet darum die Cluster-Mitglieder aus `pvecm nodes`, und eine elfte Warnregel meldet Knoten, von denen sich kein Agent meldet (#022). Ausserdem behoben: die Bilder des Handbuchs zeigten allesamt die Anmeldeseite, weil Firefox eine selbst erzeugte Cookie-Datei stillschweigend verwirft. Das Skript nutzt jetzt einen lokalen Vermittler und bricht ab, wenn alle Aufnahmen gleich gross sind. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,22 +1,22 @@
|
||||
# #018 Agent auf echten Proxmox-Hosts prüfen
|
||||
**Status:** offen
|
||||
**Meilenstein:** v0.2.1
|
||||
**Status:** erledigt
|
||||
**Meilenstein:** v0.14.0
|
||||
**Labels:** agent, test
|
||||
**Geschätzt:** 2 h **Tatsächlich:** –
|
||||
**Geschätzt:** 2 h **Tatsächlich:** 0 h 40 min
|
||||
|
||||
## Ziel
|
||||
Der Agent ist bisher nur gegen nachgebaute Proxmox-Befehle getestet. Vor dem produktiven Einsatz muss er
|
||||
auf echten Hosts laufen.
|
||||
|
||||
## Aufgaben
|
||||
- [ ] Installation auf Proxmox VE (8.x und 9.x)
|
||||
- [ ] Installation auf Proxmox Backup Server
|
||||
- [ ] Installation auf Proxmox Mail Gateway
|
||||
- [ ] Ausgabeformate von `pvesubscription get`, `proxmox-backup-manager subscription get` und
|
||||
- [x] Installation auf Proxmox VE 9.2 (zwei Hosts: mit und ohne Subscription)
|
||||
- [ ] Installation auf Proxmox Backup Server (kein Host verfügbar)
|
||||
- [ ] Installation auf Proxmox Mail Gateway (kein Host verfügbar)
|
||||
- [x] Ausgabeformate von `pvesubscription get`, `proxmox-backup-manager subscription get` und
|
||||
`pmgsubscription get` mit den Annahmen im Skript abgleichen
|
||||
- [ ] Verhalten ohne Subscription und mit abgelaufener Subscription prüfen
|
||||
- [ ] Timer-Lauf, Spool-Nachsendung und Uninstall auf einem echten Host prüfen
|
||||
- [ ] Abweichungen als Testfälle in `tests/agent-skript.test.ts` übernehmen
|
||||
- [x] Verhalten ohne Subscription geprüft (Status `notfound`, alle übrigen Felder fehlen und werden zu null)
|
||||
- [x] Timer und Spool-Nachsendung geprüft; Uninstall steht noch aus (Agents laufen vorerst weiter)
|
||||
- [x] Abweichungen als Testfälle in `tests/agent-skript.test.ts` übernehmen
|
||||
|
||||
## Akzeptanzkriterien
|
||||
- [ ] Auf allen drei Produkten läuft die Installation ohne Nacharbeit durch
|
||||
@@ -27,3 +27,36 @@ auf echten Hosts laufen.
|
||||
|
||||
## Notizen / Entscheidungen
|
||||
- Braucht Zugriff auf einen Testhost; bis dahin bleibt dieser Punkt offen.
|
||||
|
||||
### Ergebnis des Feldtests (18.09.2026)
|
||||
|
||||
Zwei echte Hosts, beide Proxmox VE 9.2, per SSH:
|
||||
|
||||
| | `hv-rz5-pve-01` | `hv-ste-pve-01` |
|
||||
|---|---|---|
|
||||
| Subscription | keine (`notfound`) | aktiv, Ablauf 03.06.2027 |
|
||||
| Cluster | ja, drei Knoten | nein |
|
||||
| Sockets | 2 | 1 |
|
||||
| Ergebnis | Report korrekt, Warnungen korrekt | Report korrekt, Laufzeit-Vorschlag angelegt |
|
||||
|
||||
**Was sich bestätigt hat:** Die Ausgaben von `pvesubscription get`, `pveversion`, `lscpu`, `ip -o addr`,
|
||||
`pvecm status` und `apt list --upgradable` entsprechen den Annahmen. Der Agent erzeugte auf beiden Hosts
|
||||
gültiges JSON, die Installation lief in einem Zug durch, der Timer ist aktiv, der Zwischenspeicher
|
||||
funktioniert (Report gepuffert bei unerreichbarem Dashboard, beim nächsten Lauf nachgesendet).
|
||||
|
||||
**Was anders war als gedacht:**
|
||||
|
||||
1. `pvesubscription get` kennt **kein** `--output-format json` (PVE 9.2). Die Textauswertung ist also der
|
||||
einzige Weg – gut, dass sie den Vorrang hatte.
|
||||
2. Ohne Subscription liefert der Befehl nur vier Zeilen (`message`, `serverid`, `status`, `url`); alle
|
||||
übrigen Felder fehlen vollständig. Der Agent meldet sie als `null`, das Dashboard zeigt „Keine
|
||||
Subscription“.
|
||||
3. `pveversion` enthält den Kernel im selben String („… (running kernel: …)“). Da der Kernel separat
|
||||
gemeldet wird, schneidet der Agent ihn jetzt ab.
|
||||
4. `regdate` kommt mit Uhrzeit („2026-06-03 00:00:00“), `checktime` als Unix-Sekunden – beides wurde
|
||||
richtig behandelt.
|
||||
5. Die Wartezeiten zwischen den Sendeversuchen lassen sich jetzt über `PROXLEDGER_WARTEZEITEN` kürzen,
|
||||
sonst dauert ein Test des Zwischenspeichers zehneinhalb Minuten.
|
||||
6. **Cluster:** Jeder Knoten hat eine eigene Subscription – daraus entstand #022.
|
||||
|
||||
**Noch offen:** PBS und PMG (keine Hosts verfügbar), Uninstall auf einem echten Host.
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
# #022 Cluster-Abgleich
|
||||
**Status:** erledigt
|
||||
**Meilenstein:** v0.14.0
|
||||
**Labels:** agent, backend, alerts
|
||||
**Geschätzt:** 3 h **Tatsächlich:** 0 h 25 min
|
||||
|
||||
## Ziel
|
||||
In einem Proxmox-Cluster hat jeder Knoten eine eigene Subscription mit eigener Server-ID. Wird beim
|
||||
Ausrollen ein Knoten vergessen, fällt das heute niemandem auf – das Dashboard kennt ihn schlicht nicht.
|
||||
Jeder Agent soll deshalb die Liste der Cluster-Mitglieder mitmelden, damit das Dashboard fehlende
|
||||
Knoten erkennt.
|
||||
|
||||
## Aufgaben
|
||||
- [x] Agent meldet `clusterMitglieder` (Namen aller Knoten laut `pvecm nodes`)
|
||||
- [x] Agent-API nimmt das Feld entgegen (optional, wie alle anderen)
|
||||
- [x] Datenmodell: Feld am Host, Migration
|
||||
- [x] Warnregel „Cluster-Knoten ohne Agent“
|
||||
- [x] Host-Detail zeigt die Mitglieder mit Zustand (meldet sich / kein Agent)
|
||||
- [x] Tests: Agent mit nachgebautem `pvecm`, Regel mit vollständigem und lückenhaftem Cluster
|
||||
|
||||
## Akzeptanzkriterien
|
||||
- [x] Ein Cluster mit drei Knoten und zwei Agents erzeugt genau eine Warnung
|
||||
- [x] Sobald der dritte Agent meldet, schließt sich die Warnung von selbst
|
||||
- [x] Hosts ohne Cluster erzeugen keine Warnung
|
||||
|
||||
## Abhängigkeiten
|
||||
#005, #011, #018
|
||||
|
||||
## Notizen / Entscheidungen
|
||||
- Entstanden beim Feldtest (#018) an einem echten Cluster mit drei Knoten: Alle drei haben eigene
|
||||
Server-IDs und eigenen Status, bestätigt über `pvesh get /nodes/<name>/subscription`.
|
||||
- Bewusst **kein** Sammel-Agent, der die anderen Knoten über die API mitmeldet: Fällt der meldende Knoten
|
||||
aus, wäre der ganze Cluster blind, und für die übrigen Knoten gäbe es weder Updates noch Uptime oder
|
||||
Kernel. Stattdessen Agent je Knoten plus dieser Abgleich.
|
||||
- Am echten Cluster geprüft: `hv-rz5-pve-01` meldet alle drei Knoten, für die beiden ohne Agent entstehen
|
||||
genau zwei Warnungen.
|
||||
- Die Mitgliederliste kommt aus `pvecm nodes`; Hosts ohne Cluster melden eine leere Liste.
|
||||
- Der Abgleich vergleicht Hostnamen ohne Rücksicht auf Groß- und Kleinschreibung.
|
||||
@@ -21,8 +21,9 @@ Details und Architektur: [../architektur.md](../architektur.md). Zeiten werden a
|
||||
| [#015](015-feinschliff-v1.md) | Feinschliff für 1.0 | erledigt | v0.11.0 | 6 h | 0 h 35 min |
|
||||
| [#016](016-anleitung-screenshots.md) | Benutzerhandbuch mit Screenshots | erledigt | v0.12.0 | 5 h | 0 h 30 min |
|
||||
| [#017](017-favicon-dateien.md) | Favicon-Dateien erzeugen | erledigt | v0.12.1 | 1 h | 0 h 15 min |
|
||||
| [#018](018-agent-feldtest.md) | Agent auf echten Proxmox-Hosts prüfen | offen | v0.2.1 | 2 h | – |
|
||||
| [#018](018-agent-feldtest.md) | Agent auf echten Proxmox-Hosts prüfen | erledigt | v0.14.0 | 2 h | 0 h 40 min |
|
||||
| [#019](019-ci-pipeline.md) | CI-Pipeline | erledigt | v0.13.0 | 3 h | 0 h 20 min |
|
||||
| [#020](020-gitea-issue-abgleich.md) | Issues nach Gitea übertragen | erledigt | v0.4.1 | 2 h | 0 h 10 min |
|
||||
| [#021](021-geheimnisse-verschluesseln.md) | Zugangsdaten verschlüsselt speichern | erledigt | v0.13.1 | 2 h | 0 h 20 min |
|
||||
| | **Summe** | | | **116 h** | **8 h 03 min** |
|
||||
| [#022](022-cluster-abgleich.md) | Cluster-Abgleich | erledigt | v0.14.0 | 3 h | 0 h 25 min |
|
||||
| | **Summe** | | | **119 h** | **9 h 08 min** |
|
||||
|
||||
Reference in New Issue
Block a user