From 267e01f2a47758494448b4ec1706477bf94e7b4f Mon Sep 17 00:00:00 2001 From: Evgeni Golov Date: Tue, 3 Oct 2023 09:40:30 +0200 Subject: [PATCH 1/6] install the correct SCL package on OracleLinux --- manifests/repo.pp | 21 +++++++++++++++++---- spec/classes/repo_spec.rb | 1 + 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/manifests/repo.pp b/manifests/repo.pp index 384a6c1a4..25c1eefba 100644 --- a/manifests/repo.pp +++ b/manifests/repo.pp @@ -87,10 +87,23 @@ } } - if ($facts['os']['name'] == 'CentOS' and $facts['os']['release']['major'] == '7' and versioncmp($zabbix_version, '5.0') >= 0) { - package { 'zabbix-required-scl-repo': - ensure => 'latest', - name => 'centos-release-scl', + if ($facts['os']['release']['major'] == '7' and versioncmp($zabbix_version, '5.0') >= 0) { + case $facts['os']['name'] { + 'CentOS': { + $scl_package_name = 'centos-release-scl' + } + 'OracleLinux': { + $scl_package_name = 'oracle-softwarecollection-release-el7' + } + default: { + $scl_package_name = undef + } + } + if $scl_package_name { + package { 'zabbix-required-scl-repo': + ensure => 'latest', + name => $scl_package_name, + } } } } diff --git a/spec/classes/repo_spec.rb b/spec/classes/repo_spec.rb index 3b1f46ec1..3973ce126 100644 --- a/spec/classes/repo_spec.rb +++ b/spec/classes/repo_spec.rb @@ -85,6 +85,7 @@ it { is_expected.to contain_yumrepo('zabbix-nonsupported').with_gpgkey('https://repo.zabbix.com/RPM-GPG-KEY-ZABBIX-79EA5ED4') } it { is_expected.to contain_package('zabbix-required-scl-repo').with_ensure('latest').with_name('centos-release-scl') } if facts[:os]['name'] == 'CentOS' + it { is_expected.to contain_package('zabbix-required-scl-repo').with_ensure('latest').with_name('oracle-softwarecollection-release-el7') } if facts[:os]['name'] == 'OracleLinux' end when '9' From dc58c9899e85d2678ab27de79acbc98874e7e692 Mon Sep 17 00:00:00 2001 From: Evgeni Golov Date: Tue, 3 Oct 2023 19:52:32 +0200 Subject: [PATCH 2/6] explicit dnf module in acceptance --- spec/acceptance/server_spec.rb | 3 ++- spec/acceptance/zabbix_application_spec.rb | 3 ++- spec/acceptance/zabbix_host_spec.rb | 3 ++- spec/acceptance/zabbix_hostgroup_spec.rb | 3 ++- spec/acceptance/zabbix_proxy_spec.rb | 3 ++- spec/acceptance/zabbix_template_host_spec.rb | 3 ++- spec/acceptance/zabbix_template_spec.rb | 3 ++- 7 files changed, 14 insertions(+), 7 deletions(-) diff --git a/spec/acceptance/server_spec.rb b/spec/acceptance/server_spec.rb index 4d6d9cf8a..59594a225 100644 --- a/spec/acceptance/server_spec.rb +++ b/spec/acceptance/server_spec.rb @@ -19,7 +19,8 @@ class { 'postgresql::globals': encoding => 'UTF-8', locale => 'en_US.UTF-8', - manage_package_repo => true, + manage_package_repo => $facts['os']['release']['major'] != '8', + manage_dnf_module => $facts['os']['release']['major'] == '8', version => '12', } -> class { 'postgresql::server': } diff --git a/spec/acceptance/zabbix_application_spec.rb b/spec/acceptance/zabbix_application_spec.rb index a4a08dc73..19374986a 100644 --- a/spec/acceptance/zabbix_application_spec.rb +++ b/spec/acceptance/zabbix_application_spec.rb @@ -25,7 +25,8 @@ class { 'apache': include apache::mod::php class { 'postgresql::globals': locale => 'en_US.UTF-8', - manage_package_repo => true, + manage_package_repo => $facts['os']['release']['major'] != '8', + manage_dnf_module => $facts['os']['release']['major'] == '8', version => '12', } -> class { 'postgresql::server': } diff --git a/spec/acceptance/zabbix_host_spec.rb b/spec/acceptance/zabbix_host_spec.rb index dc00d810b..2fe3cc632 100644 --- a/spec/acceptance/zabbix_host_spec.rb +++ b/spec/acceptance/zabbix_host_spec.rb @@ -34,7 +34,8 @@ class { 'apache': include apache::mod::php class { 'postgresql::globals': locale => 'en_US.UTF-8', - manage_package_repo => true, + manage_package_repo => $facts['os']['release']['major'] != '8', + manage_dnf_module => $facts['os']['release']['major'] == '8', version => '12', } -> class { 'postgresql::server': } diff --git a/spec/acceptance/zabbix_hostgroup_spec.rb b/spec/acceptance/zabbix_hostgroup_spec.rb index 99fb43575..b380fce03 100644 --- a/spec/acceptance/zabbix_hostgroup_spec.rb +++ b/spec/acceptance/zabbix_hostgroup_spec.rb @@ -18,7 +18,8 @@ class { 'apache': include apache::mod::php class { 'postgresql::globals': locale => 'en_US.UTF-8', - manage_package_repo => true, + manage_package_repo => $facts['os']['release']['major'] != '8', + manage_dnf_module => $facts['os']['release']['major'] == '8', version => '12', } -> class { 'postgresql::server': } diff --git a/spec/acceptance/zabbix_proxy_spec.rb b/spec/acceptance/zabbix_proxy_spec.rb index b7c5da3ba..3c5c11d72 100644 --- a/spec/acceptance/zabbix_proxy_spec.rb +++ b/spec/acceptance/zabbix_proxy_spec.rb @@ -19,7 +19,8 @@ class { 'apache': include apache::mod::php class { 'postgresql::globals': locale => 'en_US.UTF-8', - manage_package_repo => true, + manage_package_repo => $facts['os']['release']['major'] != '8', + manage_dnf_module => $facts['os']['release']['major'] == '8', version => '12', } -> class { 'postgresql::server': } diff --git a/spec/acceptance/zabbix_template_host_spec.rb b/spec/acceptance/zabbix_template_host_spec.rb index 576742c9e..e033f4039 100644 --- a/spec/acceptance/zabbix_template_host_spec.rb +++ b/spec/acceptance/zabbix_template_host_spec.rb @@ -27,7 +27,8 @@ class { 'apache': include apache::mod::php class { 'postgresql::globals': locale => 'en_US.UTF-8', - manage_package_repo => true, + manage_package_repo => $facts['os']['release']['major'] != '8', + manage_dnf_module => $facts['os']['release']['major'] == '8', version => '12', } -> class { 'postgresql::server': } diff --git a/spec/acceptance/zabbix_template_spec.rb b/spec/acceptance/zabbix_template_spec.rb index 2fe4c7991..5f52043b2 100644 --- a/spec/acceptance/zabbix_template_spec.rb +++ b/spec/acceptance/zabbix_template_spec.rb @@ -18,7 +18,8 @@ class { 'apache': include apache::mod::php class { 'postgresql::globals': locale => 'en_US.UTF-8', - manage_package_repo => true, + manage_package_repo => $facts['os']['release']['major'] != '8', + manage_dnf_module => $facts['os']['release']['major'] == '8', version => '12', } -> class { 'postgresql::server': } From 4e3f60b7a3364b75d70ebd63247c1ef85488f655 Mon Sep 17 00:00:00 2001 From: Evgeni Golov Date: Tue, 3 Oct 2023 22:15:04 +0200 Subject: [PATCH 3/6] install web packages based on os family, not os name --- manifests/web.pp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/manifests/web.pp b/manifests/web.pp index ef29e3b85..8060bea21 100644 --- a/manifests/web.pp +++ b/manifests/web.pp @@ -217,8 +217,8 @@ } } - case $facts['os']['name'] { - 'ubuntu', 'debian': { + case $facts['os']['family'] { + 'Debian': { $zabbix_web_package = 'zabbix-frontend-php' $php_db_package = "php-${db}" @@ -230,7 +230,7 @@ ], } } - 'CentOS', 'RedHat': { + 'RedHat': { $zabbix_web_package = 'zabbix-web' if ($facts['os']['release']['major'] == '7' and versioncmp($zabbix_version, '5.0') >= 0) { package { "zabbix-web-${db}-scl": @@ -258,7 +258,7 @@ tag => 'zabbix', } } - } # END case $facts['os']['name'] + } # END case $facts['os']['family'] file { '/etc/zabbix/web': ensure => directory, From 5bc7fa05db2d13baa857205a0d4dc95dad2cd191 Mon Sep 17 00:00:00 2001 From: Evgeni Golov Date: Wed, 4 Oct 2023 08:46:55 +0200 Subject: [PATCH 4/6] only try to load versioned schema on EL7 --- manifests/database/postgresql.pp | 2 +- spec/classes/database_postgresql_spec.rb | 15 ++++++--------- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/manifests/database/postgresql.pp b/manifests/database/postgresql.pp index a380c71d4..bceb083f9 100644 --- a/manifests/database/postgresql.pp +++ b/manifests/database/postgresql.pp @@ -24,7 +24,7 @@ assert_private() if ($database_schema_path == false) or ($database_schema_path == '') { - if member(['CentOS', 'RedHat', 'OracleLinux', 'VirtuozzoLinux'], $facts['os']['name']) { + if $facts['os']['family'] == 'RedHat' and $facts['os']['release']['major'] == '7' { if versioncmp($zabbix_version, '6.0') >= 0 { $schema_path = '/usr/share/zabbix-sql-scripts/postgresql/' } else { diff --git a/spec/classes/database_postgresql_spec.rb b/spec/classes/database_postgresql_spec.rb index 808c07b92..975f0fceb 100644 --- a/spec/classes/database_postgresql_spec.rb +++ b/spec/classes/database_postgresql_spec.rb @@ -20,21 +20,18 @@ end supported_versions.each do |zabbix_version| - path = case facts[:os]['name'] - when 'CentOS', 'RedHat', 'OracleLinux', 'VirtuozzoLinux' - # Path on RedHat + path = if facts[:os]['family'] == 'RedHat' && facts[:os]['release']['major'] == '7' + # Path on EL7 if Puppet::Util::Package.versioncmp(zabbix_version, '6.0') >= 0 '/usr/share/zabbix-sql-scripts/postgresql/' else "/usr/share/doc/zabbix-*-pgsql-#{zabbix_version}*/" end + # Path on Debian and EL8 + elsif Puppet::Util::Package.versioncmp(zabbix_version, '6.0') >= 0 + '/usr/share/zabbix-sql-scripts/postgresql/' else - # Path on Debian - if Puppet::Util::Package.versioncmp(zabbix_version, '6.0') >= 0 - '/usr/share/zabbix-sql-scripts/postgresql/' - else - '/usr/share/doc/zabbix-*-pgsql' - end + '/usr/share/doc/zabbix-*-pgsql' end sql_server = case zabbix_version From daf5c249557f353f66676418bf78d27ed3554da6 Mon Sep 17 00:00:00 2001 From: Evgeni Golov Date: Wed, 4 Oct 2023 09:12:31 +0200 Subject: [PATCH 5/6] use special frontend repo for 5.0 on *all* EL7, not just CentOS --- manifests/repo.pp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/manifests/repo.pp b/manifests/repo.pp index 25c1eefba..b0a176d82 100644 --- a/manifests/repo.pp +++ b/manifests/repo.pp @@ -70,8 +70,8 @@ priority => '1', } - # Zabbix 5.0 frontend on CentOS 7 has different location. - if ($facts['os']['name'] == 'CentOS' and $majorrelease == '7' and $zabbix_version == '5.0') { + # Zabbix 5.0 frontend on EL7 has different location. + if ($majorrelease == '7' and $zabbix_version == '5.0') { $_frontend_repo_location = $frontend_repo_location ? { undef => "https://repo.zabbix.com/zabbix/${zabbix_version}/rhel/${majorrelease}/\$basearch/frontend", default => $frontend_repo_location, From 14ef143fc4abd88b27bc03dc9b6a60f07c39908e Mon Sep 17 00:00:00 2001 From: Evgeni Golov Date: Wed, 4 Oct 2023 09:16:21 +0200 Subject: [PATCH 6/6] simplify proxy package installation there are no more differences since Zabbix 3.0 --- manifests/proxy.pp | 31 +++++-------------------------- 1 file changed, 5 insertions(+), 26 deletions(-) diff --git a/manifests/proxy.pp b/manifests/proxy.pp index ccc385448..f2a6f1913 100644 --- a/manifests/proxy.pp +++ b/manifests/proxy.pp @@ -420,32 +420,11 @@ } } - # Now we are going to install the correct packages. - case $facts['os']['name'] { - 'redhat', 'centos', 'oraclelinux', 'VirtuozzoLinux': { - #There is no zabbix-proxy package in 3.0 - if versioncmp('3.0',$zabbix_version) > 0 { - package { 'zabbix-proxy': - ensure => $zabbix_package_state, - require => Package["zabbix-proxy-${db}"], - tag => 'zabbix', - } - } - - # Installing the packages - package { "zabbix-proxy-${db}": - ensure => $zabbix_package_state, - tag => 'zabbix', - } - } # END 'redhat','centos','oraclelinux' - default : { - # Installing the packages - package { "zabbix-proxy-${db}": - ensure => $zabbix_package_state, - tag => 'zabbix', - } - } # END default - } # END case $facts['os']['name'] + # Installing the packages + package { "zabbix-proxy-${db}": + ensure => $zabbix_package_state, + tag => 'zabbix', + } # Controlling the 'zabbix-proxy' service if $manage_service {