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 @@ +
  • + postgresql_cd::exporter::dirs + +
  • + +
  • + postgresql_cd::exporter::files + +
  • + +
  • + postgresql_cd::exporter::service + +
  • +
  • postgresql_cd::firewall::iptables diff --git a/doc/puppet_class_list.html b/doc/puppet_class_list.html index 5dc8563..37b3ef4 100644 --- a/doc/puppet_class_list.html +++ b/doc/puppet_class_list.html @@ -47,63 +47,84 @@
  • -
  • +
  • +
    + postgresql_cd::exporter::dirs +
    +
  • + + +
  • +
    + postgresql_cd::exporter::files +
    +
  • + + +
  • +
    + postgresql_cd::exporter::service +
    +
  • + + +
  • postgresql_cd::firewall::iptables
  • -
  • +
  • postgresql_cd::main::config
  • -
  • +
  • postgresql_cd::main::dirs
  • -
  • +
  • postgresql_cd::main::files
  • -
  • +
  • postgresql_cd::main::install
  • -
  • +
  • postgresql_cd::params
  • -
  • +
  • postgresql_cd::server::initdb
  • -
  • +
  • postgresql_cd::server::pghba::pg_hba
  • -
  • +
  • postgresql_cd::server::service
    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

    +
    + +
    +
    Inherits:
    +
    postgresql_cd::params
    +
    + + +
    +
    Defined in:
    +
    + manifests/exporter/dirs.pp +
    +
    +
    + +

    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

    +
    + +
    +
    Inherits:
    +
    postgresql_cd::params
    +
    + + +
    +
    Defined in:
    +
    + manifests/exporter/files.pp +
    +
    +
    + +

    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

    +
    + +
    +
    Inherits:
    +
    postgresql_cd::params
    +
    + + +
    +
    Defined in:
    +
    + manifests/exporter/service.pp +
    +
    +
    + +

    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