add support for extensions
This commit is contained in:
1
.vscode/settings.json
vendored
1
.vscode/settings.json
vendored
@@ -48,6 +48,7 @@
|
||||
"tablespace",
|
||||
"tablespaces",
|
||||
"tidscan",
|
||||
"timescaledb",
|
||||
"timezonesets",
|
||||
"trgm",
|
||||
"usename",
|
||||
|
||||
BIN
files/postgres_exporter
Executable file
BIN
files/postgres_exporter
Executable file
Binary file not shown.
21
manifests/exporter/dirs.pp
Normal file
21
manifests/exporter/dirs.pp
Normal 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,
|
||||
}
|
||||
}
|
||||
}
|
||||
11
manifests/exporter/files.pp
Normal file
11
manifests/exporter/files.pp
Normal 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
|
||||
}
|
||||
19
manifests/exporter/service.pp
Normal file
19
manifests/exporter/service.pp
Normal 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,
|
||||
# }
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user