diff --git a/manifests/server/config_entry.pp b/manifests/server/config_entry.pp index 6b587af688..64b59f43d8 100644 --- a/manifests/server/config_entry.pp +++ b/manifests/server/config_entry.pp @@ -2,7 +2,7 @@ # # @param ensure Removes an entry if set to 'absent'. # @param value Defines the value for the setting. -# @param path Path for postgresql.conf +# @param path Path for postgresql.conf # define postgresql::server::config_entry ( Enum['present', 'absent'] $ensure = 'present', @@ -70,10 +70,6 @@ 'max_pred_locks_per_transaction' => undef, } - Exec { - logoutput => 'on_failure', - } - if ! ($name in $requires_restart_until and ( ! $requires_restart_until[$name] or versioncmp($postgresql::server::_version, $requires_restart_until[$name]) < 0 @@ -91,73 +87,6 @@ } } - # We have to handle ports and the data directory in a weird and - # special way. On early Debian and Ubuntu and RHEL we have to ensure - # we stop the service completely. On RHEL 7 we either have to create - # a systemd override for the port or update the sysconfig file, but this - # is managed for us in postgresql::server::config. - if $facts['os']['name'] == 'Debian' or $facts['os']['name'] == 'Ubuntu' { - if $name == 'data_directory' { - $stop_command = ['service', $postgresql::server::service_name, 'stop'] - $stop_onlyif = ['service', $postgresql::server::service_name, 'status'] - $stop_unless = [['grep', "data_directory = '${value}'", $postgresql::server::postgresql_conf_path]] - exec { "postgresql_stop_${name}": - command => $stop_command, - onlyif => $stop_onlyif, - unless => $stop_unless, - path => '/usr/sbin:/sbin:/bin:/usr/bin:/usr/local/bin', - before => Postgresql_conf[$name], - } - } - } elsif $facts['os']['family'] == 'RedHat' and versioncmp($facts['os']['release']['major'], '7') < 0 { - if $name == 'port' { - # We need to force postgresql to stop before updating the port - # because puppet becomes confused and is unable to manage the - # service appropriately. - $stop_command = ['service', $postgresql::server::service_name, 'stop'] - $stop_onlyif = ['service', $postgresql::server::service_name, 'status'] - $stop_unless = "grep 'PGPORT=${shell_escape($value)}' /etc/sysconfig/pgsql/postgresql" - exec { "postgresql_stop_${name}": - command => $stop_command, - onlyif => $stop_onlyif, - unless => $stop_unless, - path => '/sbin:/bin:/usr/bin:/usr/local/bin', - require => File['/etc/sysconfig/pgsql/postgresql'], - } - -> augeas { 'override PGPORT in /etc/sysconfig/pgsql/postgresql': - lens => 'Shellvars.lns', - incl => '/etc/sysconfig/pgsql/postgresql', - context => '/files/etc/sysconfig/pgsql/postgresql', - changes => "set PGPORT ${value}", - require => File['/etc/sysconfig/pgsql/postgresql'], - notify => Class['postgresql::server::service'], - before => Class['postgresql::server::reload'], - } - } elsif $name == 'data_directory' { - # We need to force postgresql to stop before updating the data directory - # otherwise init script breaks - $stop_command = ['service', $postgresql::server::service_name, 'stop'] - $stop_onlyif = ['service', $postgresql::server::service_name, 'status'] - $stop_unless = [['grep', "PGDATA=${value}", '/etc/sysconfig/pgsql/postgresql']] - exec { "postgresql_${name}": - command => $stop_command, - onlyif => $stop_onlyif, - unless => $stop_unless, - path => '/sbin:/bin:/usr/bin:/usr/local/bin', - require => File['/etc/sysconfig/pgsql/postgresql'], - } - -> augeas { 'override PGDATA in /etc/sysconfig/pgsql/postgresql': - lens => 'Shellvars.lns', - incl => '/etc/sysconfig/pgsql/postgresql', - context => '/files/etc/sysconfig/pgsql/postgresql', - changes => "set PGDATA ${value}", - require => File['/etc/sysconfig/pgsql/postgresql'], - notify => Class['postgresql::server::service'], - before => Class['postgresql::server::reload'], - } - } - } - postgresql_conf { $name: ensure => $ensure, target => $target, diff --git a/manifests/server/instance/config.pp b/manifests/server/instance/config.pp index d6ef93259e..83d30e9eee 100644 --- a/manifests/server/instance/config.pp +++ b/manifests/server/instance/config.pp @@ -216,25 +216,6 @@ } } - # RedHat-based systems hardcode some PG* variables in the init script, and need to be overriden - # in /etc/sysconfig/pgsql/postgresql. Create a blank file so we can manage it with augeas later. - if $facts['os']['family'] == 'RedHat' and versioncmp($facts['os']['release']['major'], '7') < 0 { - file { '/etc/sysconfig/pgsql/postgresql': - ensure => file, - replace => false, - } - - # The init script from the packages of the postgresql.org repository - # sources an alternate sysconfig file. - # I. e. /etc/sysconfig/pgsql/postgresql-9.3 for PostgreSQL 9.3 - # Link to the sysconfig file set by this puppet module - file { "/etc/sysconfig/pgsql/postgresql-${version}": - ensure => link, - target => '/etc/sysconfig/pgsql/postgresql', - require => File['/etc/sysconfig/pgsql/postgresql'], - } - } - if ($manage_pg_ident_conf == true) { concat { $pg_ident_conf_path: owner => $user,