Skip to content

Commit c0b674e

Browse files
committed
Add Red Hat Enterprise Linux 9 support
The comment indicates the checks in server config need to be done on EL6 and older only. The current check would also trigger on EL9. This uses a version comparison on the major version. We can leave out the Fedora check since we don't need to care about Fedora < 7. It also sets the default version on EL9 to version 13. This should also affect CentOS Stream 9, which is supposed to work but not officially verified to work.
1 parent fb21f98 commit c0b674e

File tree

5 files changed

+45
-44
lines changed

5 files changed

+45
-44
lines changed

manifests/globals.pp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,7 @@
183183
},
184184
'Amazon' => '9.2',
185185
default => $facts['os']['release']['major'] ? {
186+
'9' => '13',
186187
'8' => '10',
187188
'7' => '9.2',
188189
'6' => '8.4',

manifests/server/config.pp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@
181181

182182
# RedHat-based systems hardcode some PG* variables in the init script, and need to be overriden
183183
# in /etc/sysconfig/pgsql/postgresql. Create a blank file so we can manage it with augeas later.
184-
if ($facts['os']['family'] == 'RedHat') and ($facts['os']['release']['major'] !~ /^(7|8)$/) and ($facts['os']['name'] != 'Fedora') {
184+
if $facts['os']['family'] == 'RedHat' and versioncmp($facts['os']['release']['major'], '7') < 0 {
185185
file { '/etc/sysconfig/pgsql/postgresql':
186186
ensure => file,
187187
replace => false,

manifests/server/config_entry.pp

Lines changed: 39 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -106,48 +106,45 @@
106106
before => Postgresql_conf[$name],
107107
}
108108
}
109-
}
110-
if $facts['os']['family'] == 'RedHat' {
111-
if ! ($facts['os']['release']['major'] in ['7', '8'] or $facts['os']['name'] == 'Fedora') {
112-
if $name == 'port' {
113-
# We need to force postgresql to stop before updating the port
114-
# because puppet becomes confused and is unable to manage the
115-
# service appropriately.
116-
exec { "postgresql_stop_${name}":
117-
command => "service ${postgresql::server::service_name} stop",
118-
onlyif => "service ${postgresql::server::service_name} status",
119-
unless => "grep 'PGPORT=${value}' /etc/sysconfig/pgsql/postgresql",
120-
path => '/sbin:/bin:/usr/bin:/usr/local/bin',
121-
require => File['/etc/sysconfig/pgsql/postgresql'],
122-
}
123-
-> augeas { 'override PGPORT in /etc/sysconfig/pgsql/postgresql':
124-
lens => 'Shellvars.lns',
125-
incl => '/etc/sysconfig/pgsql/postgresql',
126-
context => '/files/etc/sysconfig/pgsql/postgresql',
127-
changes => "set PGPORT ${value}",
128-
require => File['/etc/sysconfig/pgsql/postgresql'],
129-
notify => Class['postgresql::server::service'],
130-
before => Class['postgresql::server::reload'],
131-
}
132-
} elsif $name == 'data_directory' {
133-
# We need to force postgresql to stop before updating the data directory
134-
# otherwise init script breaks
135-
exec { "postgresql_${name}":
136-
command => "service ${postgresql::server::service_name} stop",
137-
onlyif => "service ${postgresql::server::service_name} status",
138-
unless => "grep 'PGDATA=${value}' /etc/sysconfig/pgsql/postgresql",
139-
path => '/sbin:/bin:/usr/bin:/usr/local/bin',
140-
require => File['/etc/sysconfig/pgsql/postgresql'],
141-
}
142-
-> augeas { 'override PGDATA in /etc/sysconfig/pgsql/postgresql':
143-
lens => 'Shellvars.lns',
144-
incl => '/etc/sysconfig/pgsql/postgresql',
145-
context => '/files/etc/sysconfig/pgsql/postgresql',
146-
changes => "set PGDATA ${value}",
147-
require => File['/etc/sysconfig/pgsql/postgresql'],
148-
notify => Class['postgresql::server::service'],
149-
before => Class['postgresql::server::reload'],
150-
}
109+
} elsif $facts['os']['family'] == 'RedHat' and versioncmp($facts['os']['release']['major'], '7') < 0 {
110+
if $name == 'port' {
111+
# We need to force postgresql to stop before updating the port
112+
# because puppet becomes confused and is unable to manage the
113+
# service appropriately.
114+
exec { "postgresql_stop_${name}":
115+
command => "service ${postgresql::server::service_name} stop",
116+
onlyif => "service ${postgresql::server::service_name} status",
117+
unless => "grep 'PGPORT=${value}' /etc/sysconfig/pgsql/postgresql",
118+
path => '/sbin:/bin:/usr/bin:/usr/local/bin',
119+
require => File['/etc/sysconfig/pgsql/postgresql'],
120+
}
121+
-> augeas { 'override PGPORT in /etc/sysconfig/pgsql/postgresql':
122+
lens => 'Shellvars.lns',
123+
incl => '/etc/sysconfig/pgsql/postgresql',
124+
context => '/files/etc/sysconfig/pgsql/postgresql',
125+
changes => "set PGPORT ${value}",
126+
require => File['/etc/sysconfig/pgsql/postgresql'],
127+
notify => Class['postgresql::server::service'],
128+
before => Class['postgresql::server::reload'],
129+
}
130+
} elsif $name == 'data_directory' {
131+
# We need to force postgresql to stop before updating the data directory
132+
# otherwise init script breaks
133+
exec { "postgresql_${name}":
134+
command => "service ${postgresql::server::service_name} stop",
135+
onlyif => "service ${postgresql::server::service_name} status",
136+
unless => "grep 'PGDATA=${value}' /etc/sysconfig/pgsql/postgresql",
137+
path => '/sbin:/bin:/usr/bin:/usr/local/bin',
138+
require => File['/etc/sysconfig/pgsql/postgresql'],
139+
}
140+
-> augeas { 'override PGDATA in /etc/sysconfig/pgsql/postgresql':
141+
lens => 'Shellvars.lns',
142+
incl => '/etc/sysconfig/pgsql/postgresql',
143+
context => '/files/etc/sysconfig/pgsql/postgresql',
144+
changes => "set PGDATA ${value}",
145+
require => File['/etc/sysconfig/pgsql/postgresql'],
146+
notify => Class['postgresql::server::service'],
147+
before => Class['postgresql::server::reload'],
151148
}
152149
}
153150
}

metadata.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@
2727
"operatingsystemrelease": [
2828
"6",
2929
"7",
30-
"8"
30+
"8",
31+
"9"
3132
]
3233
},
3334
{

provision.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ release_checks_6:
3737
- redhat-6-x86_64
3838
- redhat-7-x86_64
3939
- redhat-8-x86_64
40+
- redhat-9-x86_64
4041
- centos-6-x86_64
4142
- centos-7-x86_64
4243
- centos-8-x86_64
@@ -58,6 +59,7 @@ release_checks_7:
5859
images:
5960
- redhat-7-x86_64
6061
- redhat-8-x86_64
62+
- redhat-9-x86_64
6163
- centos-7-x86_64
6264
- centos-8-x86_64
6365
- oracle-7-x86_64

0 commit comments

Comments
 (0)