2012-09-18 00:26:32 +02:00
# 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(
2012-11-13 21:38:38 +01:00
$ 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,
2013-04-09 00:39:04 +02:00
$d isable_ssl = $ puppetdb: : params: : disable_ssl,
2012-11-13 21:38:38 +01:00
$ open_ssl_listen_port = $ puppetdb: : params: : open_ssl_listen_port,
$da tabase = $ puppetdb: : params: : database,
$da tabase_port = $ puppetdb: : params: : database_port,
$da tabase_username = $ puppetdb: : params: : database_username,
$da tabase_password = $ puppetdb: : params: : database_password,
$da tabase_name = $ puppetdb: : params: : database_name,
2013-02-05 23:34:48 +01:00
$ node_ttl = $ puppetdb: : params: : node_ttl,
$ node_purge_ttl = $ puppetdb: : params: : node_purge_ttl,
$ report_ttl = $ puppetdb: : params: : report_ttl,
2013-08-07 16:32:19 +02:00
$ gc_interval = $ puppetdb: : params: : gc_interval,
$ log_slow_statements = $ puppetdb: : params: : log_slow_statements,
$c onn_max_age = $ puppetdb: : params: : conn_max_age,
$c onn_keep_alive = $ puppetdb: : params: : conn_keep_alive,
$c onn_lifetime = $ puppetdb: : params: : conn_lifetime,
2012-11-13 21:38:38 +01:00
$ puppetdb_package = $ puppetdb: : params: : puppetdb_package,
$ puppetdb_version = $ puppetdb: : params: : puppetdb_version,
$ puppetdb_service = $ puppetdb: : params: : puppetdb_service,
2013-09-02 11:30:31 +02:00
$ puppetdb_service_status = $ puppetdb: : params: : puppetdb_service_status,
2012-11-13 21:38:38 +01:00
$ open_postgres_port = $ puppetdb: : params: : open_postgres_port,
$ manage_redhat_firewall = $ puppetdb: : params: : manage_redhat_firewall,
2013-02-15 17:16:36 +01:00
$c onfdir = $ puppetdb: : params: : confdir,
$ java_args = {}
2012-09-18 00:26:32 +02:00
) inherits puppetdb: : params {
2013-04-08 23:49:18 +02:00
# 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" )
2013-09-02 11:30:31 +02:00
# Validate puppetdb_service_status
if ! ( $ puppetdb_service_status in [ 'true' , 'running' , 'false' , 'stopped' ] ) {
fail( "puppetdb_service_status valid values are 'true', 'running', 'false', and 'stopped'. You provided '${puppetdb_service_status}'" )
}
2013-01-17 02:52:11 +01:00
if ( $ manage_redhat_firewall ! = undef) {
2013-02-23 01:20:04 +01:00
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.':}
2012-11-13 21:38:38 +01:00
}
2012-09-20 23:46:26 +02:00
class { 'puppetdb::server' :
2013-09-02 11:30:31 +02:00
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 = > $d isable_ssl,
open_ssl_listen_port = > $ open_ssl_listen_port,
database = > $da tabase,
database_port = > $da tabase_port,
database_username = > $da tabase_username,
database_password = > $da tabase_password,
database_name = > $da tabase_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,
puppetdb_service_status = > $ puppetdb_service_status,
manage_redhat_firewall = > $ manage_redhat_firewall,
confdir = > $c onfdir,
java_args = > $ java_args,
2012-09-20 23:46:26 +02:00
}
if ( $da tabase = = 'postgres' ) {
class { 'puppetdb::database::postgresql' :
2012-11-13 21:38:38 +01:00
manage_redhat_firewall = > $ manage_redhat_firewall ? {
true = > $ manage_redhat_firewall,
2013-01-17 18:56:01 +01:00
false = > $ manage_redhat_firewall,
2013-01-17 02:52:11 +01:00
undef = > $ open_postgres_port,
2012-11-13 21:38:38 +01:00
} ,
2013-02-13 12:14:53 +01:00
listen_addresses = > $ puppetdb: : params: : postgres_listen_addresses,
database_name = > $da tabase_name,
database_username = > $da tabase_username,
database_password = > $da tabase_password,
2012-09-21 19:17:42 +02:00
before = > Class [ 'puppetdb::server' ]
2012-09-18 00:26:32 +02:00
}
2012-09-20 23:46:26 +02:00
}
2012-09-18 00:26:32 +02:00
}