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