diff --git a/config/foreman.hiera/family/RedHat-7.yaml b/config/foreman.hiera/family/RedHat-7.yaml index 6fda065a8..671edbd6b 100644 --- a/config/foreman.hiera/family/RedHat-7.yaml +++ b/config/foreman.hiera/family/RedHat-7.yaml @@ -9,4 +9,14 @@ mongodb::server::logpath: false mongodb::server::config_template: 'mongodb/mongodb.conf.2.6.erb' mongodb::server::manage_pidfile: false mongodb::server::pidfilepath: '/var/opt/rh/rh-mongodb34/run/mongodb/mongod.pid' + redis::globals::scl: rh-redis5 + +postgresql::globals::version: '10' +postgresql::globals::client_package_name: rh-postgresql10-postgresql-syspaths +postgresql::globals::server_package_name: rh-postgresql10-postgresql-server-syspaths +postgresql::globals::contrib_package_name: rh-postgresql10-postgresql-contrib-syspaths +postgresql::globals::service_name: postgresql +postgresql::globals::datadir: /var/opt/rh/rh-postgresql10/lib/pgsql/data +postgresql::globals::confdir: /var/opt/rh/rh-postgresql10/lib/pgsql/data +postgresql::globals::bindir: /usr/bin diff --git a/config/foreman.hiera/scenario/foreman-proxy-content/family/RedHat-7.yaml b/config/foreman.hiera/scenario/foreman-proxy-content/family/RedHat-7.yaml deleted file mode 100644 index f3a624449..000000000 --- a/config/foreman.hiera/scenario/foreman-proxy-content/family/RedHat-7.yaml +++ /dev/null @@ -1,9 +0,0 @@ ---- -postgresql::globals::version: '10' -postgresql::globals::client_package_name: rh-postgresql10-postgresql-syspaths -postgresql::globals::server_package_name: rh-postgresql10-postgresql-server-syspaths -postgresql::globals::contrib_package_name: rh-postgresql10-postgresql-contrib-syspaths -postgresql::globals::service_name: postgresql -postgresql::globals::datadir: /var/opt/rh/rh-postgresql10/lib/pgsql/data -postgresql::globals::confdir: /var/opt/rh/rh-postgresql10/lib/pgsql/data -postgresql::globals::bindir: /usr/bin diff --git a/config/foreman.hiera/scenario/katello/family/RedHat-7.yaml b/config/foreman.hiera/scenario/katello/family/RedHat-7.yaml deleted file mode 100644 index f3a624449..000000000 --- a/config/foreman.hiera/scenario/katello/family/RedHat-7.yaml +++ /dev/null @@ -1,9 +0,0 @@ ---- -postgresql::globals::version: '10' -postgresql::globals::client_package_name: rh-postgresql10-postgresql-syspaths -postgresql::globals::server_package_name: rh-postgresql10-postgresql-server-syspaths -postgresql::globals::contrib_package_name: rh-postgresql10-postgresql-contrib-syspaths -postgresql::globals::service_name: postgresql -postgresql::globals::datadir: /var/opt/rh/rh-postgresql10/lib/pgsql/data -postgresql::globals::confdir: /var/opt/rh/rh-postgresql10/lib/pgsql/data -postgresql::globals::bindir: /usr/bin diff --git a/hooks/pre/30-upgrade-postgresql.rb b/hooks/pre/30-upgrade-postgresql.rb new file mode 100644 index 000000000..a5b0b8f8e --- /dev/null +++ b/hooks/pre/30-upgrade-postgresql.rb @@ -0,0 +1,18 @@ +def postgresql_10_upgrade + execute('foreman-maintain service start --only=postgresql') + (name, owner, enconding, collate, ctype, privileges) = %x{runuser postgres -c 'psql -lt | grep -E "^\s+postgres"'}.chomp.split('|').map(&:strip) + execute('foreman-maintain service stop') + execute('yum -y install rh-postgresql10-postgresql-server') + execute(%Q{scl enable rh-postgresql10 "PGSETUP_INITDB_OPTIONS='--lc-collate=#{collate} --lc-ctype=#{ctype} --locale=#{collate}' postgresql-setup --upgrade"}) + execute('yum -y remove postgresql postgresql-server') + execute('rm -f /etc/systemd/system/postgresql.service') + execute('yum -y install rh-postgresql10-syspaths') +end + +if local_postgresql? && facts[:os][:release][:major] == '7' && module_enabled?('foreman') + `rpm -q rh-postgresql10-syspaths` + + unless $?.success? + postgresql_10_upgrade + end +end diff --git a/hooks/pre_validations/30-upgrade-postgresql.rb b/hooks/pre_validations/30-upgrade-postgresql.rb new file mode 100644 index 000000000..1790bbc5a --- /dev/null +++ b/hooks/pre_validations/30-upgrade-postgresql.rb @@ -0,0 +1,32 @@ +def check_postgresql_storage + #Ensure there is at least 1x /var/lib/pgsql free disk space available on the main filesystem + current_postgres_dir = '/var/lib/pgsql' + new_postgres_dir = '/var/opt/rh/rh-postgresql10/lib/pgsql' + + begin + postgres_size = `du -b -s #{current_postgres_dir}`.split[0].to_i + + if available_space(new_postgres_dir) < postgres_size + fail_and_exit "The postgres upgrade requires at least #{(postgres_size / 1024) / 1024} MB of storage." + end + rescue StandardError + fail_and_exit 'Failed to verify available disk space' + end +end + +def available_space(directory = nil) + directory = '/' if directory.nil? + mountpoints = facts[:mountpoints] + until (mountpoint = mountpoints[directory.to_sym]) + directory = File.dirname(directory) + end + mountpoint[:available_bytes] +end + +if local_postgresql? && facts[:os][:release][:major] == '7' && module_enabled?('foreman') + `rpm -q rh-postgresql10-syspaths` + + unless $?.success? + check_postgresql_storage + end +end diff --git a/katello/hooks/pre/30-upgrade.rb b/katello/hooks/pre/30-upgrade.rb index ddffbef14..c5bcd7403 100644 --- a/katello/hooks/pre/30-upgrade.rb +++ b/katello/hooks/pre/30-upgrade.rb @@ -33,17 +33,6 @@ def migrate_foreman execute('foreman-rake db:migrate') end -def postgresql_10_upgrade - start_postgresql - (name, owner, enconding, collate, ctype, privileges) = %x{runuser postgres -c 'psql -lt | grep -E "^\s+postgres"'}.chomp.split('|').map(&:strip) - stop_services - execute('yum -y install rh-postgresql10-postgresql-server') - execute(%Q{scl enable rh-postgresql10 "PGSETUP_INITDB_OPTIONS='--lc-collate=#{collate} --lc-ctype=#{ctype} --locale=#{collate}' postgresql-setup --upgrade"}) - execute('yum -y remove postgresql postgresql-server') - execute('rm -f /etc/systemd/system/postgresql.service') - execute('yum -y install rh-postgresql10-syspaths') -end - def upgrade_step(step, options = {}) noop = app_value(:noop) ? ' (noop)' : '' long_running = options[:long_running] ? ' (this may take a while) ' : '' @@ -91,9 +80,5 @@ def step_path(step) upgrade_step :migrate_foreman, :run_always => true end - if local_postgresql? && facts[:os][:release][:major] == '7' - upgrade_step :postgresql_10_upgrade - end - log_and_say :info, 'Upgrade Step: Running installer...' end