Chapter 7. Performing post-upgrade tasks

The following major tasks are recommended after an in-place upgrade to RHEL 8.

Prerequisites

Procedure

After performing the upgrade, complete the following tasks:

  1. Remove any remaining Leapp packages from the exclude list in the /etc/dnf/dnf.conf configuration file, including the snactor package. During the in-place upgrade, Leapp packages that were installed with the Leapp utility are automatically added to the exclude list to prevent critical files from being removed or updated. After the in-place upgrade, you must remove these Leapp packages from the exclude list before they can be removed from the system.

    • To manually remove packages from the exclude list, edit the /etc/dnf/dnf.conf configuration file and remove the desired Leapp packages from the exclude list.
    • To remove all packages from the exclude list:

      # yum config-manager --save --setopt exclude=''
  2. Remove remaining RHEL 7 packages, including remaining Leapp packages.

    1. Determine old kernel versions:

      # cd /lib/modules && ls -d *.el7*
    2. Remove weak modules from the old kernel. If you have multiple old kernels, repeat the following step for each kernel:

      # [ -x /usr/sbin/weak-modules ] && /usr/sbin/weak-modules --remove-kernel <version>

      Replace <version> with the kernel version determined in the previous step, for example:

      #  [ -x /usr/sbin/weak-modules ] && /usr/sbin/weak-modules --remove-kernel 3.10.0-1160.25.1.el7.x86_64
      Note

      Ignore the following error message, which is generated if the kernel package has been previously removed:

      /usr/sbin/weak-modules: line 1081: cd: /lib/modules/<version>/weak-updates: No such file or directory
    3. Remove the old kernel from the boot loader entry. If you have multiple old kernels, repeat this step for each kernel:

      # /bin/kernel-install remove <version> /lib/modules/<version>/vmlinuz

      Replace version with the kernel version determined in the previous step, for example:

      # /bin/kernel-install remove 3.10.0-1160.25.1.el7.x86_64 /lib/modules/3.10.0-1160.25.1.el7.x86_64/vmlinuz
    4. Locate remaining RHEL 7 packages:

      # rpm -qa | grep -e '\.el[67]' | grep -vE '^(gpg-pubkey|libmodulemd|katello-ca-consumer)' | sort
    5. Remove remaining RHEL 7 packages, including old kernel packages, and the kernel-workaround package from your RHEL 8 system.
    6. Remove remaining Leapp dependency packages:

      # yum remove leapp-deps-el8 leapp-repository-deps-el8
    7. Remove any remaining empty directories:

      # rm -r /lib/modules/*el7*
  3. Optional: Remove all remaining upgrade-related data from the system:

    # rm -rf /var/log/leapp /root/tmp_leapp_py3 /var/lib/leapp
    Important

    Removing this data might limit Red Hat Support’s ability to investigate and troubleshoot post-upgrade problems.

  4. Disable YUM repositories whose packages cannot be installed or used on RHEL 8. Repositories managed by RHSM are handled automatically. To disable these repositories:

    # yum config-manager --set-disabled <repository_id>

    Replace <repository_id> with the repository ID.

  5. Set the current kernel command line arguments to the new default to ensure that future kernel updates boot with correct parameters:

    • For IBM Z architecture:

      # BOOT_OPTIONS="$(tr -s "$IFS" '\n' </proc/cmdline | grep -ve '^BOOT_IMAGE=' -e '^initrd=' | tr '\n' ' ')"
      # echo $BOOT_OPTIONS > /etc/kernel/cmdline
    • For other architectures:

      # BOOT_OPTIONS="$(tr -s "$IFS" '\n' </proc/cmdline | grep -ve '^BOOT_IMAGE=' -e '^initrd=' | tr '\n' ' ')"
      # grub2-editenv - set "kernelopts=$BOOT_OPTIONS"
  6. Replace the old rescue kernel and initial RAM disk with the current kernel and disk:

    1. Remove the existing rescue kernel and initial RAM disk:

      # rm /boot/vmlinuz-*rescue* /boot/initramfs-*rescue* 
    2. Reinstall the rescue kernel and related initial RAM disk:

      # /usr/lib/kernel/install.d/51-dracut-rescue.install add "$(uname -r)" /boot "/boot/vmlinuz-$(uname -r)"
      Note

      If your system’s kernel package has a different name, such as on real-time systems, replace kernel-core with the correct package name.

    3. If your system is on the IBM Z architecture, update the zipl bootloader:

      # zipl
  7. Re-evaluate and re-apply your security policies. Especially, change the SELinux mode to enforcing. For details, see Applying security policies.

Verification steps

  1. Verify that the old kernels have been removed from the bootloader entry:

    # grubby --info=ALL | grep "\.el7" || echo "Old kernels are not present in the bootloader."
  2. Verify that the previously removed rescue kernel and rescue initial RAM disk files have been created for the current kernel:

    # ls /boot/vmlinuz-*rescue* /boot/initramfs-*rescue* 
    # lsinitrd /boot/initramfs-*rescue*.img | grep -qm1 "$(uname -r)/kernel/" && echo "OK" || echo "FAIL"
  3. Verify the rescue boot entry refers to the existing rescue files. See the grubby output:

    # grubby --info $(ls /boot/vmlinuz-*rescue*)