---
title: "PuppetDB 3.0 » Overview"
layout: default
canonical: "/puppetdb/latest/index.html"
---

[exported]: /puppet/latest/reference/lang_exported.html
[connect]: ./connect_puppet_master.html
[apply]: ./connect_puppet_apply.html
[install_via_module]: ./install_via_module.html
[install_from_packages]: ./install_from_packages.html
[install_advanced]: ./install_from_source.html
[scaling]: ./scaling_recommendations.html
[facts]: /puppet/latest/reference/lang_facts_and_builtin_vars.html
[catalog]: /puppet/latest/reference/lang_summary.html#compilation-and-catalogs
[releasenotes]: ./release_notes.html
[github]: https://github.com/puppetlabs/puppetdb
[tracker]: https://tickets.puppetlabs.com/browse/PDB
[migrating]: ./migrate.html
[old_docs]: http://docs.puppetlabs.com/puppetdb/1.1/

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]).
* If you'd like to migrate existing exported resources from your ActiveRecord storeconfigs database, please see the documentation on [Migrating Data][migrating].
* 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 manual covers the 3.0.x series of PuppetDB releases, which adds
several new features and contains some breaking changes since the 2.x
series. [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, fourteen 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 navigation sidebar for details).

System Requirements
-----

### \*nix Server with JDK 1.7+

#### Standard Install: RHEL, CentOS, Debian, Ubuntu, or Fedora

Puppet Labs provides packages and a Puppet module for PuppetDB which simplify setup of its SSL certificates and init scripts. These packages are available for the following operating systems:

* Red Hat Enterprise Linux 6 and 7 (and any distro derived from it including CentOS)
* Debian 7 (Wheezy)
* Ubuntu 12.04 LTS, 14.04 LTS
* Fedora 21

[See here for instructions for installing via the PuppetDB puppet 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 JDK 1.7 or higher, including:

* Recent MacOS X versions (using built-in Java support)
* Nearly any Linux distribution (using vendor's OpenJDK packages)
* Nearly any \*nix system running a recent Oracle-provided JDK

[See here for advanced installation instructions.][install_advanced]

### Puppet 3.8.1

Your site's puppet masters must be running Puppet 3.8.1 or
later. [You will need to connect your puppet masters 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 3.8.1 or later.

> #### Note about Puppet Enterprise
>
> * Due to packaging changes related to the integration of PuppetDB with Puppet Enterprise, the latest PuppetDB packages are not available for use with Puppet Enterprise 2.8 or below. Users of Puppet Enterprise 2.8 or below can use PuppetDB 1.1, and should visit the [PuppetDB 1.1 documentation][old_docs]. PuppetDB is now included by default in Puppet Enterprise, and will be released on a separate schedule.

### Robust Hardware

PuppetDB will be a critical component of your Puppet deployment and so 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 master server.

For more on fitting PuppetDB to your site, [see "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]. Bugs and feature requests are welcome at [Puppet Labs's issue tracker][tracker].
