Now that Red Hat Enterprise Linux (RHEL) 10 is generally available, system administrators managing large-scale environments need a streamlined way to perform in-place upgrades. For organizations using Red Hat Satellite, the upgrade process can be centrally managed, ensuring consistency and compliance across multiple systems. Managing enterprise Linux systems at scale can be complex, especially when dealing with patching, compliance, and major version upgrades. Satellite and Leapp are two powerful tools designed to simplify these tasks.
Leapp is an open source upgrade framework to automate and simplify in-place major version upgrades of RHEL systems. Unlike traditional manual upgrades or disruptive migration approaches, Leapp performs pre-upgrade checks, resolves compatibility issues, and executes the upgrade with minimal downtime—all while preserving system configurations and applications.
In this article, we'll walk through the steps to upgrade from RHEL 9 to RHEL 10, using Leapp while leveraging Red Hat Satellite for repository management, content synchronization, and system tracking.
Satellite and Leapp features
Red Hat Satellite is a systems management platform that helps organizations deploy, patch, and maintain RHEL infrastructure efficiently—including systems that are not connected to the internet. For air-gapped or disconnected environments, Satellite serves as a critical bridge, allowing enterprises to maintain secure, up-to-date systems without direct internet access.
Key features of Satellite include:
- Patch management: Centrally deploy security and bug fixes.
- Content lifecycle management: Control which packages/versions are deployed.
- Automation: Use Ansible roles for system configuration and deployments.
- Compliance enforcement: SCAP security baselines and policy enforcement.
Key features of Leapp include:
- Seamless major version upgrades (e.g., RHEL 9 to RHEL 10).
- Pre-upgrade checks: Identifies potential issues (e.g. driver compatibility).
- Minimal downtime: Identifies inhibitors and provides remediation steps.
- Integration with Satellite: Managed centrally for large-scale upgrades.
Prerequisites
Before starting the upgrade, ensure Red Hat Satellite 6.17 is properly configured with the following:
- RHEL 9 and RHEL 10 repositories enabled and synced.
- Content views updated to include RHEL 10.0 repositories.
Click the checkbox next to each item to enable them, as shown in Figure 1.

