After completing this section, students should be able to upgrade an existing RHEL 7 server to RHEL 8.
Leapp is an extendable framework designed to assist administrators with application modernization. It supports Red Hat Enterprise Linux, CentOS, and Fedora, and is the preferred method for in-place upgrades from RHEL 7 to RHEL 8.
Leapp Modernization Framework
Enables users to modernize existing workloads without disrupting them.
Three methods: upgrade in place, migrate to new place, or containerize.
Designed modular architecture to replace the preupgrade-assistant tool.
Various migration strategies and application-specific logic are kept in independent modules or plug-ins.
Leapp is message-driven, for passing data between actors. The execution of actors is dependent on the data produced by other actors running before them.
Leapp is the newly designed modular architecture to replace the preupgrade-assistant tool, whose architecture is too restrictive for the complexity of modern application upgrade requirements. Actors will specify what types of data they require and provide on their input and output ports respectively, and a dependency solver will produce a dependency graph to satisfy those requirements, that is, connect output ports to appropriate input ports. The implementation of actors is done in a shell, with a Python wrapper to present the proper interface for the (Python-based) framework. The shell parts are executed using Ansible (as Ansible modules) and use JSON for communication.
Information about various migration strategies and application-specific logic is kept in independent modules or plug-ins instead of single source files. Modules and plug-ins can be maintained by experts on a particular application, independently of the maintenance of the core Leapp application. Leapp solves preupgrade-assistant limitations by adding module dependencies and methods for information passing between modules. Leapp is message-driven, for passing data between actors. The execution of actors is dependent on the data produced by other actors running before them. This is in a contrast with Ansible where parameters have to be specified in the playbooks before execution.
Leapp Components
Workflow: describes an entire upgrade process.
Phase: a section of the workflow dedicated to a specific part of the upgrade.
Stage: phases are broken into stages, Before, Main, and After.
Actor: a step in the workflow that performs a task.
Actors can be tagged which allows them to be included in a workflow automatically by the framework.
Tag: allows the framework to locate and execute actors.
Message: used to transfer information between actors.
Model: defines the structure of the data sent in messages.
Models use Topics to group the data.
Topic: defines the subject area for Model data.
Repository: holds the definitions for all Actors, Tags, Topics, and Workflows.
Leapp Status
Leapp is under heavy development, and is not currently suitable for all upgrades.
Leapp Limitations
Currently Leapp only works on minimal Red Hat Enterprise Linux 7 installations.
Leapp only supports systems with single network interfaces; no bridges, bonds, or teams.
Leapp only supports systems with simple storage configurations; no RAID, multipath, UEFI, or encryption.
Leapp has no support for layered products; but modules can be written by any expert.
The only supported architecture is x86_64.
Watch this video as the instructor shows how to perform an upgrade from RHEL 7 to RHEL 8 using Leapp.
Leapp Demonstration
You can view the video from workstation in both physical and online classrooms.
Copy and paste this URL into the Firefox browser running on your workstation system:
http://materials.example.com/video/RH354-RHEL8.0-upgrade-using-leapp-mweetman-201902.webm
Watch this video as an instructor performs an upgrade from RHEL 7 to RHEL 8 using Leapp.
For more information, refer to the Upgrading to RHEL 8 guide at https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/upgrading_to_rhel_8