3
0

add support for extensions

This commit is contained in:
Arne Teuke
2025-11-21 15:45:25 +01:00
parent ca80d70857
commit 4e3b493d17
9 changed files with 80 additions and 5 deletions

View File

@@ -48,6 +48,7 @@
"tablespace",
"tablespaces",
"tidscan",
"timescaledb",
"timezonesets",
"trgm",
"usename",

BIN
files/postgres_exporter Executable file

Binary file not shown.

View File

@@ -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,
}
}
}

View File

@@ -0,0 +1,11 @@
## 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
}

View File

@@ -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,
# }
}
}

View File

@@ -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
}
}
}

View File

@@ -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 {

View File

@@ -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
}

View File

@@ -705,8 +705,12 @@ 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)
<% @pl_manage_extensions == true -%>
shared_preload_libraries = <%= @pl_reqpackages_extensions %> # (change requires restart)
<% end -%>
<% @pl_manage_extensions != true -%>
# shared_preload_libraries = ''
<% end -%>
#local_preload_libraries = ''
#session_preload_libraries = ''
#jit_provider = 'llvmjit' # JIT library to use