Upgraded systems are:
- Registered with Red Hat Satellite 6.17 latest.
- Running on the latest RHEL 9.6 Kernel release.
They must also have:
- Backups taken (snapshots or system backups).
- Maintenance window scheduled (upgrades require reboots).
Step 1: Configure Satellite for RHEL 10
To perform an in-place upgrade to RHEL 10 on a system registered with Satellite, you must first prepare your system. Carry out these preparation steps on the Satellite server.
Enable and synchronize RHEL 9.6 and 10.0 repositories
Follow these steps to enable and sync repositiories on Satellite:
- In the Satellite Web UI, navigate to Content.
- Select Red Hat Repositories then turn on Recommended Repositories to enable and sync repositories.
- Then, return to the Content tab. From there, select Sync Status > Select Repositories > Synchronize Now.
See the following:
Red Hat Enterprise Linux 9 for x86_64 - AppStream (RPMs) rhel-9-for-x86_64-appstream-rpms x86_64 9.6
Red Hat Enterprise Linux 9 for x86_64 - BaseOS (RPMs) rhel-9-for-x86_64-baseos-rpms x86_64 9.6
Red Hat Enterprise Linux 10 for x86_64 - AppStream (RPMs) rhel-10-for-x86_64-appstream-rpms x86_64 10.0
Red Hat Enterprise Linux 10 for x86_64 - BaseOS (RPMs) rhel-10-for-x86_64-baseos-rpms x86_64 10.0
Step 2: Prepare systems for upgrade
Next, we'll walk through the necessary steps to prepare for an in-place upgrade to RHEL 10 using the Leapp utility.
Register systems with Satellite (if not already done):
- In the Satellite Web UI, navigate to Hosts.
- Select Content Hosts then click Register Content Hosts.
Update to the latest RHEL 9.6 Packages by running the following commands:
# dnf update -y
# reboot
Install Leapp and required packages by running the following commands:
# dnf install -y leapp-upgrade
Run Leapp pre-upgrade check:
# leapp preupgrade --target 10.0
The output will look like this:
[root@avnkumar9 ~]#
[root@avnkumar9 ~]# leapp preupgrade --target 10.0
==> Processing phase `configuration_phase`
====> * ipu_workflow_config
IPU workflow config actor
==> Processing phase `FactsCollection`
====> * rpm_scanner
Provides data about installed RPM Packages.
Review the report for any blockers or inhibitors error in this file:
# cat /var/log/leapp/leapp-report.txt
The output will look like this:
Debug output written to /var/log/leapp/leapp-preupgrade.log
========================================================================================================================
REPORT OVERVIEW
========================================================================================================================
HIGH and MEDIUM severity reports:
1. GRUB2 core will be automatically updated during the upgrade
2. Leapp detected loaded kernel drivers which are no longer maintained in RHEL 10.
3. Berkeley DB (libdbb) has been detected on your system
Reports summary:
Errors: 0
Inhibitors: 0
HIGH severity reports: 2
MEDIUM severity reports: 1
LOW severity reports: 2
INFO severity reports: 3
Before continuing, review the full report below for details about discovered problems and their recommended solutions.
A report has been generated at /var/log/leapp/leapp-report.txt
A report has been generated at /var/log/leapp/leapp-report.json
========================================================================================================================
END OF REPORT OVERVIEW
========================================================================================================================
Answerfile has been generated at /var/log/leapp/answerfile
[root@avnkumar9 ~]#
Step 3: Upgrade via Satellite-managed hosts
After finishing the preparatory tasks and resolving any problems highlighted in the pre-upgrade report, you are ready to execute the in-place upgrade. The following steps guide you through upgrading from RHEL 9 to RHEL 10 using the Leapp utility.
Execute the upgrade by running the following command:
# leapp upgrade --target 10.0
The output will look similar to the following:
END OF REPORT OVERVIEW
========================================================================================================================
Answerfile has been generated at /var/log/leapp/answerfile
[root@avnkumar9 ~]#
[root@avnkumar9 ~]#
[root@avnkumar9 ~]# leapp upgrade --target 10.0
==> Processing phase `configuration_phase`
====> * ipu_workflow_config
IPU workflow config actor
==> Processing phase `FactsCollection`
====> * open_ssl_config_scanner
Read an OpenSSL configuration file for further analysis.
====> * rpm_scanner
Provides data about installed RPM Packages.
Manually reboot the system:
# reboot
The output of the successful upgrade is as follows:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Complete!
=====> * add_upgrade_boot_entry
Add new boot entry for Leapp provided initramfs.
A reboot is required to continue. Please reboot your system.
Debug output written to /var/log/leapp/leapp-upgrade.log
========================================================================================================================
REPORT OVERVIEW
========================================================================================================================
HIGH and MEDIUM severity reports:
1. GRUB2 core will be automatically updated during the upgrade
2. Leapp detected loaded kernel drivers which are no longer maintained in RHEL 10.
3. Berkeley DB (libdbb) has been detected on your system
Reports summary:
Errors: 0
Inhibitors: 0
HIGH severity reports: 2
MEDIUM severity reports: 1
LOW severity reports: 2
INFO severity reports: 3
Before continuing, review the full report below for details about discovered problems and their recommended solutions.
A report has been generated at /var/log/leapp/leapp-report.txt
A report has been generated at /var/log/leapp/leapp-report.json
========================================================================================================================
END OF REPORT OVERVIEW
========================================================================================================================
Step 4: Post-upgrade validation
Once you've completed your in-place upgrade to RHEL 10, verify that your system is running smoothly on the latest kernel.
Confirm the OS and kernel version installed by running the following:
# uname -a
# cat /etc/redhat-release
# subscription-manager list
The output is as follows:
[root@avnkumar9 ~]#
[root@avnkumar9 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux release 10.0 (Coughlan)
[root@avnkumar9 ~]# subscription-manager list
+-------------------------------------------+
Installed Product Status
+-------------------------------------------+
Product Name: Red Hat Enterprise Linux for x86_64
Product ID: 479
Version: 10.0
Arch: x86_64
[root@avnkumar9 ~]# rpm -qa kernel --last
kernel-6.12.0-55.12.1.el10_0.x86_64 Tuesday 20 May 2025 10:29:32 PM
[root@avnkumar9 ~]#
[root@avnkumar9 ~]#
Finally, you can perform post-upgrade tasks to remove the old RHEL 9 packages.
Final thoughts
Using Leapp with Red Hat Satellite to upgrade from RHEL 9 to RHEL 10 ensures a controlled, consistent, and auditable process. By leveraging Satellite’s repository management and activation keys, organizations can streamline upgrades to registered systems easily. If you've tried upgrading with Satellite 6.17, share your experience with us.