Files
openvox-docker/README.md
2025-12-08 18:50:29 +01:00

54 lines
2.1 KiB
Markdown

# PuppetDB API Abfragen
Dieses Dokument beschreibt, wie man die PuppetDB-API direkt über `curl` abfragt, um Informationen über den Status der Puppet-Clients zu erhalten.
Alle Befehle werden innerhalb des `openvox` (Puppet Master) Containers ausgeführt.
## Alle aktiven Clients (Nodes) auflisten
Um eine Liste aller von PuppetDB verwalteten Clients zu erhalten, die aktiv sind, verwenden Sie den folgenden Befehl:
```bash
docker compose exec openvox curl -s http://openvoxdb:8080/pdb/query/v4/nodes
```
**Beispiel-Ausgabe (gekürzt):**
```json
[
{
"certname": "arch-2.lxd",
"latest_report_status": "changed",
"facts_environment": "production",
...
}
]
```
Dies zeigt Ihnen den `certname` jedes Clients, den Sie für weitere Abfragen verwenden können.
## Reports für einen bestimmten Client abrufen
Um zu sehen, was auf einem bestimmten Client gelaufen ist, können Sie dessen Reports abfragen. Ersetzen Sie `arch-2.lxd` mit dem `certname` des gewünschten Clients.
```bash
docker compose exec openvox curl -s -G http://openvoxdb:8080/pdb/query/v4/reports --data-urlencode 'query=["=","certname","arch-2.lxd"]'
```
### Interpretation der Report-Ausgabe
Die Ausgabe ist ein JSON-Array von Reports. Jeder Report enthält wichtige Informationen:
* `"status"`: Zeigt das Ergebnis des Puppet-Laufs.
* `"changed"`: Der Lauf war erfolgreich und es wurden Änderungen am System vorgenommen.
* `"unchanged"`: Der Lauf war erfolgreich, es waren aber keine Änderungen nötig.
* `"failed"`: Der Lauf ist fehlgeschlagen (z.B. wegen eines Kompilierungsfehlers).
* `"logs"`: Enthält die Log-Meldungen des Puppet-Agenten während des Laufs. Hier finden Sie Details zu Fehlern oder erfolgreichen Aktionen.
* `"resource_events"`: Zeigt im Detail, welche Ressourcen geändert wurden.
Anhand dieser Reports können Sie genau nachvollziehen, welche Aktionen auf einem Client erfolgreich waren und welche nicht.
## Weiterführende Informationen
Für komplexere Abfragen können Sie die offizielle Dokumentation der PuppetDB API konsultieren:
[PuppetDB Query API Documentation](https://puppet.com/docs/puppetdb/latest/api/query/v4/overview.html)