I need to upgrade my Red Hat Enterprise Linux (RHEL) Amazon Elastic Compute Cloud (Amazon EC2) instance.
Short description
Use the Leapp utility to perform an in-place upgrade from RHEL version 7 to RHEL version 8 on your Amazon EC2 instance. Leapp is an AWS Command Line Interface (AWS CLI) tool that helps users with the installation process and in-place upgrade.
It's a best practice to make a backup of your instance before you upgrade. To do this, either create an Amazon Machine Image (AMI) from your instance or create a snapshot.
It's also a best practice to upgrade on a test instance first. If all of your applications work as expected for your environment, then upgrade on your live production instance.
For information on known limitations and detailed in-place operating system (OS) upgrade instructions, see Upgrading from RHEL 7 to RHEL 8 on the Red Hat website.
Resolution
Note: If you receive errors when you run AWS CLI commands, then see Troubleshooting errors for the AWS CLI. Also, make sure that you're using the most recent AWS CLI version.
-
Before you upgrade from RHEL 7 to RHEL 8, upgrade the instance to the latest minor release of RHEL 7. Use the following commands in the AWS CLI:
$ sudo su
# yum update -y
# reboot
-
After the instance reboots, make sure that the instance updated to the latest RHEL 7 minor version available. Use the following command:
$ sudo su
# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.9 (Maipo)
-
Install Leapp. To install, turn on necessary RHUI repositories and install the package. Run the following command:
# yum-config-manager --enable rhui-client-config-server-7
# yum-config-manager --enable rhel-7-server-rhui-extras-rpms
# yum install -y leapp leapp-rhui-aws leapp-repository leapp-repository-deps lvm2-python-boom —enablerepo=*
-
To check for any errors, run the pre-upgrade command:
$ leapp preupgrade --no-rhsm
If you see any errors, then follow the steps in Troubleshoot pre-upgrade errors.
-
If you don't use Red Hat Subscription Manager (RHSM), then run the following command:
$ leapp upgrade --no-rhsm
-
To upgrade for a specific version (such as RHEL 8.8), run the following command:
$ leapp upgrade --target 8.8 --no-rhsm
-
Reboot the instance, and then confirm that the instance is running RHEL 8:
# reboot
# cat /etc/redhat-release
Troubleshoot pre-upgrade errors
When you run the pre-upgrade command, you might get the following output:
============================================================
UPGRADE INHIBITED
============================================================
Upgrade has been inhibited due to the following problems: 1. Inhibitor: Possible problems with remote login using root account 2. Inhibitor: Missing required answers in the answer fileConsult the pre-upgrade report for details and possible remediation
============================================================
UPGRADE INHIBITED
============================================================
Debug output written to /var/log/leapp/leapp-preupgrade.log
============================================================
To resolve these errors, take the following actions:
"Inhibitor: Possible problems with remote login using root account."
Allow PermitRootLogin for SSH to resolve this issue. The sshd configuration file is in the /etc/ssh/sshd_config folder. In the sshd configuration file, uncomment the following line:
#PermitRootLogin yes
"Inhibitor: Missing required answers in the answer file. Consult the pre-upgrade report for details and possible remediation."
The output of the answer file generates in the /var/log/leapp/answer file by Leapp. Access the answer file with the following command:
$ cat /var/log/leapp/answerfile
The answer file displays results similar to the following:
[remove_pam_pkcs11_module_check]#
Title: None# Reason: Confirmation
#=================== remove_pam_pkcs11_module_check.confirm ==================
# Label: Disable pam_pkcs11 module in PAM configuration? If no, the upgrade process will be interrupted.
# Description: PAM module pam_pkcs11 is no longer available in RHEL-8 since it was replaced by SSSD.
# Reason: Leaving this module in PAM configuration may lock out the system.
# Type: bool# Default: None# Available choices: True/False
# Unanswered question. Uncomment the following line with your answer
# confirm =
Confirm the answers with the following format:
$ leapp answer —section remove_pam_pkcs11_module_check.confirm=True
Verify the updates to the file with the following command:
$ cat /var/log/leapp/answerfile
[remove_pam_pkcs11_module_check]
confirm = True