Skip to content

Commit 043af26

Browse files
authored
Merge pull request #2623 from puppetlabs/CAT-2511-Test_sles_issue_fixes
(CAT-2511) Address configuration issues related to SLES 12 & 15 CI
2 parents cdb899c + 319fdb7 commit 043af26

3 files changed

Lines changed: 36 additions & 18 deletions

File tree

manifests/mod/php.pp

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -106,14 +106,21 @@
106106
}
107107

108108
if $facts['os']['name'] == 'SLES' {
109-
# Enable legacy repo to install apache2-mod_php7 package
110-
# if SUSE OS major version is >= 15 and minor version is > 3
111-
if ($_package_name == 'apache2-mod_php7' and versioncmp($facts['os']['release']['major'], '15') >= 0 and versioncmp($facts['os']['release']['minor'], '3') == 1) {
112-
exec { 'enable legacy repos':
113-
path => '/bin:/usr/bin/:/sbin:/usr/sbin',
114-
command => "SUSEConnect --product sle-module-legacy/${facts['os']['release']['major']}.${facts['os']['release']['minor']}/x86_64",
115-
unless => "SUSEConnect --status-text | grep sle-module-legacy/${facts['os']['release']['major']}.${facts['os']['release']['minor']}/x86_64",
116-
}
109+
# TEMPORARY FIX: Configure fallback repo for unregistered SLES systems
110+
# GCP BYOS images have zero repos configured, SUSEConnect doesn't work
111+
# Use version-appropriate repos: Leap 42.3 for SLES 12 (PHP 5), Leap 15.6 for SLES 15 (PHP 7)
112+
if versioncmp($facts['os']['release']['major'], '15') >= 0 {
113+
$repo_url = 'http://download.opensuse.org/distribution/leap/15.6/repo/oss/'
114+
} else {
115+
# SLES 12 needs older repo with PHP 5 support
116+
$repo_url = 'http://download.opensuse.org/distribution/leap/42.3/repo/oss/'
117+
}
118+
119+
exec { 'Configure zypper repo for SLES mod_php':
120+
path => '/bin:/usr/bin:/sbin:/usr/sbin',
121+
command => "zypper --non-interactive --gpg-auto-import-keys ar ${repo_url} opensuse-leap-fallback && zypper --non-interactive --gpg-auto-import-keys refresh",
122+
unless => "zypper lr 2>/dev/null | grep -q 'opensuse-leap-fallback\\|http'",
123+
logoutput => true,
117124
}
118125

119126
::apache::mod { $mod:
@@ -122,6 +129,7 @@
122129
lib => "mod_${mod}.so",
123130
id => $_module_id,
124131
path => "${apache::lib_path}/mod_${mod}.so",
132+
require => Exec['Configure zypper repo for SLES mod_php'],
125133
}
126134
} else {
127135
::apache::mod { $mod:

spec/setup_acceptance_node.pp

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,27 @@
55

66
case $facts['os']['family'] {
77
'SLES', 'SUSE': {
8-
# Enable legacy repo to install net-tools-deprecated package
9-
# If SUSE OS major version is >= 15 and minor version is > 3
10-
if (versioncmp($facts['os']['release']['major'], '15') >= 0 and versioncmp($facts['os']['release']['minor'], '3') == 1) {
11-
exec { 'enable legacy repos':
12-
path => '/bin:/usr/bin/:/sbin:/usr/sbin',
13-
command => "SUSEConnect --product sle-module-legacy/${facts['os']['release']['major']}.${facts['os']['release']['minor']}/x86_64",
14-
unless => "SUSEConnect --status-text | grep sle-module-legacy/${facts['os']['release']['major']}.${facts['os']['release']['minor']}/x86_64",
15-
}
8+
# TEMPORARY FIX: Add fallback repo for unregistered SLES systems
9+
# GCP BYOS images have zero repos configured, SUSEConnect doesn't work
10+
# Use version-appropriate repos: Leap 42.3 for SLES 12, Leap 15.6 for SLES 15
11+
if versioncmp($facts['os']['release']['major'], '15') >= 0 {
12+
$repo_url = 'http://download.opensuse.org/distribution/leap/15.6/repo/oss/'
13+
} else {
14+
# SLES 12 needs older repo with PHP 5 support
15+
$repo_url = 'http://download.opensuse.org/distribution/leap/42.3/repo/oss/'
16+
}
17+
18+
exec { 'Configure zypper repo for SLES':
19+
path => '/bin:/usr/bin:/sbin:/usr/sbin',
20+
command => "zypper --non-interactive --gpg-auto-import-keys ar ${repo_url} opensuse-leap-fallback && zypper --non-interactive --gpg-auto-import-keys refresh",
21+
unless => "zypper lr 2>/dev/null | grep -q 'opensuse-leap-fallback\\|http'",
22+
logoutput => true,
1623
}
24+
1725
# needed for netstat, for serverspec checks
1826
package { 'net-tools-deprecated':
19-
ensure => 'latest',
27+
ensure => 'latest',
28+
require => Exec['Configure zypper repo for SLES'],
2029
}
2130
}
2231
'RedHat': {

spec/spec_helper_acceptance_local.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ def print_parsing_errors
3131
# IPv6 is not enabled by default in the new travis-ci Trusty environment (see https://github.com/travis-ci/travis-ci/issues/8891 )
3232
c.filter_run_excluding ipv6: true if ENV['CI'] == 'true'
3333
c.before :suite do
34-
LitmusHelper.instance.run_shell('puppet module install puppet/epel') if %r{redhat|oracle}.match?(os[:family])
34+
# Pin to epel 5.x which is known to work - newer versions have file() function issues
35+
LitmusHelper.instance.run_shell('puppet module install puppet/epel --version 5.0.0') if %r{redhat|oracle}.match?(os[:family])
3536

3637
LitmusHelper.instance.apply_manifest(File.read(File.join(__dir__, 'setup_acceptance_node.pp')))
3738
end

0 commit comments

Comments
 (0)