This CLI is compatible with PuppetDB 4.0.0 and greater.
Using rustc
and cargo
(stable, beta, or nightly):
$ export PATH=./target/debug:$PATH
$ export OPENSSL_LIB_DIR=$(brew --prefix)/lib
$ export OPENSSL_INCLUDE_DIR=$(brew --prefix)/include
$ cargo build
$ puppet-query 'nodes[certname]{}'
[
{
"certname" : "baz.example.com"
},
{
"certname" : "bar.example.com"
},
{
"certname" : "foo.example.com"
}
]
$ puppet-db status
{
"puppetdb-status": {
"service_version": "4.0.0-SNAPSHOT",
"service_status_version": 1,
"detail_level": "info",
"state": "running",
"status": {
"maintenance_mode?": false,
"queue_depth": 0,
"read_db_up?": true,
"write_db_up?": true
}
},
"status-service": {
"service_version": "0.3.1",
"service_status_version": 1,
"detail_level": "info",
"state": "running",
"status": {}
}
}
The Rust PuppetDB CLI accepts a --config=<path_to_config>
flag which allows
you to configure your ssl credentials and the location of your PuppetDB.
By default the tool will use $HOME/.puppetlabs/client-tools/puppetdb.conf
as
it's configuration file if it exists.
The format of the config file can be deduced from the following example.
{
"puppetdb" : {
"server_urls" : [
"https://pdb.internal.lan:8081",
"https://read-pdb.internal.lan:8081"
],
"cacert" : "/path/to/cacert",
"cert" : "/path/to/cert",
"key" : "/path/to/private_key"
},
}
}
- Add
--log-level
and--silent
options - Add testing for all the things