Embed presentation
Download as PDF, PPTX




![Query API example
["and",
["in","certname",
["extract","certname",
["select_fact_contents",
["and",
["=","path",["lsbdistcodename"]],
["=","value","squeeze"]]]]],
["in","certname",
["extract","certname",
["select_resources",
["and",
["=","type","Class"],
["=","title","Nginx"],
["=","exported",false]]]]]]](https://image.slidesharecdn.com/puppetdbpuppetexplorer-151120173617-lva1-app6892/85/PuppetDB-Puppet-Explorer-and-puppetdbquery-5-320.jpg)
![lsbdistcodename=squeeze and class[nginx]
same query in puppetdbquery](https://image.slidesharecdn.com/puppetdbpuppetexplorer-151120173617-lva1-app6892/85/PuppetDB-Puppet-Explorer-and-puppetdbquery-6-320.jpg)

![Query syntax
Comparison operators
=
!=
>
>=
<
<=
~
!~
Logical Operators
and
or
not
Fact comparisons
factname = value
uptime.days > 209
apt_package_updates.* ~ openssl
Resource expressions
type[name] { parameter = value }](https://image.slidesharecdn.com/puppetdbpuppetexplorer-151120173617-lva1-app6892/85/PuppetDB-Puppet-Explorer-and-puppetdbquery-8-320.jpg)

![Poor mans mcollective
pssh -h <(puppet query nodes 'site=lon and class[nginx]')
sudo service nginx restart](https://image.slidesharecdn.com/puppetdbpuppetexplorer-151120173617-lva1-app6892/85/PuppetDB-Puppet-Explorer-and-puppetdbquery-10-320.jpg)




This document summarizes PuppetDB, Puppet Explorer, and puppetdbquery. PuppetDB is a Clojure service that stores Puppet data like facts, catalogs, and reports in a PostgreSQL backend. It allows exporting and collecting resources. PuppetDB has a rich query API to search nodes, environments, facts, catalogs, resources, and more. Puppet Explorer is a web UI that visualizes PuppetDB data using CoffeeScript and AngularJS. Puppetdbquery is a Puppet module and CLI tool for querying PuppetDB with functions, a Puppetface, hiera backend, and Ruby API. It allows querying nodes and resources with comparison, logical, and date expressions.




![Query API example
["and",
["in","certname",
["extract","certname",
["select_fact_contents",
["and",
["=","path",["lsbdistcodename"]],
["=","value","squeeze"]]]]],
["in","certname",
["extract","certname",
["select_resources",
["and",
["=","type","Class"],
["=","title","Nginx"],
["=","exported",false]]]]]]](https://image.slidesharecdn.com/puppetdbpuppetexplorer-151120173617-lva1-app6892/85/PuppetDB-Puppet-Explorer-and-puppetdbquery-5-320.jpg)
![lsbdistcodename=squeeze and class[nginx]
same query in puppetdbquery](https://image.slidesharecdn.com/puppetdbpuppetexplorer-151120173617-lva1-app6892/85/PuppetDB-Puppet-Explorer-and-puppetdbquery-6-320.jpg)

![Query syntax
Comparison operators
=
!=
>
>=
<
<=
~
!~
Logical Operators
and
or
not
Fact comparisons
factname = value
uptime.days > 209
apt_package_updates.* ~ openssl
Resource expressions
type[name] { parameter = value }](https://image.slidesharecdn.com/puppetdbpuppetexplorer-151120173617-lva1-app6892/85/PuppetDB-Puppet-Explorer-and-puppetdbquery-8-320.jpg)

![Poor mans mcollective
pssh -h <(puppet query nodes 'site=lon and class[nginx]')
sudo service nginx restart](https://image.slidesharecdn.com/puppetdbpuppetexplorer-151120173617-lva1-app6892/85/PuppetDB-Puppet-Explorer-and-puppetdbquery-10-320.jpg)


