index.markdown 5.04 KB
Newer Older
1
---
2
title: "PuppetDB 4.4 overview"
3 4 5
layout: default
---

6
[exported]: {{puppet}}/lang_exported.html
7 8 9 10 11 12
[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
13 14
[facts]: {{puppet}}/lang_facts_and_builtin_vars.html
[catalog]: {{puppet}}/lang_summary.html#compilation-and-catalogs
15 16
[releasenotes]: ./release_notes.html
[github]: https://github.com/puppetlabs/puppetdb
Ken Barber's avatar
Ken Barber committed
17
[tracker]: https://tickets.puppetlabs.com/browse/PDB
18

19 20 21
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.
22

23
Install it now
24 25 26 27
-----

To start using PuppetDB today:

28 29
* Review [the system requirements below](#system-requirements) (and, optionally,
  [our scaling recommendations][scaling]).
30
* Choose your installation method:
31 32 33 34
    * [Easy install][install_via_module] using the PuppetDB puppet module on our
      recommended platforms
    * [Install from packages][install_from_packages] on our recommended
      platforms
35
    * [Advanced install][install_advanced] on any other \*nix
36

37
Version note
38 39
-----

40 41
This manual covers the 4.0.x series of PuppetDB releases, which adds several new
features and contains some breaking changes since the 3.x series.
Wyatt Alt's avatar
Wyatt Alt committed
42 43

[See the release notes][releasenotes] for information on all
44
changes.
45 46


47
What data?
48 49
-----

50
PuppetDB stores:
51 52 53

* The most recent [facts][] from every node
* The most recent [catalog][] for every node
54
* Optionally, 14 days (configurable) of event reports for every node
55

56 57 58
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.
59

60 61 62 63 64
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).
65

66
System requirements
67 68
-----

69
### \*nix server with JDK 1.7+ (Debian) or JDK 1.8+ (RHEL-derived)
70

71
#### Standard install: RHEL, CentOS, Debian, and Ubuntu
72

73 74 75
Puppet 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:
76

77 78
* Red Hat Enterprise Linux 6.6+ and 7 (and any derived distro that includes Java
  1.8)
Wyatt Alt's avatar
Wyatt Alt committed
79
* Debian 7 (Wheezy) and 8 (Jessie)
80
* Ubuntu 12.04 LTS, 14.04 LTS
81

82
[See here for instructions for installing via the PuppetDB module.][install_via_module]
83 84 85

[See here for instructions for installing from OS packages.][install_from_packages]

86
#### Custom install: Any Unix-like OS
87

88 89
If you're willing to do some manual configuration, PuppetDB can run on any
Unix-like OS with JDK 1.7 or higher, including:
90

91 92 93
* Recent MacOS X versions (using built-in Java 1.8 support)
* Nearly any Linux distribution (using Java 1.8)
* Nearly any \*nix system running a recent Oracle-provided 1.8 JDK
94 95 96

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

97
### Puppet 4.0.0
98

99 100
Your site's Puppet masters must be running Puppet 4.0.0 or later.
[You will need to connect your Puppet masters to PuppetDB after installing it][connect].
101
If you wish to use PuppetDB with
102 103
[standalone nodes that are running puppet apply][apply], every node must be
running 3.8.1 or later.
104

Wyatt Alt's avatar
Wyatt Alt committed
105 106 107 108 109 110 111 112 113 114
### PostgreSQL 9.4

PuppetDB requires PostgreSQL 9.4 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 or yum.postgresql.org for
more information.

You can also install a compatible version of Postgres using the
[puppetlabs-puppetdb module][install_via_module].

115 116
### Robust Hardware

117 118
PuppetDB will be a critical component of your Puppet deployment and should be
run on a robust and reliable server.
119

120 121 122 123 124
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.
125

126 127 128
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.
129

130
For more on fitting PuppetDB to your site, [see our scaling recommendations.][scaling]
131 132 133 134

Open Source
-----

135 136 137 138 139
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].