9c41392312
This patch adds all the missing parameters now defined in the 1.4.0 release. This includes some new database parameters mainly, but also adds gc_interval to the `puppetdb` and `puppetdb::server` classes, as previously this wasn't configurable using this method. To avoid documentation duplication the Puppet headers have been removed in favour of documenting classes from the README.md. Until such times as the forge can turn Puppet docs into HTML automatically, this is just duplicate noise and prone to update slippage. The README.md is more authoritative in this area and is pubicly displayed on the forge project page so it should be used for now. Signed-off-by: Ken Barber <ken@bob.sh>
117 lines
5.3 KiB
Puppet
117 lines
5.3 KiB
Puppet
# This class provides a simple way to get a puppetdb instance up and running
|
|
# with minimal effort. It will install and configure all necessary packages,
|
|
# including the database server and instance.
|
|
#
|
|
# This class is intended as a high-level abstraction 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::*`. 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.
|
|
#
|
|
# In addition to this class, you'll need to configure your puppet master to use
|
|
# puppetdb. You can use the `puppetdb::master::config` class to accomplish this.
|
|
class puppetdb(
|
|
$listen_address = $puppetdb::params::listen_address,
|
|
$listen_port = $puppetdb::params::listen_port,
|
|
$open_listen_port = $puppetdb::params::open_listen_port,
|
|
$ssl_listen_address = $puppetdb::params::ssl_listen_address,
|
|
$ssl_listen_port = $puppetdb::params::ssl_listen_port,
|
|
$disable_ssl = $puppetdb::params::disable_ssl,
|
|
$open_ssl_listen_port = $puppetdb::params::open_ssl_listen_port,
|
|
$database = $puppetdb::params::database,
|
|
$database_port = $puppetdb::params::database_port,
|
|
$database_username = $puppetdb::params::database_username,
|
|
$database_password = $puppetdb::params::database_password,
|
|
$database_name = $puppetdb::params::database_name,
|
|
$node_ttl = $puppetdb::params::node_ttl,
|
|
$node_purge_ttl = $puppetdb::params::node_purge_ttl,
|
|
$report_ttl = $puppetdb::params::report_ttl,
|
|
$gc_interval = $puppetdb::params::gc_interval,
|
|
$log_slow_statements = $puppetdb::params::log_slow_statements,
|
|
$conn_max_age = $puppetdb::params::conn_max_age,
|
|
$conn_keep_alive = $puppetdb::params::conn_keep_alive,
|
|
$conn_lifetime = $puppetdb::params::conn_lifetime,
|
|
$puppetdb_package = $puppetdb::params::puppetdb_package,
|
|
$puppetdb_version = $puppetdb::params::puppetdb_version,
|
|
$puppetdb_service = $puppetdb::params::puppetdb_service,
|
|
$open_postgres_port = $puppetdb::params::open_postgres_port,
|
|
$manage_redhat_firewall = $puppetdb::params::manage_redhat_firewall,
|
|
$confdir = $puppetdb::params::confdir,
|
|
$java_args = {}
|
|
) inherits puppetdb::params {
|
|
|
|
# Apply necessary suffix if zero is specified.
|
|
if $node_ttl == '0' {
|
|
$node_ttl_real = '0s'
|
|
} else {
|
|
$node_ttl_real = downcase($node_ttl)
|
|
}
|
|
|
|
# Validate node_ttl
|
|
validate_re ($node_ttl_real, ['^(\d)+[s,m,d]$'], "node_ttl is <${node_ttl}> which does not match the regex validation")
|
|
|
|
# Apply necessary suffix if zero is specified.
|
|
if $node_purge_ttl == '0' {
|
|
$node_purge_ttl_real = '0s'
|
|
} else {
|
|
$node_purge_ttl_real = downcase($node_purge_ttl)
|
|
}
|
|
|
|
# Validate node_purge_ttl
|
|
validate_re ($node_purge_ttl_real, ['^(\d)+[s,m,d]$'], "node_purge_ttl is <${node_purge_ttl}> which does not match the regex validation")
|
|
|
|
# Apply necessary suffix if zero is specified.
|
|
if $report_ttl == '0' {
|
|
$report_ttl_real = '0s'
|
|
} else {
|
|
$report_ttl_real = downcase($report_ttl)
|
|
}
|
|
|
|
# Validate report_ttl
|
|
validate_re ($report_ttl_real, ['^(\d)+[s,m,d]$'], "report_ttl is <${report_ttl}> which does not match the regex validation")
|
|
|
|
if ($manage_redhat_firewall != undef) {
|
|
notify {'Deprecation notice: `$manage_redhat_firewall` has been deprecated in `puppetdb` class and will be removed in a future version. Use $open_ssl_listen_port and $open_postgres_port instead.':}
|
|
}
|
|
|
|
class { 'puppetdb::server':
|
|
listen_address => $listen_address,
|
|
listen_port => $listen_port,
|
|
open_listen_port => $open_listen_port,
|
|
ssl_listen_address => $ssl_listen_address,
|
|
ssl_listen_port => $ssl_listen_port,
|
|
disable_ssl => $disable_ssl,
|
|
open_ssl_listen_port => $open_ssl_listen_port,
|
|
database => $database,
|
|
database_port => $database_port,
|
|
database_username => $database_username,
|
|
database_password => $database_password,
|
|
database_name => $database_name,
|
|
node_ttl => $node_ttl,
|
|
node_purge_ttl => $node_purge_ttl,
|
|
report_ttl => $report_ttl,
|
|
gc_interval => $gc_interval,
|
|
puppetdb_package => $puppetdb_package,
|
|
puppetdb_version => $puppetdb_version,
|
|
puppetdb_service => $puppetdb_service,
|
|
manage_redhat_firewall => $manage_redhat_firewall,
|
|
confdir => $confdir,
|
|
java_args => $java_args,
|
|
}
|
|
|
|
if ($database == 'postgres') {
|
|
class { 'puppetdb::database::postgresql':
|
|
manage_redhat_firewall => $manage_redhat_firewall ? {
|
|
true => $manage_redhat_firewall,
|
|
false => $manage_redhat_firewall,
|
|
undef => $open_postgres_port,
|
|
},
|
|
listen_addresses => $puppetdb::params::postgres_listen_addresses,
|
|
database_name => $database_name,
|
|
database_username => $database_username,
|
|
database_password => $database_password,
|
|
before => Class['puppetdb::server']
|
|
}
|
|
}
|
|
}
|