# 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)