diff --git a/.vscode/settings.json b/.vscode/settings.json
index a8cccd4..16259cd 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -48,6 +48,7 @@
"tablespace",
"tablespaces",
"tidscan",
+ "timescaledb",
"timezonesets",
"trgm",
"usename",
diff --git a/doc/_index.html b/doc/_index.html
index 1f9f481..db9fc5c 100644
--- a/doc/_index.html
+++ b/doc/_index.html
@@ -73,6 +73,21 @@
+
diff --git a/doc/puppet_classes/postgresql_cd_3A_3Aexporter_3A_3Adirs.html b/doc/puppet_classes/postgresql_cd_3A_3Aexporter_3A_3Adirs.html
new file mode 100644
index 0000000..7b73a71
--- /dev/null
+++ b/doc/puppet_classes/postgresql_cd_3A_3Aexporter_3A_3Adirs.html
@@ -0,0 +1,152 @@
+
+
+
+
+
+
+ Puppet Class: postgresql_cd::exporter::dirs
+
+ — Documentation by YARD 0.9.36
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Puppet Class: postgresql_cd::exporter::dirs
+
+
+
Summary
+ Class manages the postgresql exporter dirs
+
+
Overview
+
+
+
+
postgresql_cd::exporter::dirs.pp Module name: postgresql_cd Author: Arne Teuke (arne_teuke@confdroid.com)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+ |
+
+ # File 'manifests/exporter/dirs.pp', line 6
+
+class postgresql_cd::exporter::dirs (
+
+) inherits postgresql_cd::params {
+ if ($fqdn == $pl_server_fqdn) and ($pl_use_exporter == true) {
+ file { $pl_install_dir:
+ ensure => directory,
+ owner => 'postgres',
+ group => 'postgres',
+ mode => '0755',
+ selrange => s0,
+ selrole => object_r,
+ seltype => usr_t,
+ seluser => system_u,
+ }
+ }
+}
+ |
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/puppet_classes/postgresql_cd_3A_3Aexporter_3A_3Afiles.html b/doc/puppet_classes/postgresql_cd_3A_3Aexporter_3A_3Afiles.html
new file mode 100644
index 0000000..5be9842
--- /dev/null
+++ b/doc/puppet_classes/postgresql_cd_3A_3Aexporter_3A_3Afiles.html
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+ Puppet Class: postgresql_cd::exporter::files
+
+ — Documentation by YARD 0.9.36
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Puppet Class: postgresql_cd::exporter::files
+
+
+
Summary
+ Class manages the postgresql exporter files
+
+
Overview
+
+
+
+
postgresql_cd::exporter::files.pp Module name: postgresql_cd Author: Arne Teuke (arne_teuke@confdroid.com)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+6
+7
+8
+9
+10
+11
+12
+ |
+
+ # File 'manifests/exporter/files.pp', line 6
+
+class postgresql_cd::exporter::files (
+
+) inherits postgresql_cd::params {
+ if ($fqdn == $pl_server_fqdn) and ($pl_use_exporter == true) {
+ require postgresql_cd::exporter::dirs
+ }
+}
+ |
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/puppet_classes/postgresql_cd_3A_3Aexporter_3A_3Aservice.html b/doc/puppet_classes/postgresql_cd_3A_3Aexporter_3A_3Aservice.html
new file mode 100644
index 0000000..2812c7d
--- /dev/null
+++ b/doc/puppet_classes/postgresql_cd_3A_3Aexporter_3A_3Aservice.html
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+ Puppet Class: postgresql_cd::exporter::service
+
+ — Documentation by YARD 0.9.36
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Puppet Class: postgresql_cd::exporter::service
+
+
+
Summary
+ Class manages the postgresql exporter service
+
+
Overview
+
+
+
+
postgresql_cd::exporter::service.pp Module name: postgresql_cd Author: Arne Teuke (arne_teuke@confdroid.com)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+ |
+
+ # File 'manifests/exporter/service.pp', line 6
+
+class postgresql_cd::exporter::service (
+
+) inherits postgresql_cd::params {
+ if ($fqdn == $pl_server_fqdn) and ($pl_use_exporter == true) {
+ require postgresql_cd::exporter::files
+
+# service { $pl_exporter_service:
+# ensure => running,
+# hasstatus => true,
+# hasrestart => true,
+# enable => true,
+# }
+ }
+}
+ |
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/puppet_classes/postgresql_cd_3A_3Amain_3A_3Aconfig.html b/doc/puppet_classes/postgresql_cd_3A_3Amain_3A_3Aconfig.html
index 7f0955f..b59f5c2 100644
--- a/doc/puppet_classes/postgresql_cd_3A_3Amain_3A_3Aconfig.html
+++ b/doc/puppet_classes/postgresql_cd_3A_3Amain_3A_3Aconfig.html
@@ -109,7 +109,10 @@
11
12
13
-14
+14
+15
+16
+17
# File 'manifests/main/config.pp', line 6
@@ -121,6 +124,9 @@ class postgresql_cd::main::config (
if $fqdn == $pl_server_fqdn {
include postgresql_cd::server::service
+# if $pl_use_exporter == true {
+# include postgresql_cd::exporter::service
+# }
}
}
|
diff --git a/doc/puppet_classes/postgresql_cd_3A_3Amain_3A_3Ainstall.html b/doc/puppet_classes/postgresql_cd_3A_3Amain_3A_3Ainstall.html
index bf4d9b1..15d0269 100644
--- a/doc/puppet_classes/postgresql_cd_3A_3Amain_3A_3Ainstall.html
+++ b/doc/puppet_classes/postgresql_cd_3A_3Amain_3A_3Ainstall.html
@@ -118,7 +118,12 @@
20
21
22
-23
+23
+24
+25
+26
+27
+28
# File 'manifests/main/install.pp', line 6
@@ -133,6 +138,11 @@ class postgresql_cd::main::install (
package { $reqpackages_client:
ensure => $pkg_ensure,
}
+ if $pl_manage_extensions == true {
+ package { $reqpackages_extensions:
+ ensure => $pkg_ensure,
+ }
+ }
}
if $fqdn != $pl_server_fqdn {
diff --git a/doc/puppet_classes/postgresql_cd_3A_3Aparams.html b/doc/puppet_classes/postgresql_cd_3A_3Aparams.html
index 88756e7..da24fd0 100644
--- a/doc/puppet_classes/postgresql_cd_3A_3Aparams.html
+++ b/doc/puppet_classes/postgresql_cd_3A_3Aparams.html
@@ -75,10 +75,16 @@
postgresql_cd::main::install
+ postgresql_cd::exporter::dirs
+
postgresql_cd::server::initdb
+ postgresql_cd::exporter::files
+
postgresql_cd::server::service
+ postgresql_cd::exporter::service
+
postgresql_cd::firewall::iptables
postgresql_cd::server::pghba::pg_hba
@@ -148,6 +154,24 @@
+
+
+ reqpackages_extensions
+
+
+ (Array)
+
+
+ (defaults to: ['pg_stat_statements','timescaledb'])
+
+
+ —
+
+ the packages for extensions
+
+
+
+
reqpackages_client
@@ -396,6 +420,60 @@
—
whether to manage roles and databases
+
+
+
+
+
+
+ pl_manage_extensions
+
+
+ (Boolean)
+
+
+ (defaults to: false)
+
+
+ —
+
+ whether to manage extensions
+
+
+
+
+
+
+ pl_use_exporter
+
+
+ (Boolean)
+
+
+ (defaults to: false)
+
+
+ —
+
+ whether to use the postgresql-exporter
+
+
+
+
+
+
+ pl_install_dir
+
+
+ (String)
+
+
+ (defaults to: '/opt/postgres-exporter')
+
+
+ —
+
+ the path for the postgres-exporter files
@@ -411,10 +489,6 @@
-24
-25
-26
-27
28
29
30
@@ -455,10 +529,21 @@
65
66
67
-68
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
|
- # File 'manifests/params.pp', line 24
+ # File 'manifests/params.pp', line 28
class postgresql_cd::params (
@@ -466,6 +551,7 @@ class postgresql_cd::params (
# installation
Array $reqpackages_server = ['postgresql-server','postgresql-contrib'],
+ Array $reqpackages_extensions = ['pg_stat_statements','timescaledb'],
String $reqpackages_client = 'postgresql',
String $pkg_ensure = 'latest',
@@ -484,6 +570,11 @@ class postgresql_cd::params (
String $pl_server_key = 'server.key',
String $pl_ca_crt = 'root.crt',
Boolean $pl_manage_content = true,
+ Boolean $pl_manage_extensions = false,
+
+ # postgresql exporter
+ Boolean $pl_use_exporter = false,
+ String $pl_install_dir = '/opt/postgres-exporter',
) {
$fqdn = $facts['networking']['fqdn']
@@ -491,9 +582,6 @@ class postgresql_cd::params (
$os_name = $facts['os']['name']
$os_release = $facts['os']['release']['major']
- # Service
- $pl_service = 'postgresql'
-
# Directories
$pl_data_dir = '/var/lib/pgsql/data/'
@@ -502,6 +590,10 @@ class postgresql_cd::params (
$pl_pg_hba_rule_conf = 'postgresql_cd/server/pghba/pg_hba_rule.conf.erb'
$pl_pg_hba_conf_erb = 'postgresql_cd/server/pghba/pg_hba.conf.erb'
+ # Service
+ $pl_service = 'postgresql'
+ $pl_exporter_service = 'postgres_exporter'
+
# includes must be last
include postgresql_cd::main::config
}
diff --git a/files/postgres_exporter b/files/postgres_exporter
new file mode 100755
index 0000000..f5ffc98
Binary files /dev/null and b/files/postgres_exporter differ
diff --git a/manifests/exporter/dirs.pp b/manifests/exporter/dirs.pp
new file mode 100644
index 0000000..15998ab
--- /dev/null
+++ b/manifests/exporter/dirs.pp
@@ -0,0 +1,21 @@
+## postgresql_cd::exporter::dirs.pp
+# Module name: postgresql_cd
+# Author: Arne Teuke (arne_teuke@confdroid.com)
+# @summary Class manages the postgresql exporter dirs
+###############################################################################
+class postgresql_cd::exporter::dirs (
+
+) inherits postgresql_cd::params {
+ if ($fqdn == $pl_server_fqdn) and ($pl_use_exporter == true) {
+ file { $pl_install_dir:
+ ensure => directory,
+ owner => 'postgres',
+ group => 'postgres',
+ mode => '0755',
+ selrange => s0,
+ selrole => object_r,
+ seltype => usr_t,
+ seluser => system_u,
+ }
+ }
+}
diff --git a/manifests/exporter/files.pp b/manifests/exporter/files.pp
new file mode 100644
index 0000000..4f8f5f5
--- /dev/null
+++ b/manifests/exporter/files.pp
@@ -0,0 +1,12 @@
+## postgresql_cd::exporter::files.pp
+# Module name: postgresql_cd
+# Author: Arne Teuke (arne_teuke@confdroid.com)
+# @summary Class manages the postgresql exporter files
+###############################################################################
+class postgresql_cd::exporter::files (
+
+) inherits postgresql_cd::params {
+ if ($fqdn == $pl_server_fqdn) and ($pl_use_exporter == true) {
+ require postgresql_cd::exporter::dirs
+ }
+}
diff --git a/manifests/exporter/service.pp b/manifests/exporter/service.pp
new file mode 100644
index 0000000..efe9686
--- /dev/null
+++ b/manifests/exporter/service.pp
@@ -0,0 +1,19 @@
+## postgresql_cd::exporter::service.pp
+# Module name: postgresql_cd
+# Author: Arne Teuke (arne_teuke@confdroid.com)
+# @summary Class manages the postgresql exporter service
+###############################################################################
+class postgresql_cd::exporter::service (
+
+) inherits postgresql_cd::params {
+ if ($fqdn == $pl_server_fqdn) and ($pl_use_exporter == true) {
+ require postgresql_cd::exporter::files
+
+# service { $pl_exporter_service:
+# ensure => running,
+# hasstatus => true,
+# hasrestart => true,
+# enable => true,
+# }
+ }
+}
diff --git a/manifests/main/config.pp b/manifests/main/config.pp
index 5a8f2e2..285ce64 100644
--- a/manifests/main/config.pp
+++ b/manifests/main/config.pp
@@ -10,5 +10,8 @@ class postgresql_cd::main::config (
if $fqdn == $pl_server_fqdn {
include postgresql_cd::server::service
+# if $pl_use_exporter == true {
+# include postgresql_cd::exporter::service
+# }
}
}
diff --git a/manifests/main/install.pp b/manifests/main/install.pp
index 9c485ae..bce4d4a 100644
--- a/manifests/main/install.pp
+++ b/manifests/main/install.pp
@@ -13,6 +13,11 @@ class postgresql_cd::main::install (
package { $reqpackages_client:
ensure => $pkg_ensure,
}
+ if $pl_manage_extensions == true {
+ package { $reqpackages_extensions:
+ ensure => $pkg_ensure,
+ }
+ }
}
if $fqdn != $pl_server_fqdn {
diff --git a/manifests/params.pp b/manifests/params.pp
index e0de66d..aff38d7 100644
--- a/manifests/params.pp
+++ b/manifests/params.pp
@@ -5,6 +5,7 @@
# @param [String] pl_server_fqdn the fqdn of the postgresql server. Any other
# system will be configured as client
# @param [Array] reqpackages_server the packages for the server
+# @param [Array] reqpackages_extensions the packages for extensions
# @param [String] reqpackages_client the packages for the client
# @param [String] pkg_ensure which version of the packages to install, i.e.
# 'latest', 'present' '13.20',
@@ -20,6 +21,9 @@
# @param [String] pl_server_key the name of the server key
# @param [String] pl_ca_crt the name of the CA crt
# @param [Boolean] pl_manage_content whether to manage roles and databases
+# @param [Boolean] pl_manage_extensions whether to manage extensions
+# @param [Boolean] pl_use_exporter whether to use the postgresql-exporter
+# @param [String] pl_install_dir the path for the postgres-exporter files
##############################################################################
class postgresql_cd::params (
@@ -27,6 +31,7 @@ class postgresql_cd::params (
# installation
Array $reqpackages_server = ['postgresql-server','postgresql-contrib'],
+ Array $reqpackages_extensions = ['pg_stat_statements','timescaledb'],
String $reqpackages_client = 'postgresql',
String $pkg_ensure = 'latest',
@@ -45,6 +50,11 @@ class postgresql_cd::params (
String $pl_server_key = 'server.key',
String $pl_ca_crt = 'root.crt',
Boolean $pl_manage_content = true,
+ Boolean $pl_manage_extensions = false,
+
+ # postgresql exporter
+ Boolean $pl_use_exporter = false,
+ String $pl_install_dir = '/opt/postgres-exporter',
) {
$fqdn = $facts['networking']['fqdn']
@@ -52,9 +62,6 @@ class postgresql_cd::params (
$os_name = $facts['os']['name']
$os_release = $facts['os']['release']['major']
- # Service
- $pl_service = 'postgresql'
-
# Directories
$pl_data_dir = '/var/lib/pgsql/data/'
@@ -63,6 +70,10 @@ class postgresql_cd::params (
$pl_pg_hba_rule_conf = 'postgresql_cd/server/pghba/pg_hba_rule.conf.erb'
$pl_pg_hba_conf_erb = 'postgresql_cd/server/pghba/pg_hba.conf.erb'
+ # Service
+ $pl_service = 'postgresql'
+ $pl_exporter_service = 'postgres_exporter'
+
# includes must be last
include postgresql_cd::main::config
}
diff --git a/templates/postgresql.conf.erb b/templates/postgresql.conf.erb
index 325105c..2334501 100644
--- a/templates/postgresql.conf.erb
+++ b/templates/postgresql.conf.erb
@@ -705,8 +705,7 @@ lc_time = 'en_US.UTF-8' # locale for time formatting
default_text_search_config = 'pg_catalog.english'
# - Shared Library Preloading -
-
-#shared_preload_libraries = '' # (change requires restart)
+#shared_preload_libraries = '' # requires restart
#local_preload_libraries = ''
#session_preload_libraries = ''
#jit_provider = 'llvmjit' # JIT library to use
|