Chapter 1. How to Upgrade
1.1. How to upgrade from Red Hat Enterprise Linux 6
- Check that Red Hat supports the upgrade of your system. See Section 1.1.1, “Check your support status” for details.
- Prepare your system for upgrade. See Section 1.1.2, “Prepare your system for upgrade” for details.
- Check your system for problems that might affect your upgrade. See Section 1.1.3, “Check system upgrade suitability” for details.
- Upgrade by running the Red Hat Upgrade Tool. See Section 1.1.4, “Upgrade your system” for details.
1.1.1. Check your support status
- Your system is on the latest version of the Server variant of Red Hat Enterprise Linux 6 for Intel 64 and AMD64 architecture, with all packages up to date. To check, enter the following commands:
# cat /etc/redhat-release Red Hat Enterprise Linux Server release 6.9 (Santiago) # arch x86_64 # yum upgrade -y
- Your system is registered to receive updates from Subscription Management and not RHN Classic.
- Your system includes only the following package groups: Minimal, Base, Web Server, DHCP Server, NFS File Server (
@nfs-server), and Print Server. Remove other package groups before upgrading and reinstall them when your upgrade is complete.
1.1.2. Prepare your system for upgrade
- Back up all data
- Firstly, back up the entire system to avoid potential data loss, and test that your backup works.
- Test first
- Before you upgrade a production system, you should clone the system and test the upgrade procedure on the clone. This will allow you to prepare for upgrade without risking the production system.
- Convert to Red Hat Subscription Management
- Red Hat Enterprise Linux 7 must be registered with the Subscription Management tool (
subscription-manager) rather than RHN Classic tools like
rhn_register. See https://access.redhat.com/articles/433903 for details on getting started with Subscription Management.Before it begins upgrading packages, the
yum upgradecommand outputs a statement about how this system receives updates. Ensure that
subscription-managerand not RHN is mentioned here.
# yum upgrade Loaded plugins: product-id, security, subscription-manager ...If your Red Hat Enterprise Linux 6 system is currently registered to RHN Classic, you must first unregister from RHN Classic by following these instructions: https://access.redhat.com/solutions/11272.
- Ensure only supported package groups are installed
- This upgrade process supports only the following package groups: Minimal, Base, Web Server, DHCP Server, NFS File Server (
@nfs-server), and Print Server. Check which package groups are installed with the
yum grouplistcommand. Remove other package groups before upgrading and reinstall them when your upgrade is complete.
- Update all packages
- Once your system is registered with Subscription Management, ensure that all packages on your system are up to date by running the following commands.
# yum update -y # reboot
1.1.3. Check system upgrade suitability
- Install and run the Preupgrade Assistant,
preupg. See Section 22.214.171.124, “Installing the Preupgrade Assistant” and Section 126.96.36.199, “Running the Preupgrade Assistant” for details.
- Correct any problems identified by the Preupgrade Assistant. See Section 188.8.131.52, “Viewing results and correcting errors” for details.
- Consult the Release Notes, Technical Notes, and Migration Planning Guide to ensure that you are aware of any changes that the Preupgrade Assistant does not assess. The latest versions of these documents are available from https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/.
184.108.40.206. Installing the Preupgrade Assistant
Enable the Extras repositoryAs root, run the following command to subscribe your system to the repository containing the Preupgrade Assistant.If your system receives updates from Red Hat Subscription Management:
# subscription-manager repos --enable rhel-6-server-extras-rpms
Install the toolAs root, run the following command to install all the Preupgrade Assistant packages.
# yum -y install preupgrade-assistant preupgrade-assistant-el6toel7
220.127.116.11. Running the Preupgrade Assistant
# preupg -v
# preupg -v -u http://hostname:port/submit
18.104.22.168.1. Configuring the Preupgrade Assistant Web UI
httpd) and a number of changes to the
/etc/httpd/conf.ddirectory. If you are concerned about exposing data about your system to the network, or you want to avoid adding packages to the system you intend to upgrade, do not follow this procedure. Instead, copy the
/root/preupgrade/result.htmlfile to a machine with a graphical user interface and view it in a web browser.
Install required packages
# yum -y install httpd preupgrade-assistant-ui
Change upload configurationChange from using the default private preupgrade configuration to the public configuration.
# cd /etc/httpd/conf.d # cp 99-preup-httpd.conf.public 99-preup-httpd.confThis makes the Preupgrade Assistant Web UI available to all network interfaces on the local system, through TCP port 8099 by default.You can also edit the
NameVirtualHostvariable in the new
/etc/httpd/conf.d/99-preup-httpd.confto set a host name, if you want to access Preupgrade Assistant Web UI through a host name like
preupg-ui.example.com:8099instead of an IP address like
Change firewall and SELinux configurationTemporarily put SELinux in permissive mode, and allow traffic through TCP port 8099.
# setenforce 0 # iptables -I INPUT -m state --state NEW -p tcp --dport 8099 -j ACCEPT
Restart the web server
# service httpd restart
Configure or disable authenticationIn a web browser, navigate to
http://192.168.99.1:8099/(or the host name, if you specified one in Step 2). You are prompted to either enter details to create a new administrative user, or disable authentication.
preupgcommand with the
-u http://hostname:port/submitoption on that system.
22.214.171.124. Viewing results and correcting errors
preupg, a summary of results is printed to standard output. Detailed results are saved to the /root/preupgrade directory as
result.htmlby default. You can also upload results to the Preupgrade Assistant Web UI to compare multiple
preupgruns as you correct potential migration issues.
Table 1.1. Exit Codes
Everything looks fine, and this item is ready to upgrade.
Extreme upgrade risk. upgrade is not possible.
High upgrade risk. Some administrator action is required before you upgrade.
Moderate and lower risk. Upgrading should succeed, but may result in a system that is not fully functional.
A change required for upgrade was made automatically.
Useful but non-critical information about this item is available in the report.
Preupgrade checked for an item that was not installed on your system.
Something has probably gone wrong with the preupgrade tools. Report this type of problem to Red Hat Support.
1.1.4. Upgrade your system
preupgrade-assistant has not been run
Install the tool
# yum -y install redhat-upgrade-tool
Disable active repositories
# yum -y install yum-utils # yum-config-manager --disable \*
Perform the upgradeThe upgrade process requires access to Red Hat Enterprise Linux 7 packages. You can specify the location of a repository on the network or on a mounted device, or an ISO image, as shown below.
# redhat-upgrade-tool --network <latest_RHEL_7> --instrepo repo_location
# redhat-upgrade-tool --device device_path
# redhat-upgrade-tool --iso iso_pathSome packages that were in the Base package group in Red Hat Enterprise Linux 6 are no longer part of that group in Red Hat Enterprise Linux 7. You may need to configure additional repositories in order to upgrade these packages correctly.Refer to https://access.redhat.com/site/solutions/912213 to enable the Extras repository on the yum repository system. Then see https://access.redhat.com/site/solutions/9892 to set up a repository that you can use during your upgrade. The upgrade command for this use case would look similar to the following.
# redhat-upgrade-tool --addrepo optional=http://host name/path/to/repoSome packages are not reinstalled during the upgrade process because they have no functionally equivalent replacements in Red Hat Enterprise Linux 7. Red Hat does not provide any support for these packages. To remove these packages at the end of the upgrade process, enter the following command:
# redhat-upgrade-tool --cleanup-post
RebootWhen prompted, reboot the system.
Wait for upgrade to completeAfter your system reboots, upgrade can take several minutes or several hours, depending on the number of packages to install.
Perform post-upgrade tasksManually perform any post-upgrade tasks described in the Preupgrade Assistant assessment result. See Section 126.96.36.199, “Viewing results and correcting errors” for details.
Check system statusCheck that your system's subscription details have been updated as part of the upgrade process.
# cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.4 # yum repolist Loaded plugins: product-id, subscription-manager repo id repo name status rhel-7-rpms Red Hat Enterprise Linux 7 Server (RPMs) 4,323If your repolist did not update correctly, perform the following commands:
# subscription-manager remove --all # subscription-manager unregister # subscription-manager register # subscription-manager attach --pool=poolID # subscription-manager repos --enable=repoID
Update all packagesEnsure that all packages are up to date by running the following:
# yum upgrade -y # reboot