-# Class: postgresql::server
-#
-# == Class: postgresql::server
-# Manages the installation of the postgresql server. manages the package and
-# service.
-#
-# === Parameters:
-# [*package_name*] - name of package
-# [*service_name*] - name of service
-#
-# Configuration:
-# Advanced configuration setting parameters can be placed into 'postgresql_puppet_extras.conf' (located in the same
-# folder as 'postgresql.conf'). You can manage that file as a normal puppet file resource, or however you see fit;
-# which gives you complete control over the settings. Any value you specify in that file will override any existing
-# value set in the templated version.
-#
-# Actions:
-#
-# Requires:
-#
-# Sample Usage:
-#
+# This installs a PostgreSQL server. See README.md for more details.
class postgresql::server (
- $ensure = 'present',
- $package_name = $postgresql::params::server_package_name,
- $package_ensure = 'present',
- $service_name = $postgresql::params::service_name,
- $service_provider = $postgresql::params::service_provider,
- $service_status = $postgresql::params::service_status,
- $config_hash = {},
- $datadir = $postgresql::params::datadir
-) inherits postgresql::params {
+ $postgres_password = undef,
- if ($ensure == 'absent') {
- service { 'postgresqld':
- ensure => stopped,
- name => $service_name,
- enable => false,
- provider => $service_provider,
- hasstatus => true,
- status => $service_status,
- }->
- package { 'postgresql-server':
- ensure => purged,
- name => $package_name,
- tag => 'postgresql',
- }->
- file { $datadir:
- ensure => absent,
- recurse => true,
- force => true,
- }
- } else {
- package { 'postgresql-server':
- ensure => $package_ensure,
- name => $package_name,
- tag => 'postgresql',
- }
+ $package_name = $postgresql::params::server_package_name,
+ $package_ensure = $postgresql::params::package_ensure,
+
+ $plperl_package_name = $postgresql::params::plperl_package_name,
+ $plpython_package_name = $postgresql::params::plpython_package_name,
+
+ $service_ensure = $postgresql::params::service_ensure,
+ $service_enable = $postgresql::params::service_enable,
+ $service_manage = $postgresql::params::service_manage,
+ $service_name = $postgresql::params::service_name,
+ $service_restart_on_change = $postgresql::params::service_restart_on_change,
+ $service_provider = $postgresql::params::service_provider,
+ $service_reload = $postgresql::params::service_reload,
+ $service_status = $postgresql::params::service_status,
+ $default_database = $postgresql::params::default_database,
+ $default_connect_settings = $postgresql::globals::default_connect_settings,
+ $listen_addresses = $postgresql::params::listen_addresses,
+ $port = $postgresql::params::port,
+ $ip_mask_deny_postgres_user = $postgresql::params::ip_mask_deny_postgres_user,
+ $ip_mask_allow_all_users = $postgresql::params::ip_mask_allow_all_users,
+ $ipv4acls = $postgresql::params::ipv4acls,
+ $ipv6acls = $postgresql::params::ipv6acls,
+
+ $initdb_path = $postgresql::params::initdb_path,
+ $createdb_path = $postgresql::params::createdb_path,
+ $psql_path = $postgresql::params::psql_path,
+ $pg_hba_conf_path = $postgresql::params::pg_hba_conf_path,
+ $pg_ident_conf_path = $postgresql::params::pg_ident_conf_path,
+ $postgresql_conf_path = $postgresql::params::postgresql_conf_path,
+ $recovery_conf_path = $postgresql::params::recovery_conf_path,
+
+ $datadir = $postgresql::params::datadir,
+ $xlogdir = $postgresql::params::xlogdir,
+ $logdir = $postgresql::params::logdir,
- $config_class = {
- 'postgresql::config' => $config_hash,
- }
+ $log_line_prefix = $postgresql::params::log_line_prefix,
- create_resources( 'class', $config_class )
+ $pg_hba_conf_defaults = $postgresql::params::pg_hba_conf_defaults,
- service { 'postgresqld':
- ensure => running,
- name => $service_name,
- enable => true,
- require => Package['postgresql-server'],
- provider => $service_provider,
- hasstatus => true,
- status => $service_status,
- }
+ $user = $postgresql::params::user,
+ $group = $postgresql::params::group,
- if ($postgresql::params::needs_initdb) {
- include postgresql::initdb
+ $needs_initdb = $postgresql::params::needs_initdb,
- Package['postgresql-server'] -> Class['postgresql::initdb'] -> Class['postgresql::config'] -> Service['postgresqld']
- }
- else {
- Package['postgresql-server'] -> Class['postgresql::config'] -> Service['postgresqld']
- }
+ $encoding = $postgresql::params::encoding,
+ $locale = $postgresql::params::locale,
+ $data_checksums = $postgresql::params::data_checksums,
+ $timezone = $postgresql::params::timezone,
- exec { 'reload_postgresql':
- path => '/usr/bin:/usr/sbin:/bin:/sbin',
- command => "service ${service_name} reload",
- onlyif => $service_status,
- refreshonly => true,
- }
+ $manage_pg_hba_conf = $postgresql::params::manage_pg_hba_conf,
+ $manage_pg_ident_conf = $postgresql::params::manage_pg_ident_conf,
+ $manage_recovery_conf = $postgresql::params::manage_recovery_conf,
+ $module_workdir = $postgresql::params::module_workdir,
+ #Deprecated
+ $version = undef,
+) inherits postgresql::params {
+ $pg = 'postgresql::server'
+
+ if $version != undef {
+ warning('Passing "version" to postgresql::server is deprecated; please use postgresql::globals instead.')
+ $_version = $version
+ } else {
+ $_version = $postgresql::params::version
}
+ if $createdb_path != undef{
+ warning('Passing "createdb_path" to postgresql::server is deprecated, it can be removed safely for the same behaviour')
+ }
+
+ # Reload has its own ordering, specified by other defines
+ class { "${pg}::reload": require => Class["${pg}::install"] }
+
+ anchor { "${pg}::start": }
+ -> class { "${pg}::install": }
+ -> class { "${pg}::initdb": }
+ -> class { "${pg}::config": }
+ -> class { "${pg}::service": }
+ -> class { "${pg}::passwd": }
+ -> anchor { "${pg}::end": }
}