puppetdb
Version information
This version is compatible with:
- Puppet Enterprise 2023.8.x, 2023.7.x, 2023.6.x, 2023.5.x, 2023.4.x, 2023.3.x, 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x
- Puppet >= 7.0.0 < 9.0.0
- , , , , ,
Start using this module
Add this module to your Puppetfile:
mod 'puppetlabs-puppetdb', '8.1.0'
Learn more about managing modules with a PuppetfileDocumentation
puppetdb
Table of Contents
- Overview - What is the PuppetDB module?
- Module Description - What does the module do?
- Setup - The basics of getting started with PuppetDB module
- Upgrading - Guide for upgrading from older revisions of this module
- Usage - The classes and parameters available for configuration
- Implementation - An under-the-hood peek at what the module is doing
- Limitations - OS compatibility, etc.
- Development - Guide for contributing to the module
- Release Notes - Notes on the most recent updates to the module
Overview
By guiding puppetdb setup and configuration with a Puppet master, the PuppetDB module provides fast, streamlined access to data on puppetized infrastructure.
Module Description
The PuppetDB module provides a quick way to get started using PuppetDB, an open source inventory resource service that manages storage and retrieval of platform-generated data. The module will install PostgreSQL and PuppetDB if you don't have them, as well as set up the connection to Puppet master. The module will also provide a dashboard you can use to view the current state of your system.
For more information about PuppetDB please see the official PuppetDB documentation.
Setup
What PuppetDB affects:
- package/service/configuration files for PuppetDB
- package/service/configuration files for PostgreSQL (optional, but set as default)
- Puppet master's runtime (via plugins)
- Puppet master's configuration
- note: Using the
puppetdb::master::config
class will cause your routes.yaml file to be overwritten entirely (see Usage below for options and more information )
- note: Using the
- system firewall (optional)
- listened-to ports
Introductory Questions
To begin using PuppetDB, you’ll have to make a few decisions:
- Should I run the database on the same node that I run PuppetDB on?
- Should I run PuppetDB on the same node that I run my master on?
The answers to those questions will be largely dependent on your answers to questions about your Puppet environment:
- How many nodes are you managing?
- What kind of hardware are you running on?
- Is your current load approaching the limits of your hardware?
Depending on your answers to all of the questions above, you will likely fall under one of these set-up options:
Single Node Setup
This approach assumes you will use our default database (PostgreSQL) and run everything (PostgreSQL, PuppetDB, Puppet master) all on the same node. This setup will be great for a testing or experimental environment. In this case, your manifest will look like:
node <hostname> {
# Configure puppetdb and its underlying database
class { 'puppetdb': }
# Configure the Puppet master to use puppetdb
class { 'puppetdb::master::config': }
}
You can provide some parameters for these classes if you’d like more control, but that is literally all that it will take to get you up and running with the default configuration.
Multiple Node Setup
This approach is for those who prefer not to install PuppetDB on the same node as the Puppet master. Your environment will be easier to scale if you are able to dedicate hardware to the individual system components. You may even choose to run the puppetdb server on a different node from the PostgreSQL database that it uses to store its data. So let’s have a look at what a manifest for that scenario might look like:
This is an example of a very basic 3-node setup for PuppetDB.
$puppetdb_host = 'puppetdb.example.lan'
$postgres_host = 'postgres.example.lan'
node 'master.example.lan' {
# Here we configure the Puppet master to use PuppetDB,
# telling it the hostname of the PuppetDB node
class { 'puppetdb::master::config':
puppetdb_server => $puppetdb_host,
}
}
node 'postgres.example.lan' {
# Here we install and configure PostgreSQL and the PuppetDB
# database instance, and tell PostgreSQL that it should
# listen for connections to the `$postgres_host`
class { 'puppetdb::database::postgresql':
listen_addresses => $postgres_host,
}
}
node 'puppetdb.example.lan' {
# Here we install and configure PuppetDB, and tell it where to
# find the PostgreSQL database.
class { 'puppetdb::server':
database_host => $postgres_host,
}
}
This should be all it takes to get a 3-node, distributed installation of PuppetDB up and running. Note that, if you prefer, you could easily move two of these classes to a single node and end up with a 2-node setup instead.
Enable SSL connections
To use SSL connections for the single node setup, use the following manifest:
node <hostname> {
# Here we configure puppetdb and PostgreSQL to use ssl connections
class { 'puppetdb':
postgresql_ssl_on => true,
database_host => '<hostname>',
database_listen_address => '0.0.0.0'
}
# Configure the Puppet master to use puppetdb
class { 'puppetdb::master::config': }
To use SSL connections for the multiple nodes setup, use the following manifest:
$puppetdb_host = 'puppetdb.example.lan'
$postgres_host = 'postgres.example.lan'
node 'master.example.lan' {
# Here we configure the Puppet master to use PuppetDB,
# telling it the hostname of the PuppetDB node.
class { 'puppetdb::master::config':
puppetdb_server => $puppetdb_host,
}
}
node 'postgres.example.lan' {
# Here we install and configure PostgreSQL and the PuppetDB
# database instance, and tell PostgreSQL that it should
# listen for connections to the `$postgres_host`.
# We also enable SSL connections.
class { 'puppetdb::database::postgresql':
listen_addresses => $postgres_host,
postgresql_ssl_on => true,
puppetdb_server => $puppetdb_host
}
}
node 'puppetdb.example.lan' {
# Here we install and configure PuppetDB, and tell it where to
# find the PostgreSQL database. We also enable SSL connections.
class { 'puppetdb::server':
database_host => $postgres_host,
postgresql_ssl_on => true
}
}
Beginning with PuppetDB
Whether you choose a single node development setup or a multi-node setup, a basic setup of PuppetDB will cause: PostgreSQL to install on the node if it’s not already there; PuppetDB postgres database instance and user account to be created; the postgres connection to be validated and, if successful, PuppetDB to be installed and configured; PuppetDB connection to be validated and, if successful, the Puppet master config files to be modified to use PuppetDB; and the Puppet master to be restarted so that it will pick up the config changes.
If your logging level is set to INFO or finer, you should start seeing PuppetDB-related log messages appear in both your Puppet master log and your puppetdb log as subsequent agent runs occur.
Cross-node Dependencies
It is worth noting that there are some cross-node dependencies, which means that the first time you add the module's configurations to your manifests, you may see a few failed puppet runs on the affected nodes.
PuppetDB handles cross-node dependencies by taking a sort of "eventual consistency" approach. There’s nothing that the module can do to control the order in which your nodes check in, but the module can check to verify that the services it depends on are up and running before it makes configuration changes--so that’s what it does.
When your Puppet master node checks in, it will validate the connectivity to the puppetdb server before it applies its changes to the Puppet master config files. If it can’t connect to puppetdb, then the puppet run will fail and the previous config files will be left intact. This prevents your master from getting into a broken state where all incoming puppet runs fail because the master is configured to use a puppetdb server that doesn’t exist yet. The same strategy is used to handle the dependency between the puppetdb server and the postgres server.
Hence the failed puppet runs. These failures should be limited to 1 failed run on the puppetdb node, and up to 2 failed runs on the Puppet master node. After that, all of the dependencies should be satisfied and your puppet runs should start to succeed again.
You can also manually trigger puppet runs on the nodes in the correct order (Postgres, PuppetDB, Puppet master), which will avoid any failed runs.
Upgrading
Upgrading from 4.x to 5.x
Significant parameter changes are listed below:
- The PuppetDB module defaults to Puppet 4 pathing and assumes
puppetserver
is the master service by default - The PuppetDB module manages Postgres repos by default. To turn this behavior
off, set
manage_package_repo
tofalse
. - To specify a specific version of PuppetDB to manage, you'll need to use the
puppetdb::globals
class to set the version of PuppetDB you're using explicitly. The ability to configure the version in thepuppetdb::server
andpuppetdb
class have been removed.
For example if your config looked like this before:
class {'puppetdb':
puppetdb_version => '3.2.4-1.el7',
}
class { 'puppetdb::master::config': }
and you'd still like to use the module with PuppetDB 3.2.4, all you'd have to change would be:
class { 'puppetdb::globals':
version => '3.2.4-1.el7',
}
class { 'puppetdb' : }
class { 'puppetdb::master::config' : }
The globals
class above takes into account the following PuppetDB 3 and Puppet
4 related changes:
* The `puppetdb::master:puppetdb_conf` class has added a `$legacy_terminus`
to support the PuppetDB 2.x terminus configuration.
* The default `test_url` for the `PuppetDBConnValidator` has also been
changed to `/pdb/meta/v1/version` but will default to `/v3/version` when
using a PuppetDB 2.x version.
* The configuration pathing for Puppet and PuppetDB has changed with Puppet
4 and PuppetDB 3, using PuppetDB 2.x or older assumes the old
configuration pathing.
See the CHANGELOG file for more detailed information on changes for each release.
Upgrading from 3.x to 4.x
For this release, all dependency versions have been bumped to their latest. Significant parameter changes are listed below:
- The PuppetDB module now only supports Puppet 3.7.1 or later
puppetlabs/postgresql
4.0.0 or later is now requiredpuppetlabs/inifile
1.1.3 or later is now requiredpuppetlabs/firewall
1.1.3 or later is now requiredpuppetlabs/stdlib
4.2.2 or later is now required- The parameter
manage_firewall
for the classpuppetdb::database::postgresql
has now been removed, since the PostgreSQL module no longer supports this. - The parameter
open_postgres_port
for the classpuppetdb
has also been removed, due to PostgreSQL changes.
See the CHANGELOG file for more detailed information on changes for each release.
Upgrading from 2.x to 3.x
For this release a major dependency has changed. The module
pupppetlabs/postgresql
must now be version 3.x. Upgrading the module should
upgrade the puppetlabs/postgresql
module for you, but if another module has a
fixed dependency that module will have to be fixed before you can continue.
Some other changes include:
- The parameter
manage_redhat_firewall
for the classpuppetdb
has now been removed completely in favor ofopen_postgres_port
andopen_ssl_listen_port
. - The parameter
manage_redhat_firewall
for the classpuppetdb::database::postgresql
, has now been renamed tomanage_firewall
. - The parameter
manage_redhat_firewall
for the classpuppetdb::server
has now been removed completely in favor ofopen_listen_port
andopen_ssl_listen_port
. - The internal class:
puppetdb::database::postgresql_db
has been removed. If you were using this, it is now defunct. - The class
puppetdb::server::firewall
has been marked as private, do not use it directly. - The class
puppetdb::server::jetty_ini
andpuppetdb::server::database_ini
have been marked as private, do not use it directly.
Upgrading from 1.x to 2.x
A major dependency has been changed, so now when you upgrade to 2.0 the
dependency cprice404/inifile
has been replaced with puppetlabs/inifile
. This
may interfere with other modules as they may depend on the old
cprice404/inifile
instead, so upgrading should be done with caution. Check
that your other modules use the newer puppetlabs/inifile
module as
interoperation with the old cprice404/inifile
module will no longer be
supported by this module.
Depending on how you install your modules, changing the dependency may require
manual intervention. Double check your modules contain the newer
puppetlabs/inifile
after installing this latest module.
Otherwise, all existing parameters from 1.x should still work correctly.
Usage
PuppetDB supports a large number of configuration options for both configuring the puppetdb service and connecting that service to the Puppet master.
puppetdb::globals
The puppetdb::globals
class is intended to provide similar functionality to
the postgresql::globals
class in the puppetlabs-postgresql
module by
exposing a top-level entry-point into the module so that we can properly set
defaults for the puppetdb::params
class based on the version of puppetdb
you
are using. This setting defaults to present
.
You must declare the class to use it:
class { 'puppetdb::globals': }
puppetdb
The puppetdb
class is intended as a high-level abstraction (sort of an
'all-in-one' class) to help simplify the process of getting your puppetdb server
up and running. It wraps the slightly-lower-level classes puppetdb::server
and
puppetdb::database::*
, and it'll get you up and running with everything you
need (including database setup and management) on the server side. For maximum
configurability, you may choose not to use this class. You may prefer to use the
puppetdb::server
class directly, or manage your puppetdb setup on your own.
You must declare the class to use it:
class { 'puppetdb': }
puppetdb::server
The puppetdb::server
class manages the PuppetDB server independently of the
underlying database that it depends on. It will manage the PuppetDB package,
service, config files, etc., but will still allow you to manage the database
(e.g. PostgreSQL) however you see fit.
class { 'puppetdb::server':
database_host => 'pg1.mydomain.com',
}
puppetdb::master::config
The puppetdb::master::config
class directs your Puppet master to use PuppetDB,
which means that this class should be used on your Puppet master node. It’ll
verify that it can successfully communicate with your PuppetDB server, and then
configure your master to use PuppetDB.
Using this class allows the module to manipulate the puppet configuration files
puppet.conf and routes.yaml. The puppet.conf changes are supplemental and should
not affect any of your existing settings, but the routes.yaml file will be
overwritten entirely. If you have an existing routes.yaml file, you will want to
take care to use the manage_routes
parameter of this class to prevent the module
from managing that file, and you’ll need to manage it yourself.
class { 'puppetdb::master::config':
puppetdb_server => 'my.host.name',
puppetdb_port => 8081,
}
puppetdb::database::postgresql
The puppetdb::database::postgresql
class manages a PostgreSQL server for use
by PuppetDB. It can manage the PostgreSQL packages and service, as well as
creating and managing the PuppetDB database and database user accounts.
class { 'puppetdb::database::postgresql':
listen_addresses => 'my.postgres.host.name',
}
Implementation
Resource overview
In addition to the classes and variables mentioned above, PuppetDB includes:
puppetdb::master::routes
Configures the Puppet master to use PuppetDB as the facts terminus. WARNING: the current implementation simply overwrites your routes.yaml file; if you have an existing routes.yaml file that you are using for other purposes, you should not use this.
class { 'puppetdb::master::routes':
puppet_confdir => '/etc/puppet'
}
The optional parameter routes can be used to specify a custom route configuration. For example to configure routes for masterless puppet.
class { 'puppetdb::master::routes':
routes => {
'apply' => {
'facts' => {
'terminus' => 'facter',
'cache' => 'puppetdb_apply',
}
}
}
}
puppetdb::master::storeconfigs
Configures the Puppet master to enable storeconfigs and to use PuppetDB as the storeconfigs backend.
class { 'puppetdb::master::storeconfigs':
puppet_conf => '/etc/puppet/puppet.conf'
}
puppetdb::server::validate_db
Validates that a successful database connection can be established between the node on which this resource is run and the specified PuppetDB database instance (host/port/user/password/database name).
puppetdb::server::validate_db { 'validate my puppetdb database connection':
database_host => 'my.postgres.host',
database_username => 'mydbuser',
database_password => 'mydbpassword',
database_name => 'mydbname',
}
Custom Types
puppetdb_conn_validator
Verifies that a connection can be successfully established between a node and the PuppetDB server. Its primary use is as a precondition to prevent configuration changes from being applied if the PuppetDB server cannot be reached, but it could potentially be used for other purposes such as monitoring.
Limitations
Currently, PuppetDB is compatible with:
Puppet Version: 4.10+
Platforms:
- EL 5, 6, 7
- Debian 6, 7
- Ubuntu 10.04, 12.04, 14.04
Community Maintained Platforms:
- Archlinux
- OpenBSD 5.6-current and newer
- SLES 11 SP1
Development
Puppet Labs modules on the Puppet Forge are open projects, and community contributions are essential for keeping them great. We can’t access the huge number of platforms and myriad of hardware, software, and deployment configurations that Puppet is intended to serve.
We want to keep it as easy as possible to contribute changes so that our modules work in your environment. There are a few guidelines that we need contributors to follow so that we can have a chance of keeping on top of things.
You can read the complete contribution guide.
Reference
Table of Contents
Classes
Public Classes
puppetdb
: manage PuppetDBpuppetdb::database::postgresql
: create the PuppetDB postgresql databasepuppetdb::globals
: global configuration class for PuppetDBpuppetdb::master::config
: manage the puppet configuration on the primarypuppetdb::server
: manage the PuppetDB server
Private Classes
puppetdb::database::ssl_configuration
: configure SSL for the PuppetDB postgresql databasepuppetdb::master::puppetdb_conf
: manage the puppetdb.conf file on the puppet primarypuppetdb::master::report_processor
: manage the installation of the report processor on the primarypuppetdb::master::routes
: manages the routes configuration file on the masterpuppetdb::master::storeconfigs
: configure the puppet master to enable storeconfigs and to use puppetdb as the storeconfigs backendpuppetdb::params
: default configuration settingspuppetdb::server::command_processing
: manage puppetdb config inipuppetdb::server::database
: manage puppetdb database inipuppetdb::server::firewall
: manage puppetdb firewall rulespuppetdb::server::global
: manage puppetdb global settingpuppetdb::server::jetty
: configures puppetdb jetty inipuppetdb::server::puppetdb
: manage puppetdb inipuppetdb::server::read_database
: manage puppetdb read_database inipuppetdb::server::validate_db
: validates the database connectionpuppetdb::server::validate_read_db
: validates the read only database connection
Defined types
Private Defined types
puppetdb::database::default_read_grant
: grant read permissions to $database_read_only_username by default, for new tables created by $database_usernamepuppetdb::database::postgresql_ssl_rules
: manage the pg_ident.conf and pg_hba.conf filespuppetdb::database::read_grant
: grant read-only permissions to $database_read_only_username for all objects in $schema of $database_namepuppetdb::database::read_only_user
: manage the creation of a read-only postgres users
Resource types
puppetdb_conn_validator
: Verify that a connection can be successfully established between a node and the puppetdb server. Its primary use is as a precondition to pre
Functions
Data types
Classes
puppetdb
manage PuppetDB
Parameters
The following parameters are available in the puppetdb
class:
listen_address
listen_port
disable_cleartext
open_listen_port
ssl_listen_address
ssl_listen_port
disable_ssl
open_ssl_listen_port
ssl_protocols
postgresql_ssl_on
postgresql_ssl_folder
postgresql_ssl_cert_path
postgresql_ssl_key_path
postgresql_ssl_ca_cert_path
cipher_suites
migrate
manage_dbserver
manage_database
manage_package_repo
postgres_version
database_host
database_port
database_username
database_password
manage_db_password
database_name
jdbc_ssl_properties
database_listen_address
database_validate
node_ttl
node_purge_ttl
report_ttl
facts_blacklist
gc_interval
node_purge_gc_batch_limit
conn_max_age
conn_lifetime
puppetdb_package
puppetdb_service
puppetdb_service_status
puppetdb_user
puppetdb_group
puppetdb_server
confdir
vardir
java_args
merge_default_java_args
max_threads
read_database_host
read_database_port
read_database_username
read_database_password
manage_read_db_password
read_database_jdbc_ssl_properties
read_database_validate
read_database_name
read_conn_max_age
read_conn_lifetime
ssl_dir
ssl_set_cert_paths
ssl_cert_path
ssl_key_pk8_path
ssl_key_path
ssl_ca_cert_path
ssl_deploy_certs
ssl_key
ssl_cert
ssl_ca_cert
manage_firewall
command_threads
concurrent_writes
store_usage
temp_usage
disable_update_checking
certificate_whitelist_file
certificate_whitelist
database_max_pool_size
read_database_max_pool_size
automatic_dlo_cleanup
cleanup_timer_interval
dlo_max_age
java_bin
postgresql_password_encryption
listen_address
Data type: Any
The address that the web server should bind to for HTTP requests. Defaults to
localhost
. Set to 0.0.0.0
to listen on all addresses.
Default value: $puppetdb::params::listen_address
listen_port
Data type: Any
The port on which the puppetdb web server should accept HTTP requests. Defaults
to 8080
.
Default value: $puppetdb::params::listen_port
disable_cleartext
Data type: Any
If true
, the puppetdb web server will only serve HTTPS and not HTTP requests (defaults to false).
Default value: $puppetdb::params::disable_cleartext
open_listen_port
Data type: Any
If true
, open the http_listen_port
on the firewall. Defaults to false
.
Default value: $puppetdb::params::open_listen_port
ssl_listen_address
Data type: Any
The address that the web server should bind to for HTTPS requests. Defaults to
0.0.0.0
to listen on all addresses.
Default value: $puppetdb::params::ssl_listen_address
ssl_listen_port
Data type: Any
The port on which the puppetdb web server should accept HTTPS requests. Defaults
to 8081
.
Default value: $puppetdb::params::ssl_listen_port
disable_ssl
Data type: Any
If true
, the puppetdb web server will only serve HTTP and not HTTPS requests.
Defaults to false
.
Default value: $puppetdb::params::disable_ssl
open_ssl_listen_port
Data type: Any
If true, open the ssl_listen_port
on the firewall. Defaults to undef
.
Default value: $puppetdb::params::open_ssl_listen_port
ssl_protocols
Data type: Any
Specify the supported SSL protocols for PuppetDB (e.g. TLSv1, TLSv1.1, TLSv1.2.)
Default value: $puppetdb::params::ssl_protocols
postgresql_ssl_on
Data type: Any
If true
, it configures SSL connections between PuppetDB and the PostgreSQL database.
Defaults to false
.
Default value: $puppetdb::params::postgresql_ssl_on
postgresql_ssl_folder
Data type: Any
Path to the Postgresql SSL folder.
Default value: $puppetdb::params::postgresql_ssl_folder
postgresql_ssl_cert_path
Data type: Any
Path to the Postgresql SSL certificate.
Default value: $puppetdb::params::postgresql_ssl_cert_path
postgresql_ssl_key_path
Data type: Any
Path to the Postgresql SSL key.
Default value: $puppetdb::params::postgresql_ssl_key_path
postgresql_ssl_ca_cert_path
Data type: Any
Path to the Postgresql SSL CA.
Default value: $puppetdb::params::postgresql_ssl_ca_cert_path
cipher_suites
Data type: Any
Configure jetty's supported cipher-suites
(e.g. SSL_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
).
Defaults to undef
.
Default value: $puppetdb::params::cipher_suites
migrate
Data type: Any
If true
, puppetdb will automatically migrate to the latest database format at startup. If false
, if the database format supplied by this version of PuppetDB doesn't match the version expected (whether newer or older), PuppetDB will exit with an error status. Defaults to true
.
Default value: $puppetdb::params::migrate
manage_dbserver
Data type: Any
If true, the PostgreSQL server will be managed by this module. Defaults to true
.
Default value: $puppetdb::params::manage_dbserver
manage_database
Data type: Any
If true, the PostgreSQL database will be managed by this module. Defaults to true
.
Default value: $puppetdb::params::manage_database
manage_package_repo
Data type: Any
If true
, the official postgresql.org repo will be added and postgres won't
be installed from the regular repository. Defaults to true
.
Default value: $puppetdb::params::manage_pg_repo
postgres_version
Data type: Any
If the postgresql.org repo is installed, you can install several versions of
postgres. Defaults to 11
with PuppetDB version 7.0.0 or newer, and 9.6
in older versions.
Default value: $puppetdb::params::postgres_version
database_host
Data type: Any
Hostname to use for the database connection. For single case installations this
should be left as the default. Defaults to localhost
.
Default value: $puppetdb::params::database_host
database_port
Data type: Any
The port that the database server listens on. Defaults to 5432
.
Default value: $puppetdb::params::database_port
database_username
Data type: Any
The name of the database user to connect as. Defaults to puppetdb
.
Default value: $puppetdb::params::database_username
database_password
Data type: Any
The password for the database user. Defaults to puppetdb
.
Default value: $puppetdb::params::database_password
manage_db_password
Data type: Any
Whether or not the database password in database.ini will be managed by this module.
Set this to false
if you want to set the password some other way.
Defaults to true
Default value: $puppetdb::params::manage_db_password
database_name
Data type: Any
The name of the database instance to connect to. Defaults to puppetdb
.
Default value: $puppetdb::params::database_name
jdbc_ssl_properties
Data type: Any
The text to append to the JDBC connection URI. This should begin with a '?'
character. For example, to use SSL for the PostgreSQL connection, set this
parameter's value to ?ssl=true
.
Default value: $puppetdb::params::jdbc_ssl_properties
database_listen_address
Data type: Any
A comma-separated list of hostnames or IP addresses on which the postgres
server should listen for incoming connections. This defaults to localhost
.
This parameter maps directly to PostgreSQL's listen_addresses
config option. Use a *
to allow connections on any accessible address.
Default value: $puppetdb::params::postgres_listen_addresses
database_validate
Data type: Any
If true, the module will attempt to connect to the database using the specified
settings and fail if it is not able to do so. Defaults to true
.
Default value: $puppetdb::params::database_validate
node_ttl
Data type: Any
The length of time a node can go without receiving any new data before it's automatically deactivated. (defaults to '7d', which is a 7-day period. Set to '0d' to disable auto-deactivation). This option is supported in PuppetDB >= 1.1.0.
Default value: $puppetdb::params::node_ttl
node_purge_ttl
Data type: Any
The length of time a node can be deactivated before it's deleted from the database. (defaults to '14d', which is a 14-day period. Set to '0d' to disable purging). This option is supported in PuppetDB >= 1.2.0.
Default value: $puppetdb::params::node_purge_ttl
report_ttl
Data type: Any
The length of time reports should be stored before being deleted. (defaults to
14d
, which is a 14-day period). This option is supported in PuppetDB >= 1.1.0.
Default value: $puppetdb::params::report_ttl
facts_blacklist
Data type: Optional[Array]
A list of fact names to be ignored whenever submitted.
Default value: $puppetdb::params::facts_blacklist
gc_interval
Data type: Any
This controls how often (in minutes) to compact the database. The compaction process reclaims space and deletes unnecessary rows. If not supplied, the default is every 60 minutes. This option is supported in PuppetDB >= 0.9.
Default value: $puppetdb::params::gc_interval
node_purge_gc_batch_limit
Data type: Any
Nodes will be purged in batches of this size, one batch per gc-interval.
Default value: $puppetdb::params::node_purge_gc_batch_limit
conn_max_age
Data type: Any
The maximum time (in minutes) for a pooled connection to remain unused before it is closed off.
If not supplied, we default to 60
minutes. This option is supported in PuppetDB >= 1.1.
Default value: $puppetdb::params::conn_max_age
conn_lifetime
Data type: Any
The maximum time (in minutes) a pooled connection should remain open. Any connections older than this setting will be closed off. Connections currently in use will not be affected until they are returned to the pool.
If not supplied, we won't terminate connections based on their age alone. This option is supported in PuppetDB >= 1.4.
Default value: $puppetdb::params::conn_lifetime
puppetdb_package
Data type: Any
The PuppetDB package name in the package manager. Defaults to present
.
Default value: $puppetdb::params::puppetdb_package
puppetdb_service
Data type: Any
The name of the PuppetDB service. Defaults to puppetdb
.
Default value: $puppetdb::params::puppetdb_service
puppetdb_service_status
Data type: Any
Sets whether the service should be running
or stopped
. When set to stopped
the
service doesn't start on boot either. Valid values are true
, running
,
false
, and stopped
.
Default value: $puppetdb::params::puppetdb_service_status
puppetdb_user
Data type: Any
Puppetdb service user
Default value: $puppetdb::params::puppetdb_user
puppetdb_group
Data type: Any
Puppetdb service group
Default value: $puppetdb::params::puppetdb_group
puppetdb_server
Data type: Any
Puppetdb server hostname or IP address.
Default value: $puppetdb::params::puppetdb_server
confdir
Data type: Any
The PuppetDB configuration directory. Defaults to /etc/puppetdb/conf.d
.
Default value: $puppetdb::params::confdir
vardir
Data type: Any
The parent directory for the MQ's data directory.
Default value: $puppetdb::params::vardir
java_args
Data type: Any
Java VM options used for overriding default Java VM options specified in
PuppetDB package. Defaults to {}
. See
PuppetDB Configuration
to get more details about the current defaults.
For example, to set -Xmx512m -Xms256m
options use:
{
'-Xmx' => '512m',
'-Xms' => '256m',
}
Default value: $puppetdb::params::java_args
merge_default_java_args
Data type: Any
Sets whether the provided java args should be merged with the defaults, or
should override the defaults. This setting is necessary if any of the defaults
are to be removed. Defaults to true. If false
, the java_args
in the PuppetDB
init config file will reflect only what is passed via the java_args
param.
Default value: $puppetdb::params::merge_default_java_args
max_threads
Data type: Any
Jetty option to explicitly set max-threads
. Defaults to undef
, so the
PuppetDB-Jetty default is used.
Default value: $puppetdb::params::max_threads
read_database_host
Data type: Any
This parameter must be set to use another PuppetDB instance for queries.
The hostname or IP address of the read database server. If set to undef
, and
manage_database
is set to true
, it will use the value of the database_host
parameter. This option is supported in PuppetDB >= 1.6.
Default value: $puppetdb::params::read_database_host
read_database_port
Data type: Any
The port that the read database server listens on. If read_database_host
is set to undef
, and manage_database
is set to true
, it will use the value of
the database_port
parameter. This option is supported in PuppetDB >= 1.6.
Default value: $puppetdb::params::read_database_port
read_database_username
Data type: Any
The name of the read database user to connect as. Defaults to puppetdb-read
. This
option is supported in PuppetDB >= 1.6.
Default value: $puppetdb::params::read_database_username
read_database_password
Data type: Any
The password for the read database user. Defaults to puppetdb-read
. This option is
supported in PuppetDB >= 1.6.
Default value: $puppetdb::params::read_database_password
manage_read_db_password
Data type: Any
Whether or not the database password in read-database.ini will be managed by this module.
Set this to false
if you want to set the password some other way.
Defaults to true
Default value: $puppetdb::params::manage_read_db_password
read_database_jdbc_ssl_properties
Data type: Any
The text to append to the JDBC connection URI. This should begin with a '?'
character. For example, to use SSL for the PostgreSQL connection, set this
parameter's value to ?ssl=true
.
Default value: $puppetdb::params::read_database_jdbc_ssl_properties
read_database_validate
Data type: Any
If true, the module will attempt to connect to the database using the specified
settings and fail if it is not able to do so. Defaults to true
.
Default value: $puppetdb::params::read_database_validate
read_database_name
Data type: Any
The name of the read database instance to connect to. If read_database_host
is set to undef
, and manage_database
is set to true
, it will use the value of
the database_name
parameter. This option is supported in PuppetDB >= 1.6.
Default value: $puppetdb::params::read_database_name
read_conn_max_age
Data type: Any
The maximum time (in minutes) for a pooled read database connection to remain unused before it is closed off.
If not supplied, we default to 60 minutes. This option is supported in PuppetDB >= 1.6.
Default value: $puppetdb::params::read_conn_max_age
read_conn_lifetime
Data type: Any
The maximum time (in minutes) a pooled read database connection should remain open. Any connections older than this setting will be closed off. Connections currently in use will not be affected until they are returned to the pool.
If not supplied, we won't terminate connections based on their age alone. This option is supported in PuppetDB >= 1.6.
Default value: $puppetdb::params::read_conn_lifetime
ssl_dir
Data type: Any
Base directory for PuppetDB SSL configuration. Defaults to /etc/puppetdb/ssl
or /etc/puppetlabs/puppetdb/ssl
for FOSS and PE respectively.
Default value: $puppetdb::params::ssl_dir
ssl_set_cert_paths
Data type: Any
A switch to enable or disable the management of SSL certificates in your
jetty.ini
configuration file.
Default value: $puppetdb::params::ssl_set_cert_paths
ssl_cert_path
Data type: Any
Path to your SSL certificate for populating jetty.ini
.
Default value: $puppetdb::params::ssl_cert_path
ssl_key_pk8_path
Data type: Any
Path to the SSL pk8 key for populating jetty.ini
, will be generated from
the SSL key as needed automatically.
Default value: $puppetdb::params::ssl_key_pk8_path
ssl_key_path
Data type: Any
Path to your SSL key for populating jetty.ini
.
Default value: $puppetdb::params::ssl_key_path
ssl_ca_cert_path
Data type: Any
Path to your SSL CA for populating jetty.ini
.
Default value: $puppetdb::params::ssl_ca_cert_path
ssl_deploy_certs
Data type: Any
A boolean switch to enable or disable the management of SSL keys in your
ssl_dir
. Default is false
.
Default value: $puppetdb::params::ssl_deploy_certs
ssl_key
Data type: Any
Contents of your SSL key, as a string.
Default value: $puppetdb::params::ssl_key
ssl_cert
Data type: Any
Contents of your SSL certificate, as a string.
Default value: $puppetdb::params::ssl_cert
ssl_ca_cert
Data type: Any
Contents of your SSL CA certificate, as a string.
Default value: $puppetdb::params::ssl_ca_cert
manage_firewall
Data type: Any
If true
, puppet will manage your iptables rules for PuppetDB via the
puppetlabs-firewall class.
Default value: $puppetdb::params::manage_firewall
command_threads
Data type: Any
The number of command processing threads to use. Defaults to undef
, using the
PuppetDB built-in default.
Default value: $puppetdb::params::command_threads
concurrent_writes
Data type: Any
The number of threads allowed to write to disk at any one time. Defaults to
undef
, which uses the PuppetDB built-in default.
Default value: $puppetdb::params::concurrent_writes
store_usage
Data type: Any
The amount of disk space (in MB) to allow for persistent message storage.
Defaults to undef
, using the PuppetDB built-in default.
Default value: $puppetdb::params::store_usage
temp_usage
Data type: Any
The amount of disk space (in MB) to allow for temporary message storage.
Defaults to undef
, using the PuppetDB built-in default.
Default value: $puppetdb::params::temp_usage
disable_update_checking
Data type: Any
Setting this to true disables checking for updated versions of PuppetDB and sending basic analytics data to Puppet.
Defaults to undef
, using the PuppetDB built-in default.
Default value: $puppetdb::params::disable_update_checking
certificate_whitelist_file
Data type: Any
The name of the certificate whitelist file to set up and configure in PuppetDB. Defaults to /etc/puppetdb/certificate-whitelist
or /etc/puppetlabs/puppetdb/certificate-whitelist
for FOSS and PE respectively.
Default value: $puppetdb::params::certificate_whitelist_file
certificate_whitelist
Data type: Any
Array of the X.509 certificate Common Names of clients allowed to connect to PuppetDB. Defaults to empty. Be aware that this permits full access to all Puppet clients to download anything contained in PuppetDB, including the full catalogs of all nodes, which possibly contain sensitive information. Set to [ $::servername ]
to allow access only from your (single) Puppet master, which is enough for normal operation. Set to a list of Puppet masters if you have multiple.
Default value: $puppetdb::params::certificate_whitelist
database_max_pool_size
Data type: Any
When the pool reaches this size, and no idle connections are available, attempts to get a connection will wait for connection-timeout milliseconds before timing out. Note that PuppetDB will use one pool for writes and another for reads, so the total number of connections used will be twice this setting.
Default value: $puppetdb::params::database_max_pool_size
read_database_max_pool_size
Data type: Any
When the pool reaches this size, and no idle connections are available, attempts to get a connection will wait for connection-timeout milliseconds before timing out. Note that PuppetDB will use one pool for writes and another for reads, so the total number of connections used will be twice this setting.
Default value: $puppetdb::params::read_database_max_pool_size
automatic_dlo_cleanup
Data type: Boolean
PuppetDB creates Dead Letter Office. Those are reports of failed requests. They spill up the disk. This parameter is a boolean and defaults to false. You can enable automatic cleanup of DLO reports by setting this to true.
Default value: $puppetdb::params::automatic_dlo_cleanup
cleanup_timer_interval
Data type: String[1]
The DLO cleanup is a systemd timer if systemd is available, otherwise a
cronjob. The variable configures the systemd.timer option onCalender.
It defaults to *-*-* ${fqdn_rand(24)}:${fqdn_rand(60)}:00
. This will start
the cleanup service on a daily basis. The exact minute and hour is random
per node based on the fqdn_rand
method. On non-systemd systems, the cron runs daily and the $puppetdb_user
needs
to be able to run cron jobs. On systemd systems you need the camptocamp/systemd
module, which is an optional dependency and not automatically installed!
Default value: $puppetdb::params::cleanup_timer_interval
dlo_max_age
Data type: Integer[1]
This is a positive integer. It describes the amount of days you want to keep the DLO reports. The default value is 90 days.
Default value: $puppetdb::params::dlo_max_age
java_bin
Data type: Optional[Stdlib::Absolutepath]
java binary path for PuppetDB. If undef, default will be used.
Default value: $puppetdb::params::java_bin
postgresql_password_encryption
Data type: Postgresql::Pg_password_encryption
PostgreSQL password authentication method, either md5
or scram-sha-256
Default value: $puppetdb::params::password_encryption
puppetdb::database::postgresql
create the PuppetDB postgresql database
Parameters
The following parameters are available in the puppetdb::database::postgresql
class:
listen_addresses
puppetdb_server
database_name
database_username
database_password
database_port
manage_database
manage_server
manage_package_repo
postgres_version
postgresql_ssl_on
postgresql_ssl_cert_path
postgresql_ssl_key_path
postgresql_ssl_ca_cert_path
read_database_username
read_database_password
read_database_host
password_sensitive
password_encryption
listen_addresses
Data type: Any
The listen_address
is a comma-separated list of hostnames or IP addresses on
which the postgres server should listen for incoming connections. This defaults
to localhost
. This parameter maps directly to PostgreSQL's listen_addresses
config option. Use a *
to allow connections on any accessible address.
Default value: $puppetdb::params::database_host
puppetdb_server
Data type: Any
Hostname or IP address to configure for SSL rules.
Default value: $puppetdb::params::puppetdb_server
database_name
Data type: Any
Sets the name of the database. Defaults to puppetdb
.
Default value: $puppetdb::params::database_name
database_username
Data type: Any
Creates a user for access the database. Defaults to puppetdb
.
Default value: $puppetdb::params::database_username
database_password
Data type: Any
Sets the password for the database user above. Defaults to puppetdb
.
Default value: $puppetdb::params::database_password
database_port
Data type: Any
The port that the database server listens on. Defaults to 5432
.
Default value: $puppetdb::params::database_port
manage_database
Data type: Any
If true, the PostgreSQL database will be managed by this module. Defaults to true
.
Default value: $puppetdb::params::manage_database
manage_server
Data type: Any
Conditionally manages the PostgreSQL server via postgresql::server
. Defaults
to true
. If set to false
, this class will create the database and user via
postgresql::server::db
but not attempt to install or manage the server itself.
Default value: $puppetdb::params::manage_dbserver
manage_package_repo
Data type: Any
If true
, the official postgresql.org repo will be added and postgres won't
be installed from the regular repository. Defaults to true
.
Default value: $puppetdb::params::manage_pg_repo
postgres_version
Data type: Any
If the postgresql.org repo is installed, you can install several versions of
postgres. Defaults to 11
with PuppetDB version 7.0.0 or newer, and 9.6
in older versions.
Default value: $puppetdb::params::postgres_version
postgresql_ssl_on
Data type: Any
If true
, it configures SSL connections between PuppetDB and the PostgreSQL database.
Defaults to false
.
Default value: $puppetdb::params::postgresql_ssl_on
postgresql_ssl_cert_path
Data type: Any
Path to the Postgresql SSL certificate.
Default value: $puppetdb::params::postgresql_ssl_cert_path
postgresql_ssl_key_path
Data type: Any
Path to the Postgresql SSL key.
Default value: $puppetdb::params::postgresql_ssl_key_path
postgresql_ssl_ca_cert_path
Data type: Any
Path to the Postgresql SSL CA.
Default value: $puppetdb::params::postgresql_ssl_ca_cert_path
read_database_username
Data type: Any
The name of the read database user to connect as. Defaults to puppetdb-read
. This
option is supported in PuppetDB >= 1.6.
Default value: $puppetdb::params::read_database_username
read_database_password
Data type: Any
The password for the read database user. Defaults to puppetdb-read
. This option is
supported in PuppetDB >= 1.6.
Default value: $puppetdb::params::read_database_password
read_database_host
Data type: Any
This parameter must be set to use another PuppetDB instance for queries.
The hostname or IP address of the read database server. If set to undef
, and
manage_database
is set to true
, it will use the value of the database_host
parameter. This option is supported in PuppetDB >= 1.6.
Default value: $puppetdb::params::read_database_host
password_sensitive
Data type: Boolean
Whether password should be of Datatype Sensitive[String]
Default value: false
password_encryption
Data type: Postgresql::Pg_password_encryption
PostgreSQL password authentication method, either md5
or scram-sha-256
Default value: $puppetdb::params::password_encryption
puppetdb::globals
global configuration class for PuppetDB
Parameters
The following parameters are available in the puppetdb::globals
class:
version
Data type: Any
The version of the puppetdb
package that should be installed. You may specify
an explicit version number, 'present', or 'latest' (defaults to 'present').
Default value: 'present'
puppet_confdir
Data type: Stdlib::Absolutepath
Puppet's config directory. Defaults to /etc/puppetlabs/puppet
.
Default value: $settings::confdir
puppetdb::master::config
manage the puppet configuration on the primary
Parameters
The following parameters are available in the puppetdb::master::config
class:
puppetdb_server
puppetdb_port
puppetdb_disable_ssl
puppetdb_soft_write_failure
manage_routes
manage_storeconfigs
manage_report_processor
manage_config
create_puppet_service_resource
strict_validation
enable_reports
enable_storeconfigs
puppet_confdir
puppet_conf
masterless
terminus_package
puppet_service_name
puppetdb_startup_timeout
test_url
restart_puppet
puppetdb_server
Data type: Any
The dns name or ip of the PuppetDB server. Defaults to the hostname of the
current node, i.e. $::fqdn
.
Default value: fact('networking.fqdn')
puppetdb_port
Data type: Any
The port that the PuppetDB server is running on. Defaults to 8081
.
Default value:
defined(Class['puppetdb']) ? {
true => $puppetdb::disable_ssl ? {
true => 8080,
default => 8081,
},
default => 8081
puppetdb_disable_ssl
Data type: Any
If true, use plain HTTP to talk to PuppetDB. Defaults to the value of
disable_ssl
if PuppetDB is on the same server as the Puppet Master, or else
false. If you set this, you probably need to set puppetdb_port
to match the HTTP
port of the PuppetDB.
Default value:
defined(Class['puppetdb']) ? {
true => $puppetdb::disable_ssl,
default => false
puppetdb_soft_write_failure
Data type: Any
Boolean to fail in a soft manner if PuppetDB is not accessible for command
submission Defaults to false
.
Default value: false
manage_routes
Data type: Any
If true
, the module will overwrite the Puppet master's routes file to
configure it to use PuppetDB. Defaults to true
.
Default value: true
manage_storeconfigs
Data type: Any
If true
, the module will manage the Puppet master's storeconfig settings.
Defaults to true
.
Default value: true
manage_report_processor
Data type: Any
If true
, the module will manage the 'reports' field in the puppet.conf file to
enable or disable the PuppetDB report processor. Defaults to false
.
Default value: false
manage_config
Data type: Any
If true
, the module will store values from puppetdb_server
and puppetdb_port
parameters in the PuppetDB configuration file. If false
, an existing PuppetDB
configuration file will be used to retrieve server and port values.
Default value: true
create_puppet_service_resource
Data type: Any
If true
, AND if restart_puppet
is true, then the module will create a service
resource for puppet_service_name
if it has not been defined. Defaults to true
.
If you are already declaring the puppet_service_name
service resource in another
part of your code, setting this to false
will avoid creation of that service
resource by this module, avoiding potential duplicate resource errors.
Default value: true
strict_validation
Data type: Any
If true
, the module will fail if PuppetDB is not reachable, otherwise it will
preconfigure PuppetDB without checking.
Default value: true
enable_reports
Data type: Any
Ignored unless manage_report_processor
is true
, in which case this setting
will determine whether or not the PuppetDB report processor is enabled (true
)
or disabled (false
) in the puppet.conf file.
Default value: false
enable_storeconfigs
Data type: Any
Ignored unless manage_storeconfigs
is true
, in which case this setting
will determine whether or not client configuration storage is enabled (true
)
or disabled (false
) in the puppet.conf file.
Default value: true
puppet_confdir
Data type: Any
Puppet's config directory. Defaults to /etc/puppetlabs/puppet
.
Default value: $puppetdb::params::puppet_confdir
puppet_conf
Data type: Any
Puppet's config file. Defaults to ${puppet_confdir}/puppet.conf
.
Default value: $puppetdb::params::puppet_conf
masterless
Data type: Any
A boolean switch to enable or disable the masterless setup of PuppetDB. Defaults
to false
.
Default value: $puppetdb::params::masterless
terminus_package
Data type: Any
Name of the package to use that represents the PuppetDB terminus code. Defaults
to puppetdb-termini
, when puppetdb_version
is set to <= 2.3.x
the default
changes to puppetdb-terminus
.
Default value: $puppetdb::params::terminus_package
puppet_service_name
Data type: Any
Name of the service that represents Puppet. You can change this to apache2
or
httpd
depending on your operating system, if you plan on having Puppet run
using Apache/Passenger for example.
Default value: $puppetdb::params::puppet_service_name
puppetdb_startup_timeout
Data type: Any
The maximum amount of time that the module should wait for PuppetDB to start up. This is most important during the initial install of PuppetDB (defaults to 15 seconds).
Default value: $puppetdb::params::puppetdb_startup_timeout
test_url
Data type: Any
The URL to use for testing if the PuppetDB instance is running.
Default value: $puppetdb::params::test_url
restart_puppet
Data type: Any
If true
, the module will restart the Puppet master when PuppetDB configuration
files are changed by the module. Defaults to true
. If set to false
, you
must restart the service manually in order to pick up changes to the config
files (other than puppet.conf
).
Default value: true
puppetdb::server
manage the PuppetDB server
Parameters
The following parameters are available in the puppetdb::server
class:
listen_address
listen_port
disable_cleartext
open_listen_port
ssl_listen_address
ssl_listen_port
disable_ssl
open_ssl_listen_port
ssl_protocols
postgresql_ssl_on
cipher_suites
migrate
manage_database
database_host
database_port
database_username
database_password
manage_db_password
database_name
jdbc_ssl_properties
database_validate
node_ttl
node_purge_ttl
report_ttl
facts_blacklist
gc_interval
node_purge_gc_batch_limit
conn_max_age
conn_lifetime
puppetdb_package
puppetdb_service
puppetdb_service_status
puppetdb_user
puppetdb_group
confdir
vardir
java_args
merge_default_java_args
max_threads
read_database_host
read_database_port
read_database_username
read_database_password
manage_read_db_password
read_database_jdbc_ssl_properties
read_database_validate
read_database_name
read_conn_max_age
read_conn_lifetime
ssl_dir
ssl_set_cert_paths
ssl_cert_path
ssl_key_pk8_path
ssl_key_path
ssl_ca_cert_path
ssl_deploy_certs
ssl_key
ssl_cert
ssl_ca_cert
manage_firewall
command_threads
concurrent_writes
store_usage
temp_usage
disable_update_checking
certificate_whitelist_file
certificate_whitelist
database_max_pool_size
read_database_max_pool_size
automatic_dlo_cleanup
cleanup_timer_interval
dlo_max_age
java_bin
listen_address
Data type: Any
The address that the web server should bind to for HTTP requests. Defaults to
localhost
. Set to 0.0.0.0
to listen on all addresses.
Default value: $puppetdb::params::listen_address
listen_port
Data type: Any
The port on which the puppetdb web server should accept HTTP requests. Defaults
to 8080
.
Default value: $puppetdb::params::listen_port
disable_cleartext
Data type: Any
If true
, the puppetdb web server will only serve HTTPS and not HTTP requests (defaults to false).
Default value: $puppetdb::params::disable_cleartext
open_listen_port
Data type: Any
If true
, open the http_listen_port
on the firewall. Defaults to false
.
Default value: $puppetdb::params::open_listen_port
ssl_listen_address
Data type: Any
The address that the web server should bind to for HTTPS requests. Defaults to
0.0.0.0
to listen on all addresses.
Default value: $puppetdb::params::ssl_listen_address
ssl_listen_port
Data type: Any
The port on which the puppetdb web server should accept HTTPS requests. Defaults
to 8081
.
Default value: $puppetdb::params::ssl_listen_port
disable_ssl
Data type: Any
If true
, the puppetdb web server will only serve HTTP and not HTTPS requests.
Defaults to false
.
Default value: $puppetdb::params::disable_ssl
open_ssl_listen_port
Data type: Any
If true, open the ssl_listen_port
on the firewall. Defaults to undef
.
Default value: $puppetdb::params::open_ssl_listen_port
ssl_protocols
Data type: Any
Specify the supported SSL protocols for PuppetDB (e.g. TLSv1, TLSv1.1, TLSv1.2.)
Default value: $puppetdb::params::ssl_protocols
postgresql_ssl_on
Data type: Any
If true
, it configures SSL connections between PuppetDB and the PostgreSQL database.
Defaults to false
.
Default value: $puppetdb::params::postgresql_ssl_on
cipher_suites
Data type: Any
Configure jetty's supported cipher-suites
(e.g. SSL_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
).
Defaults to undef
.
Default value: $puppetdb::params::cipher_suites
migrate
Data type: Any
If true
, puppetdb will automatically migrate to the latest database format at startup. If false
, if the database format supplied by this version of PuppetDB doesn't match the version expected (whether newer or older), PuppetDB will exit with an error status. Defaults to true
.
Default value: $puppetdb::params::migrate
manage_database
Data type: Any
If true, the PostgreSQL database will be managed by this module. Defaults to true
.
Default value: $puppetdb::params::manage_database
database_host
Data type: Any
Hostname to use for the database connection. For single case installations this
should be left as the default. Defaults to localhost
.
Default value: $puppetdb::params::database_host
database_port
Data type: Any
The port that the database server listens on. Defaults to 5432
.
Default value: $puppetdb::params::database_port
database_username
Data type: Any
The name of the database user to connect as. Defaults to puppetdb
.
Default value: $puppetdb::params::database_username
database_password
Data type: Any
The password for the database user. Defaults to puppetdb
.
Default value: $puppetdb::params::database_password
manage_db_password
Data type: Any
Whether or not the database password in database.ini will be managed by this module.
Set this to false
if you want to set the password some other way.
Defaults to true
Default value: $puppetdb::params::manage_db_password
database_name
Data type: Any
The name of the database instance to connect to. Defaults to puppetdb
.
Default value: $puppetdb::params::database_name
jdbc_ssl_properties
Data type: Any
The text to append to the JDBC connection URI. This should begin with a '?'
character. For example, to use SSL for the PostgreSQL connection, set this
parameter's value to ?ssl=true
.
Default value: $puppetdb::params::jdbc_ssl_properties
database_validate
Data type: Any
If true, the module will attempt to connect to the database using the specified
settings and fail if it is not able to do so. Defaults to true
.
Default value: $puppetdb::params::database_validate
node_ttl
Data type: Any
The length of time a node can go without receiving any new data before it's automatically deactivated. (defaults to '7d', which is a 7-day period. Set to '0d' to disable auto-deactivation). This option is supported in PuppetDB >= 1.1.0.
Default value: $puppetdb::params::node_ttl
node_purge_ttl
Data type: Any
The length of time a node can be deactivated before it's deleted from the database. (defaults to '14d', which is a 14-day period. Set to '0d' to disable purging). This option is supported in PuppetDB >= 1.2.0.
Default value: $puppetdb::params::node_purge_ttl
report_ttl
Data type: Any
The length of time reports should be stored before being deleted. (defaults to
14d
, which is a 14-day period). This option is supported in PuppetDB >= 1.1.0.
Default value: $puppetdb::params::report_ttl
facts_blacklist
Data type: Optional[Array]
A list of fact names to be ignored whenever submitted.
Default value: $puppetdb::params::facts_blacklist
gc_interval
Data type: Any
This controls how often (in minutes) to compact the database. The compaction process reclaims space and deletes unnecessary rows. If not supplied, the default is every 60 minutes. This option is supported in PuppetDB >= 0.9.
Default value: $puppetdb::params::gc_interval
node_purge_gc_batch_limit
Data type: Any
Nodes will be purged in batches of this size, one batch per gc-interval.
Default value: $puppetdb::params::node_purge_gc_batch_limit
conn_max_age
Data type: Any
The maximum time (in minutes) for a pooled connection to remain unused before it is closed off.
If not supplied, we default to 60
minutes. This option is supported in PuppetDB >= 1.1.
Default value: $puppetdb::params::conn_max_age
conn_lifetime
Data type: Any
The maximum time (in minutes) a pooled connection should remain open. Any connections older than this setting will be closed off. Connections currently in use will not be affected until they are returned to the pool.
If not supplied, we won't terminate connections based on their age alone. This option is supported in PuppetDB >= 1.4.
Default value: $puppetdb::params::conn_lifetime
puppetdb_package
Data type: Any
The PuppetDB package name in the package manager. Defaults to present
.
Default value: $puppetdb::params::puppetdb_package
puppetdb_service
Data type: Any
The name of the PuppetDB service. Defaults to puppetdb
.
Default value: $puppetdb::params::puppetdb_service
puppetdb_service_status
Data type: Any
Sets whether the service should be running
or stopped
. When set to stopped
the
service doesn't start on boot either. Valid values are true
, running
,
false
, and stopped
.
Default value: $puppetdb::params::puppetdb_service_status
puppetdb_user
Data type: Any
Puppetdb service user
Default value: $puppetdb::params::puppetdb_user
puppetdb_group
Data type: Any
Puppetdb service group
Default value: $puppetdb::params::puppetdb_group
confdir
Data type: Any
The PuppetDB configuration directory. Defaults to /etc/puppetdb/conf.d
.
Default value: $puppetdb::params::confdir
vardir
Data type: Any
The parent directory for the MQ's data directory.
Default value: $puppetdb::params::vardir
java_args
Data type: Any
Java VM options used for overriding default Java VM options specified in
PuppetDB package. Defaults to {}
. See
PuppetDB Configuration
to get more details about the current defaults.
For example, to set -Xmx512m -Xms256m
options use:
{
'-Xmx' => '512m',
'-Xms' => '256m',
}
Default value: $puppetdb::params::java_args
merge_default_java_args
Data type: Any
Sets whether the provided java args should be merged with the defaults, or
should override the defaults. This setting is necessary if any of the defaults
are to be removed. Defaults to true. If false
, the java_args
in the PuppetDB
init config file will reflect only what is passed via the java_args
param.
Default value: $puppetdb::params::merge_default_java_args
max_threads
Data type: Any
Jetty option to explicitly set max-threads
. Defaults to undef
, so the
PuppetDB-Jetty default is used.
Default value: $puppetdb::params::max_threads
read_database_host
Data type: Any
This parameter must be set to use another PuppetDB instance for queries.
The hostname or IP address of the read database server. If set to undef
, and
manage_database
is set to true
, it will use the value of the database_host
parameter. This option is supported in PuppetDB >= 1.6.
Default value: $puppetdb::params::read_database_host
read_database_port
Data type: Any
The port that the read database server listens on. If read_database_host
is set to undef
, and manage_database
is set to true
, it will use the value of
the database_port
parameter. This option is supported in PuppetDB >= 1.6.
Default value: $puppetdb::params::read_database_port
read_database_username
Data type: Any
The name of the read database user to connect as. Defaults to puppetdb-read
. This
option is supported in PuppetDB >= 1.6.
Default value: $puppetdb::params::read_database_username
read_database_password
Data type: Any
The password for the read database user. Defaults to puppetdb-read
. This option is
supported in PuppetDB >= 1.6.
Default value: $puppetdb::params::read_database_password
manage_read_db_password
Data type: Any
Whether or not the database password in read-database.ini will be managed by this module.
Set this to false
if you want to set the password some other way.
Defaults to true
Default value: $puppetdb::params::manage_read_db_password
read_database_jdbc_ssl_properties
Data type: Any
The text to append to the JDBC connection URI. This should begin with a '?'
character. For example, to use SSL for the PostgreSQL connection, set this
parameter's value to ?ssl=true
.
Default value: $puppetdb::params::read_database_jdbc_ssl_properties
read_database_validate
Data type: Any
If true, the module will attempt to connect to the database using the specified
settings and fail if it is not able to do so. Defaults to true
.
Default value: $puppetdb::params::read_database_validate
read_database_name
Data type: Any
The name of the read database instance to connect to. If read_database_host
is set to undef
, and manage_database
is set to true
, it will use the value of
the database_name
parameter. This option is supported in PuppetDB >= 1.6.
Default value: $puppetdb::params::read_database_name
read_conn_max_age
Data type: Any
The maximum time (in minutes) for a pooled read database connection to remain unused before it is closed off.
If not supplied, we default to 60 minutes. This option is supported in PuppetDB >= 1.6.
Default value: $puppetdb::params::read_conn_max_age
read_conn_lifetime
Data type: Any
The maximum time (in minutes) a pooled read database connection should remain open. Any connections older than this setting will be closed off. Connections currently in use will not be affected until they are returned to the pool.
If not supplied, we won't terminate connections based on their age alone. This option is supported in PuppetDB >= 1.6.
Default value: $puppetdb::params::read_conn_lifetime
ssl_dir
Data type: Stdlib::Absolutepath
Base directory for PuppetDB SSL configuration. Defaults to /etc/puppetdb/ssl
or /etc/puppetlabs/puppetdb/ssl
for FOSS and PE respectively.
Default value: $puppetdb::params::ssl_dir
ssl_set_cert_paths
Data type: Boolean
A switch to enable or disable the management of SSL certificates in your
jetty.ini
configuration file.
Default value: $puppetdb::params::ssl_set_cert_paths
ssl_cert_path
Data type: Stdlib::Absolutepath
Path to your SSL certificate for populating jetty.ini
.
Default value: $puppetdb::params::ssl_cert_path
ssl_key_pk8_path
Data type: Stdlib::Absolutepath
Path to the SSL pk8 key for populating jetty.ini
, will be generated from
the SSL key as needed automatically.
Default value: $puppetdb::params::ssl_key_pk8_path
ssl_key_path
Data type: Stdlib::Absolutepath
Path to your SSL key for populating jetty.ini
.
Default value: $puppetdb::params::ssl_key_path
ssl_ca_cert_path
Data type: Stdlib::Absolutepath
Path to your SSL CA for populating jetty.ini
.
Default value: $puppetdb::params::ssl_ca_cert_path
ssl_deploy_certs
Data type: Boolean
A boolean switch to enable or disable the management of SSL keys in your
ssl_dir
. Default is false
.
Default value: $puppetdb::params::ssl_deploy_certs
ssl_key
Data type: Any
Contents of your SSL key, as a string.
Default value: $puppetdb::params::ssl_key
ssl_cert
Data type: Any
Contents of your SSL certificate, as a string.
Default value: $puppetdb::params::ssl_cert
ssl_ca_cert
Data type: Any
Contents of your SSL CA certificate, as a string.
Default value: $puppetdb::params::ssl_ca_cert
manage_firewall
Data type: Any
If true
, puppet will manage your iptables rules for PuppetDB via the
puppetlabs-firewall class.
Default value: $puppetdb::params::manage_firewall
command_threads
Data type: Any
The number of command processing threads to use. Defaults to undef
, using the
PuppetDB built-in default.
Default value: $puppetdb::params::command_threads
concurrent_writes
Data type: Any
The number of threads allowed to write to disk at any one time. Defaults to
undef
, which uses the PuppetDB built-in default.
Default value: $puppetdb::params::concurrent_writes
store_usage
Data type: Any
The amount of disk space (in MB) to allow for persistent message storage.
Defaults to undef
, using the PuppetDB built-in default.
Default value: $puppetdb::params::store_usage
temp_usage
Data type: Any
The amount of disk space (in MB) to allow for temporary message storage.
Defaults to undef
, using the PuppetDB built-in default.
Default value: $puppetdb::params::temp_usage
disable_update_checking
Data type: Any
Setting this to true disables checking for updated versions of PuppetDB and sending basic analytics data to Puppet.
Defaults to undef
, using the PuppetDB built-in default.
Default value: $puppetdb::params::disable_update_checking
certificate_whitelist_file
Data type: Any
The name of the certificate whitelist file to set up and configure in PuppetDB. Defaults to /etc/puppetdb/certificate-whitelist
or /etc/puppetlabs/puppetdb/certificate-whitelist
for FOSS and PE respectively.
Default value: $puppetdb::params::certificate_whitelist_file
certificate_whitelist
Data type: Any
Array of the X.509 certificate Common Names of clients allowed to connect to PuppetDB. Defaults to empty. Be aware that this permits full access to all Puppet clients to download anything contained in PuppetDB, including the full catalogs of all nodes, which possibly contain sensitive information. Set to [ $::servername ]
to allow access only from your (single) Puppet master, which is enough for normal operation. Set to a list of Puppet masters if you have multiple.
Default value: $puppetdb::params::certificate_whitelist
database_max_pool_size
Data type: Any
When the pool reaches this size, and no idle connections are available, attempts to get a connection will wait for connection-timeout milliseconds before timing out. Note that PuppetDB will use one pool for writes and another for reads, so the total number of connections used will be twice this setting.
Default value: $puppetdb::params::database_max_pool_size
read_database_max_pool_size
Data type: Any
When the pool reaches this size, and no idle connections are available, attempts to get a connection will wait for connection-timeout milliseconds before timing out. Note that PuppetDB will use one pool for writes and another for reads, so the total number of connections used will be twice this setting.
Default value: $puppetdb::params::read_database_max_pool_size
automatic_dlo_cleanup
Data type: Boolean
PuppetDB creates Dead Letter Office. Those are reports of failed requests. They spill up the disk. This parameter is a boolean and defaults to false. You can enable automatic cleanup of DLO reports by setting this to true.
Default value: $puppetdb::params::automatic_dlo_cleanup
cleanup_timer_interval
Data type: String[1]
The DLO cleanup is a systemd timer if systemd is available, otherwise a
cronjob. The variable configures the systemd.timer option onCalender.
It defaults to *-*-* ${fqdn_rand(24)}:${fqdn_rand(60)}:00
. This will start
the cleanup service on a daily basis. The exact minute and hour is random
per node based on the fqdn_rand
method. On non-systemd systems, the cron runs daily and the $puppetdb_user
needs
to be able to run cron jobs. On systemd systems you need the camptocamp/systemd
module, which is an optional dependency and not automatically installed!
Default value: $puppetdb::params::cleanup_timer_interval
dlo_max_age
Data type: Integer[1]
This is a positive integer. It describes the amount of days you want to keep the DLO reports. The default value is 90 days.
Default value: $puppetdb::params::dlo_max_age
java_bin
Data type: Optional[Stdlib::Absolutepath]
java binary path for PuppetDB. If undef, default will be used.
Default value: $puppetdb::params::java_bin
Resource types
puppetdb_conn_validator
Verify that a connection can be successfully established between a node and the puppetdb server. Its primary use is as a precondition to prevent configuration changes from being applied if the puppetdb server cannot be reached, but it could potentially be used for other purposes such as monitoring.
Properties
The following properties are available in the puppetdb_conn_validator
type.
ensure
Valid values: present
, absent
The basic property that the resource should be in.
Default value: present
Parameters
The following parameters are available in the puppetdb_conn_validator
type.
name
namevar
An arbitrary name used as the identity of the resource.
provider
The specific backend to use for this puppetdb_conn_validator
resource. You will seldom need to specify this --- Puppet
will usually discover the appropriate provider for your platform.
puppetdb_port
The port that the puppetdb server should be listening on.
puppetdb_server
The DNS name or IP address of the server where puppetdb should be running.
test_url
URL to use for testing if the PuppetDB database is up
timeout
The max number of seconds that the validator should wait before giving up and deciding that puppetdb is not running; defaults to 15 seconds.
Default value: 15
use_ssl
Whether the connection will be attempted using https
Default value: true
Functions
puppetdb::create_subsetting_resource_hash
Type: Ruby 4.x API
The puppetdb::create_subsetting_resource_hash function.
puppetdb::create_subsetting_resource_hash(Hash $java_args, Any $params)
The puppetdb::create_subsetting_resource_hash function.
Returns: Any
java_args
Data type: Hash
params
Data type: Any
puppetdb::flatten_java_args
Type: Ruby 4.x API
The puppetdb::flatten_java_args function.
puppetdb::flatten_java_args(Optional[Hash] $java_args)
The puppetdb::flatten_java_args function.
Returns: String
java_args
Data type: Optional[Hash]
Data types
Puppetdb::Ttl
The Puppetdb::Ttl data type.
Alias of Pattern[/^\d+(d|h|m|s|ms)$/]
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
v8.1.0 - 2024-05-07
Added
- Add a
puppetdb_version
fact with PuppetDB version #404 (rwaffen) - Restrict configuration file permissions #343 (smortex)
- Hide passwords from output #320 (gfa)
Fixed
- set encoding when creating the DB #359 (elfranne)
- cron puppetdb-dlo-cleanup requires package #321 (glennaaldering)
v8.0.1 - 2024-05-02
Fixed
v8.0.0 - 2024-04-30
7.14.0 - 2023-10-09
Changed
- Drop EoL Debian 8/9 #347 (bastelfreak)
- Drop EoL CentOS 6 #346 (bastelfreak)
Added
- Relax dependency requirements #367 (smortex)
- Allow newer dependencies #364 (saz)
- Set owner of server config.ini to root #358 (ekohl)
Fixed
7.13.0 - 2023-04-19
Fixed
7.12.0 - 2022-12-13
7.11.0 - 2022-12-12
7.10.0 - 2021-12-16
Added
- (maint) Allow stdlib 8.0.0 #335 (smortex)
- (maint) Add support for Debian 11 #334 (smortex)
- (PDB-5052) Install PostgreSQL 11 for PDB > 7.0.0 #333 (oanatmaria)
Fixed
- Fix minimum version of puppetlabs/postgresql #332 (alexjfisher)
7.9.0 - 2021-06-24
Added
- (maint) Add read-only user. #330 (Filipovici-Andrei)
- allow current versions of inifile, firewall, stdlib #327 (kenyon)
7.8.0 - 2021-03-25
Added
- (SERVER-2500) Allow puppetlabs-postgresql 7.x #323 (Zak-Kent)
- (PDB-4764) Agent SSL certificates are used for communication with PostgreSQL #322 (Filipovici-Andrei)
7.7.1 - 2020-12-15
Fixed
7.7.0 - 2020-11-05
Added
- (PDB-4945) Default to json fact cache #312 (joshcooper)
- Add options to set the source of the ssl certs #258 (edestecd)
7.6.0 - 2020-09-02
Added
- Database migrate option #311 (csmithATsquiz)
7.5.0 - 2020-06-10
Added
- Allow custom JAVA_BIN path #307 (bastelfreak)
- (MODULES-10675) enable facts-blacklist parameter in database.ini #305 (maxadamo)
- Add node-purge-gc-batch-limit as configurable #303 (synical)
- (PDB-2578) Allow the database password to be unmanaged #301 (natemccurdy)
- Support CentOS 8, OracleLinux 8 and Debian 10 & support pl/inifile 4.x #300 (ekohl)
- Create enable_storeconfigs option for puppet::master::config #298 (gcoxmoz)
7.4.0 - 2019-08-06
7.3.0 - 2019-06-14
Added
7.2.0 - 2019-05-17
Added
7.1.0 - 2018-10-02
Added
7.0.1 - 2018-07-30
7.0.0 - 2018-07-26
Changed
Added
- Add support for DLO automatic cleanup #278 (bastelfreak)
Fixed
6.0.2 - 2017-11-06
Added
- (PDB-3654) bump version and ini file dep #274 (Zak-Kent)
- add explicit dependency db -> extension. #272 (pgassmann)
- (maint) bump inifile dependency #268 (eputnam)
6.0.1 - 2017-07-05
6.0.0 - 2017-07-05
Changed
Added
- (PDB-3587) Add puppetlabs-postgresql 5.x support and integrate rspec-puppetfacts #260 (dhollinger)
- Add disable-update-checking parameter #257 (baurmatt)
- (PDB-3318) Better defaults for node-ttl, node-purge-ttl #254 (mullr)
- enable the master service when it is not defined #253 (tampakrap)
- add option to customize cipher suites in jetty #247 (selyx)
- Add support for Ruby 2.3.1 #246 (ghoneycutt)
- (PDB-3060) Add concurrent-writes parameter. #244 (aperiodic)
- set mode 0644 for routes.yaml #238 (tampakrap)
- (PDB-2660) Restart Puppet master after enabling reporting #234 (ajroetker)
- Manage the pool size configuration parameters in database.ini #232 (kpaulisse)
- (PDB-2571) Ensure puppetdb.ini file has correct permissions #228 (kbarber)
- Update postgresql.pp with postgresql contrib package #225 (PascalBourdier)
Fixed
- Fix duplicate resource errors for puppet service due to parse order #250 (kpaulisse)
- FIX: Unbreak on OpenBSD #233 (buzzdeee)
- (PDB-2696) Remove the dependency cycle cause by typo #231 (ajroetker)
5.1.2 - 2016-03-14
5.1.1 - 2016-02-09
5.1.0 - 2016-02-09
Added
- Restrict access to the Puppet master by default #215 (michaelweiser)
- Add option to disable cleartext HTTP port #214 (michaelweiser)
- (PDB-1430) overwritable java_args #210 (wkalt)
- (PDB-1913) manage vardir #209 (wkalt)
- (PDB-1415) Add jdbc_ssl_properties parameter #206 (mullr)
Fixed
- MODULES-2488 Use dport instead of the now deprecated port parameter #205 (roman-mueller)
- Fix unmanaged postgresql database port #204 (earsdown)
5.0.0 - 2015-07-08
4.3.0 - 2015-06-26
Changed
- (PDB-1657) Manage Postgres repos by default #197 (ajroetker)
- (PDB-1035) Add default PuppetDB root context #181 (ajroetker)
Added
- (PDB-1455) Provide mechanism for modifying default HSQLDB path #185 (kbarber)
- Enable the module to manage entries in $confdir/config.ini #176 (buzzdeee)
Fixed
4.2.1 - 2015-04-08
4.2.0 - 2015-04-02
Added
- (PDB-1353) Use settings::confdir for puppet_confdir #172 (johnduarte)
- add FreeBSD support #171 (mmoll)
- Allow puppetdb to be configure for masterless conf #163 (Spredzy)
- add ability to manage postgres repo #162 (bastelfreak)
- Restart the service if certificates change #158 (dalen)
- Make database validation optional #157 (robinbowes)
- Show scheme (http/https) in puppetdb connection errors #155 (sathieu)
Fixed
- (bugfix) Use test_url in connection validator for puppetdb #169 (ajroetker)
- Fix separator in module name in metadata.json #164 (njm506)
- Remove unused parameters #161 (ekohl)
- add missing param manage_firewall #160 (bastelfreak)
4.1.0 - 2014-11-17
Added
- Allow only TLS - Fixes POODLE CVE-2014-3566 #150 (ghoneycutt)
Fixed
- Remove invisible unicode character to prevent "invalid byte sequence in ... #149 (stefanandres)
- Fix detection of a PE-based PuppetDB #146 (seanmil)
4.0.0 - 2014-09-16
Changed
Added
- OpenBSD support #136 (buzzdeee)
- Add read-database support #132 (tdevelioglu)
- Allow set manage_server in init class #131 (baurmatt)
- implement max_threads option for jetty #130 (stefanandres)
- Allow more flexible routes configuration #127 (dalen)
- Add strict_variables support when puppetdb is not on puppetmaster #126 (mcanevet)
- Use $is_pe for PE determination #122 (reidmv)
- Parameter to not manage postgresql server #121 (jantman)
- Adding option to disable management of the firewall #119 (nibalizer)
Fixed
- Fixed read-database parameters in class puppetdb #134 (tdevelioglu)
- Ensure db and db users created before validation #125 (rickerc)
- Fix is_pe declaration so it works without is_pe #123 (kbarber)
3.0.1 - 2014-02-11
Changed
Added
- Define parameter in puppetdb class to define postgres listen address #112 (adrianlzt)
- Concat update #101 (jhoblitt)
Fixed
- Fix puppetlabs#106 and one other bug when disable_ssl = true #107 (ebarrere)
- fix validation regular expressions #100 (ScottDuckworth)
3.0.0 - 2013-10-28
Added
- (GH-93) Switch to using puppetlabs-postgresql 3.x #94 (kbarber)
- (GH-91) Update to use rspec-system-puppet 2.x #92 (kbarber)
- Add soft_write_failure to puppetdb.conf #89 (ghoneycutt)
- Add switch to configure database SSL connection #80 (stdietrich)
2.0.0 - 2013-10-18
Added
- Enable service control for puppetdb #81 (ak0ska)
- add archlinux support #79 (aboe76)
- Make database_password an optional parameter #78 (nicklewis)
Fixed
1.5.1 - 2013-08-12
1.6.0 - 2013-08-09
Added
1.5.0 - 2013-07-18
Changed
Added
- Minor tweaks to make the module support SUSE #71 (cprice404)
- Allow puppetdb conn validation when ssl is disabled #68 (bodepd)
- Add support for enabling puppetdb report processor #64 (cprice404)
1.4.0 - 2013-05-28
Changed
- Use fqdn for ssl listen address instead of clientcert #63 (cprice404)
- Increase default report-ttl to 14d #60 (cprice404)
Added
- Add support for enabling puppetdb report processor #64 (cprice404)
- Separate DB instance and DB user creation #61 (dalen)
- Add option to disable SSL in Jetty #52 (christianberg)
- allows for 0 _ttl's without time signifier and enables tests #50 (ghoneycutt)
- Support for remote puppetdb #41 (fhrbek)
- Added support for Java VM options #37 (kbrezina)
1.2.1 - 2013-04-08
Added
1.2.0 - 2013-04-07
Added
1.1.5 - 2013-04-04
1.1.4 - 2013-01-17
1.1.3 - 2013-01-15
Added
- 17594 - PuppetDB - Add ability to set standard host listen address and open firewall to standard port #22 (dblessing)
1.1.2 - 2012-10-26
1.1.1 - 2012-10-26
1.1.0 - 2012-10-24
Added
- Fix embedded db setup in Puppet Enterprise #19 (reidmv)
- Make puppetdb startup timeout configurable #18 (cprice404)
- Add condition to detect PE installations and provide different parameters #15 (hunner)
- Add parameters to enable usage of enterprise versions of PuppetDB #11 (cprice404)
- Add a parameter for restarting puppet master #9 (cprice404)
1.0.3 - 2012-09-23
Added
1.0.2 - 2012-09-21
1.0.1 - 2012-09-20
Fixed
- Fix duplicate stanza in database_ini.pp #8 (cprice404)
- Bug/master/db ini wrong db name #6 (cprice404)
1.0 - 2012-09-19
Dependencies
- puppetlabs/inifile (>= 1.1.3 < 7.0.0)
- puppetlabs/postgresql (>= 10.0.0 < 11.0.0)
- puppetlabs/firewall (>= 7.0.0 < 9.0.0)
- puppetlabs/stdlib (>= 4.13.1 < 10.0.0)
Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.