Skip to content

Commit 5b829f4

Browse files
extend systemd define to handle instance systemd files
1 parent 3152372 commit 5b829f4

File tree

2 files changed

+32
-23
lines changed

2 files changed

+32
-23
lines changed

Diff for: manifests/server/instance/config.pp

+6-7
Original file line numberDiff line numberDiff line change
@@ -252,12 +252,11 @@
252252
notify => Class['postgresql::server::reload'],
253253
}
254254
}
255-
# RHEL based systems and Gentoo need variables set for $PGPORT, $DATA_DIR or $PGDATA via a drop-in file
256-
if $facts['os']['family'] == 'RedHat' or ($facts['os']['family'] == 'Gentoo' and $facts['service_provider'] == 'systemd') {
257-
postgresql::server::instance::systemd { $service_name:
258-
port => $port,
259-
datadir => $datadir,
260-
extra_systemd_config => $extra_systemd_config,
261-
}
255+
256+
postgresql::server::instance::systemd { $name:
257+
port => $port,
258+
datadir => $datadir,
259+
extra_systemd_config => $extra_systemd_config,
260+
service_name => $service_name,
262261
}
263262
}

Diff for: manifests/server/instance/systemd.pp

+26-16
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,36 @@
55
define postgresql::server::instance::systemd (
66
Stdlib::Port $port,
77
Stdlib::Absolutepath $datadir,
8+
String[1] $instance_name = $name,
89
Optional[String[1]] $extra_systemd_config = undef,
910
String[1] $service_name = $name,
1011
Enum[present, absent] $drop_in_ensure = 'present',
1112
) {
12-
# Template uses:
13-
# - $port
14-
# - $datadir
15-
# - $extra_systemd_config
16-
systemd::dropin_file { "${service_name}.conf":
17-
ensure => $drop_in_ensure,
18-
unit => "${service_name}.service",
19-
owner => 'root',
20-
group => 'root',
21-
content => epp('postgresql/systemd-override.conf.epp', {
22-
port => $port,
23-
datadir => $datadir,
24-
extra_systemd_config => $extra_systemd_config,
13+
if $facts['service_provider'] == 'systemd' {
14+
if $facts['os']['family'] in ['RedHat', 'Gentoo'] {
15+
# RHEL 7 and 8 both support drop-in files for systemd units.
16+
# Gentoo also supports drop-in files.
17+
# RHEL based Systems need Variables set for $PGPORT, $DATA_DIR or $PGDATA, thats what the drop-in file is for.
18+
# For additional instances (!= 'main') we need a new systemd service anyhow and use one systemd-file. no dropin needed.
19+
#
20+
# Template uses:
21+
# - $port
22+
# - $datadir
23+
# - $extra_systemd_config
24+
systemd::dropin_file { "${service_name}.conf":
25+
ensure => $drop_in_ensure,
26+
unit => "${service_name}.service",
27+
owner => 'root',
28+
group => 'root',
29+
content => epp('postgresql/systemd-override.conf.epp', {
30+
port => $port,
31+
datadir => $datadir,
32+
extra_systemd_config => $extra_systemd_config,
33+
}
34+
),
35+
notify => Class['postgresql::server::service'],
36+
before => Class['postgresql::server::reload'],
2537
}
26-
),
27-
notify => Class['postgresql::server::service'],
28-
before => Class['postgresql::server::reload'],
38+
}
2939
}
3040
}

0 commit comments

Comments
 (0)