1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145
|
---
title: "Overview"
layout: default
---
# Overview and requirements
[exported]: https://puppet.com/docs/puppet/latest/lang_exported.html
[connect]: ./connect_puppet_server.markdown
[apply]: ./connect_puppet_apply.markdown
[install_via_module]: ./install_via_module.markdown
[install_from_packages]: ./install_from_packages.markdown
[install_advanced]: ./install_from_source.markdown
[scaling]: ./scaling_recommendations.markdown
[facts]: https://puppet.com/docs/puppet/latest/lang_facts_and_builtin_vars.html
[catalog]: https://puppet.com/docs/puppet/latest/lang_summary.html#compilation-and-catalogs
[releasenotes]: ./release_notes.markdown
[github]: https://github.com/puppetlabs/puppetdb
[tracker]: https://tickets.puppetlabs.com/browse/PDB
[apt_pgdg]: https://apt.postgresql.org
[yum_pgdg]: https://yum.postgresql.org
PuppetDB collects data generated by PuppetĀ®. It enables advanced Puppet features
like [exported resources][exported], and can be the foundation for other
applications that use Puppet's data.
## Install it now
To start using PuppetDB today:
* Review [the system requirements below](#system-requirements) (and optionally,
[our scaling recommendations][scaling]).
* Choose your installation method:
* [Easy install][install_via_module] using the PuppetDB puppet module on our
recommended platforms
* [Install from packages][install_from_packages] on our recommended
platforms
* [Advanced install][install_advanced] on any other \*nix
## Version note
This documentation covers PuppetDB 8, which adds several new features and
contains some breaking changes since PuppetDB 7.
[See the release notes][releasenotes] for information on all
changes.
## What data?
PuppetDB stores:
* The most recent [facts][] from every node
* The most recent [catalog][] for every node
* Optionally, 14 days (configurable) of event reports for every node
Together, these give you a huge inventory of metadata about every node in your
infrastructure and a searchable database of **every single resource** being
managed on any node.
Puppet itself can search a subset of this data using
[exported resources][exported], which allow nodes to manage resources on other
nodes. This is similar to the capabilities of the legacy ActiveRecord
`storeconfigs` interface, but much, much faster. The remaining data is available
through PuppetDB's query APIs (see the navigation sidebar for details).
## System requirements
### \*nix server with JVM 11+
Java 17 is recommended, but Java 11 is supported as well.
#### Standard install: RHEL, CentOS, Debian, and Ubuntu
Puppet provides PuppetDB packages and a module which simplify the
setup of its SSL certificates and init scripts. The packages are
available for the following operating systems:
* Red Hat Enterprise Linux 7, 8, and 9
* SuSE Enterprise Linux 12, 15
* Debian 10 (Buster), and 11 (Bullseye)
* Ubuntu 18.04 (Bionic) LTS, 20.04 (Focal), 22.04 (Jammy) LTS
[See here for instructions for installing via the PuppetDB module.][install_via_module]
[See here for instructions for installing from OS packages.][install_from_packages]
#### Custom install: Any Unix-like OS
If you're willing to do some manual configuration, PuppetDB can run on
any Unix-like OS with JVM 11 or newer, including:
* Recent MacOS X versions (using built-in support)
* Nearly any Linux distribution using OpenJDK 11 or Oracle JDK 11
* Nearly any \*nix distribution using OpenJDK 11 or Oracle JDK 11
[See here for advanced installation instructions.][install_advanced]
### Puppet 8.0.0
Your site's Puppet Server must be running Puppet Server 8.0.0 or later.
[You will need to connect your Puppet Servers to PuppetDB after installing it][connect].
If you wish to use PuppetDB with
[standalone nodes that are running puppet apply][apply], every node
must be running 8.0.0 or later.
### PostgreSQL 14
PuppetDB 8 recommends PostgreSQL 14 or later in order to take advantage of new
features in PostgreSQL.
PuppetDB requires PostgreSQL 11 or later. If not provided by your
distribution, compatible versions of Postgres can be installed from the PGDG
(PostgreSQL Global Development Group) repositories. See
[apt.postgresql.org][apt_pgdg] or [yum.postgresql.org][yum_pgdg] for more
information.
You can also install a compatible version of Postgres using the
[puppetlabs-puppetdb module][install_via_module].
### Robust Hardware
PuppetDB will be a critical component of your Puppet deployment and should be
run on a robust and reliable server.
However, it can do a lot with fairly modest hardware. In benchmarks using
real-world catalogs from a customer, a single 2012 laptop (16 GB of RAM,
consumer-grade SSD, and quad-core processor) running PuppetDB and PostgreSQL was
able to keep up with sustained input from 8,000 simulated Puppet nodes checking
in every 30 minutes. Powerful server-grade hardware will perform even better.
The actual requirements will vary wildly depending on your site's size and
characteristics. At smallish sites, you may even be able to run PuppetDB on your
Puppet Server.
For more on fitting PuppetDB to your site, [see our scaling recommendations.][scaling]
## Open Source
PuppetDB is developed openly, and is released under the
[Apache 2.0 license](http://www.apache.org/licenses/LICENSE-2.0.html). You can
get the source --- and contribute to it! --- at
[the PuppetDB GitHub repo][github]. Bug reports and feature requests are welcome
at [the Puppet LabsĀ® issue tracker][tracker].
|