PuppetDB and PostgreSQL
PuppetDB allows for the collection of Puppet data and advanced features such as exported resources. In open source Puppet, it is entirely optional, while PE installs PuppetDB by default. The following is kept by PuppetDB:
- The last facts from the nodes
- The last catalog compiled for each node
- 14 days (default) of event reports for each node
- Exported resources
PuppetDB is a Clojure frontend application running on a JVM, using PostgreSQL as a backend database. This common architecture is where the backend database just provides the tables, and the frontend database contains the application objects, giving some key advantages compared to a single database. It eases the updating process of PuppetDB since the actual data can be left in the backend table, and it also allows great scalability—as we will see in the last section of this chapter, Scaling with compilers—where PuppetDB can be scaled horizontally by running PuppetDB...