1 # Class: postgresql::server
3 # == Class: postgresql::server
4 # Manages the installation of the postgresql server. manages the package and
8 # [*package_name*] - name of package
9 # [*service_name*] - name of service
12 # Advanced configuration setting parameters can be placed into 'postgresql_puppet_extras.conf' (located in the same
13 # folder as 'postgresql.conf'). You can manage that file as a normal puppet file resource, or however you see fit;
14 # which gives you complete control over the settings. Any value you specify in that file will override any existing
15 # value set in the templated version.
23 class postgresql::server (
25 $package_name = $postgresql::params::server_package_name,
26 $package_ensure = 'present',
27 $service_name = $postgresql::params::service_name,
28 $service_provider = $postgresql::params::service_provider,
29 $service_status = $postgresql::params::service_status,
31 $datadir = $postgresql::params::datadir
32 ) inherits postgresql::params {
34 if ($ensure == 'absent') {
35 service { 'postgresqld':
37 name => $service_name,
39 provider => $service_provider,
41 status => $service_status,
43 package { 'postgresql-server':
45 name => $package_name,
54 package { 'postgresql-server':
55 ensure => $package_ensure,
56 name => $package_name,
61 'postgresql::config' => $config_hash,
64 create_resources( 'class', $config_class )
66 service { 'postgresqld':
68 name => $service_name,
70 require => Package['postgresql-server'],
71 provider => $service_provider,
73 status => $service_status,
76 if ($postgresql::params::needs_initdb) {
77 include postgresql::initdb
79 Package['postgresql-server'] -> Class['postgresql::initdb'] -> Class['postgresql::config'] -> Service['postgresqld']
82 Package['postgresql-server'] -> Class['postgresql::config'] -> Service['postgresqld']
85 exec { 'reload_postgresql':
86 path => '/usr/bin:/usr/sbin:/bin:/sbin',
87 command => "service ${service_name} reload",
88 onlyif => $service_status,