|
206 | 206 | }
|
207 | 207 | }
|
208 | 208 |
|
209 |
| - if $facts['os']['family'] == 'RedHat' { |
210 |
| - if $facts['os']['release']['full'] =~ /^7|^8/ or $facts['os']['name'] == 'Fedora' { |
| 209 | + # RHEL 7 and 8 both support drop-in files for systemd units. The old include directive is deprecated and may be removed in future systemd releases. |
| 210 | + # Gentoo also supports drop-in files. |
| 211 | + if $facts['os']['family'] in ['RedHat', 'Gentoo'] and $facts['service_provider'] == 'systemd' { |
211 | 212 | # Template uses:
|
212 |
| - # - $::operatingsystem |
| 213 | + # - $facts['os']['name'] |
| 214 | + # - $facts['os']['release']['major'] |
213 | 215 | # - $service_name
|
214 | 216 | # - $port
|
215 | 217 | # - $datadir
|
216 |
| - file { 'systemd-override': |
217 |
| - ensure => file, |
218 |
| - path => "/etc/systemd/system/${service_name}.service", |
219 |
| - owner => root, |
220 |
| - group => root, |
221 |
| - content => template('postgresql/systemd-override.erb'), |
222 |
| - notify => [Exec['restart-systemd'], Class['postgresql::server::service']], |
223 |
| - before => Class['postgresql::server::reload'], |
224 |
| - } |
| 218 | + # - @extra_systemd_config |
| 219 | + |
| 220 | + if (versioncmp($facts['puppetversion'], '6.1.0') < 0) { |
225 | 221 | exec { 'restart-systemd':
|
226 | 222 | command => 'systemctl daemon-reload',
|
227 | 223 | refreshonly => true,
|
228 | 224 | path => '/bin:/usr/bin:/usr/local/bin',
|
229 | 225 | }
|
| 226 | + $systemd_notify = [Exec['restart-systemd'], Class['postgresql::server::service']] |
230 | 227 | }
|
231 |
| - } |
232 |
| - elsif $facts['os']['family'] == 'Gentoo' { |
233 |
| - # Template uses: |
234 |
| - # - $::operatingsystem |
235 |
| - # - $service_name |
236 |
| - # - $port |
237 |
| - # - $datadir |
238 |
| - file { 'systemd-override': |
239 |
| - ensure => file, |
240 |
| - path => "/etc/systemd/system/${service_name}.service", |
241 |
| - owner => root, |
242 |
| - group => root, |
243 |
| - content => template('postgresql/systemd-override.erb'), |
244 |
| - notify => [Exec['restart-systemd'], Class['postgresql::server::service']], |
245 |
| - before => Class['postgresql::server::reload'], |
246 |
| - } |
247 |
| - exec { 'restart-systemd': |
248 |
| - command => 'systemctl daemon-reload', |
249 |
| - refreshonly => true, |
250 |
| - path => '/bin:/usr/bin:/usr/local/bin', |
| 228 | + else { |
| 229 | + $systemd_notify = Class['postgresql::server::service'] |
| 230 | + } |
| 231 | + |
| 232 | + file { |
| 233 | + default: |
| 234 | + ensure => file, |
| 235 | + owner => root, |
| 236 | + group => root, |
| 237 | + notify => $systemd_notify, |
| 238 | + before => Class['postgresql::server::reload'], |
| 239 | + |
| 240 | + ; |
| 241 | + |
| 242 | + 'systemd-conf-dir': |
| 243 | + ensure => directory, |
| 244 | + path => "/etc/systemd/system/${service_name}.service.d", |
| 245 | + ; |
| 246 | + |
| 247 | + 'systemd-override': |
| 248 | + path => "/etc/systemd/system/${service_name}.service.d/${service_name}.conf", |
| 249 | + content => template('postgresql/systemd-override.erb'), |
| 250 | + require => File['systemd-conf-dir'], |
| 251 | + ; |
| 252 | + |
| 253 | + # Remove old unit file to avoid conflicts |
| 254 | + 'old-systemd-override': |
| 255 | + ensure => absent, |
| 256 | + path => "/etc/systemd/system/${service_name}.service", |
| 257 | + ; |
251 | 258 | }
|
252 | 259 | }
|
253 | 260 | }
|
0 commit comments