forked from puppetlabs/puppetlabs-postgresql
/
server.pp
94 lines (79 loc) · 2.29 KB
/
server.pp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# 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
#
# Actions:
#
# Requires:
#
# Sample Usage:
#
class postgresql::server (
$package_name = '',
$package_ensure = 'present',
$service_name = '',
$service_provider = '',
$service_status = '',
$config_hash = {}
) inherits postgresql::params {
include postgresql::platform
if ! $package_name {
$package_name_real = $postgresql::platform::server_package_name
} else {
$package_name_real = $package_name
}
if ! $service_name {
$service_name_real = $postgresql::platform::service_name
} else {
$service_name_real = $service_name
}
if ! $service_provider {
$service_provider_real = $postgresql::platform::service_provider
} else {
$service_provider_real = $service_provider
}
if ! $service_status {
$service_status_real = $postgresql::platform::service_status
} else {
$service_status_real = $service_status
}
package { 'postgresql-server':
ensure => $package_ensure,
name => $package_name_real,
}
if defined(Yumrepo['yum.postgresql.org']) {
Yumrepo['yum.postgresql.org'] -> Package['postgresql-server']
}
$config_class = {}
$config_class['postgresql::config'] = $config_hash
create_resources( 'class', $config_class )
service { 'postgresqld':
ensure => running,
name => $service_name_real,
enable => true,
require => Package['postgresql-server'],
provider => $service_provider_real,
status => $service_status_real,
}
if ($postgresql::params::needs_initdb) {
include postgresql::initdb
Package['postgresql-server'] -> Class['postgresql::initdb'] -> Class['postgresql::config'] -> Service['postgresqld']
}
else {
Package['postgresql-server'] -> Class['postgresql::config'] -> Service['postgresqld']
}
exec { 'reload_postgresql':
path => '/usr/bin:/usr/sbin:/bin:/sbin',
command => "service ${service_name_real} reload",
user => $postgresql::params::user,
group => $postgresql::params::group,
onlyif => $service_status_real,
refreshonly => true,
}
}