PuppetDB 1.1 » API » v1 » Querying Nodes
This version of PuppetDB is not included in Puppet Enterprise. The latest version of PE includes PuppetDB 4.4. A newer version is available; see the version menu above for details.
Nodes can be queried by making an HTTP request to the
endpoint with a JSON-formatted parameter called
- The HTTP method must be
- There must be an
query parameter uses a format similar to resource queries.
Only queries against facts and filters based on node activeness are currently supported.
These query terms must be of the form
["fact", "<fact name>"] or
Accepted operators are:
[= > < >= <= and or not]
Inequality operators are strictly arithmetic, and will ignore any fact values which are not numeric.
Note that nodes which are missing a fact referenced by a
not query will match
In this example, the query will return active nodes whose kernel is Linux and whose uptime is less than 30 days:
["and", ["=", ["node", "active"], true], ["=", ["fact", "kernel"], "Linux"], [">", ["fact", "uptime_days"], 30]]
query parameter is supplied, all nodes will be returned.
The response is a JSON array of node names that match the predicates, sorted in ascending order:
["foo.example.com", "bar.example.com", "baz.example.com"]
Retrieving all nodes:
curl -H "Accept: application/json" 'http://localhost:8080/nodes'
Retrieving all active nodes:
curl -G -H "Accept: application/json" 'http://localhost:8080/nodes' --data-urlencode 'query=["=", ["node", "active"], true]'