add support for extensions
This commit is contained in:
1
.vscode/settings.json
vendored
1
.vscode/settings.json
vendored
@@ -48,6 +48,7 @@
|
|||||||
"tablespace",
|
"tablespace",
|
||||||
"tablespaces",
|
"tablespaces",
|
||||||
"tidscan",
|
"tidscan",
|
||||||
|
"timescaledb",
|
||||||
"timezonesets",
|
"timezonesets",
|
||||||
"trgm",
|
"trgm",
|
||||||
"usename",
|
"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 {
|
if $fqdn == $pl_server_fqdn {
|
||||||
include postgresql_cd::server::service
|
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:
|
package { $reqpackages_client:
|
||||||
ensure => $pkg_ensure,
|
ensure => $pkg_ensure,
|
||||||
}
|
}
|
||||||
|
if $pl_manage_extensions == true {
|
||||||
|
package { $reqpackages_extensions:
|
||||||
|
ensure => $pkg_ensure,
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if $fqdn != $pl_server_fqdn {
|
if $fqdn != $pl_server_fqdn {
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
# @param [String] pl_server_fqdn the fqdn of the postgresql server. Any other
|
# @param [String] pl_server_fqdn the fqdn of the postgresql server. Any other
|
||||||
# system will be configured as client
|
# system will be configured as client
|
||||||
# @param [Array] reqpackages_server the packages for the server
|
# @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] reqpackages_client the packages for the client
|
||||||
# @param [String] pkg_ensure which version of the packages to install, i.e.
|
# @param [String] pkg_ensure which version of the packages to install, i.e.
|
||||||
# 'latest', 'present' '13.20',
|
# 'latest', 'present' '13.20',
|
||||||
@@ -20,6 +21,9 @@
|
|||||||
# @param [String] pl_server_key the name of the server key
|
# @param [String] pl_server_key the name of the server key
|
||||||
# @param [String] pl_ca_crt the name of the CA crt
|
# @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_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 (
|
class postgresql_cd::params (
|
||||||
|
|
||||||
@@ -27,6 +31,7 @@ class postgresql_cd::params (
|
|||||||
|
|
||||||
# installation
|
# installation
|
||||||
Array $reqpackages_server = ['postgresql-server','postgresql-contrib'],
|
Array $reqpackages_server = ['postgresql-server','postgresql-contrib'],
|
||||||
|
Array $reqpackages_extensions = ['pg_stat_statements','timescaledb'],
|
||||||
String $reqpackages_client = 'postgresql',
|
String $reqpackages_client = 'postgresql',
|
||||||
String $pkg_ensure = 'latest',
|
String $pkg_ensure = 'latest',
|
||||||
|
|
||||||
@@ -45,6 +50,11 @@ class postgresql_cd::params (
|
|||||||
String $pl_server_key = 'server.key',
|
String $pl_server_key = 'server.key',
|
||||||
String $pl_ca_crt = 'root.crt',
|
String $pl_ca_crt = 'root.crt',
|
||||||
Boolean $pl_manage_content = true,
|
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']
|
$fqdn = $facts['networking']['fqdn']
|
||||||
@@ -52,9 +62,6 @@ class postgresql_cd::params (
|
|||||||
$os_name = $facts['os']['name']
|
$os_name = $facts['os']['name']
|
||||||
$os_release = $facts['os']['release']['major']
|
$os_release = $facts['os']['release']['major']
|
||||||
|
|
||||||
# Service
|
|
||||||
$pl_service = 'postgresql'
|
|
||||||
|
|
||||||
# Directories
|
# Directories
|
||||||
$pl_data_dir = '/var/lib/pgsql/data/'
|
$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_rule_conf = 'postgresql_cd/server/pghba/pg_hba_rule.conf.erb'
|
||||||
$pl_pg_hba_conf_erb = 'postgresql_cd/server/pghba/pg_hba.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
|
# includes must be last
|
||||||
include postgresql_cd::main::config
|
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'
|
default_text_search_config = 'pg_catalog.english'
|
||||||
|
|
||||||
# - Shared Library Preloading -
|
# - Shared Library Preloading -
|
||||||
|
<% @pl_manage_extensions == true -%>
|
||||||
#shared_preload_libraries = '' # (change requires restart)
|
shared_preload_libraries = <%= @pl_reqpackages_extensions %> # (change requires restart)
|
||||||
|
<% end -%>
|
||||||
|
<% @pl_manage_extensions != true -%>
|
||||||
|
# shared_preload_libraries = ''
|
||||||
|
<% end -%>
|
||||||
#local_preload_libraries = ''
|
#local_preload_libraries = ''
|
||||||
#session_preload_libraries = ''
|
#session_preload_libraries = ''
|
||||||
#jit_provider = 'llvmjit' # JIT library to use
|
#jit_provider = 'llvmjit' # JIT library to use
|
||||||
|
|||||||
Reference in New Issue
Block a user