This collection provides Ansible roles you can use to perform RHEL in-place upgrades using the Leapp framework. Successfully executing upgrades at scale across a large RHEL estate demands a customized end-to-end automation approach tailored to meet the requirements of your enterprise environment. Use these roles as the foundation of your RHEL in-place upgrade automation solution.
These are the roles included in the collection. Follow the links below to see the detailed documentation and example playbooks for each role.
analysis- executes the Leapp pre-upgrade phase (or Preupgrade Assistant in case of RHEL 6)upgrade- executes the Leapp OS upgrade (or Red Hat Upgrade Tool in case of RHEL 6)remediate- assists in the remediation of a system
The collection allows for RHEL in-place upgrades for the following RHEL versions while utilizing either Preupgrade Assistant (PA) and RedHat Upgrade Tool (RUT), or Leapp:
- RHEL 6 to RHEL 7 (PA & RUT)
- RHEL 7 to RHEL 8 (Leapp)
- RHEL 8 to RHEL 9 (Leapp)
- RHEL 9 to RHEL 10 (Leapp)
Important
Not all available upgrade paths have to be supported by Red Hat. Please refer to the article RHEL In-place upgrade Support Policy for more information.
The collection may be used for the mentioned RHEL upgrade paths with the minor versions supported by the indicated upgrade utilities (Leapp or PA & RUT). Refer to the Red Hat knowledge solution article Supported in-place upgrade paths for Red Hat Enterprise Linux for the latest support details.
The roles in this collection have been successfully used in a number of different environments including on-prem bare metal servers and VMs pulling RHEL packages from Red Hat CDN repos, Satellite content views, or mirrored repos internal to disconnected networks. Upgrading RHEL on Amazon EC2 instances pulling from bring-your-own-subscription CDN repos or pay-as-you-go RHUI repos have also been tested. Upgrading RHEL on other public clouds should be possible as well after setting the documented role variables as required.
Important
Targeting RHEL 6 nodes requires an Ansible-core version <= 2.12 or Red Hat Ansible Automation Platform with an Execution Environment 2.1, both being end-of-life and not supported.
Targeting RHEL 7 nodes requires an Ansible-core version <= 2.16.
See Ansible Core compatibility with RHEL 7 and RHEL 6 managed nodes and Red Hat Ansible Automation Platform Life Cycle for more information.
Third-party products and packages are not upgraded by the upgrade role. To achieve a complete end-to-end server upgrade, you may need to implement custom automation beyond the scope of this collection to perform tasks required for the upgrade or removal/reinstall of any impacted third-party tools and agents, for example Veritas Cluster, SAP HANA, etc. Likewise, the role does not upgrade packages installed from non-RHEL repositories such as Red Hat Software Collections, EPEL, RPM Fusion, etc.
Having said that, many application workloads will benefit from RHEL Application Compatibility support such that they will still function correctly after a RHEL in-place upgrade if simply left untouched. Of course, the only way to know for sure is to run a test upgrade and then assess if there is any unexpected impact to your app. Pro tip: Test in your lower environments before moving on to production.
Example playbooks can be found here.
Before using this collection, you need to install it with the Ansible Galaxy command-line tool:
ansible-galaxy collection install infra.leappYou can also include it in a requirements.yml file and install it with ansible-galaxy collection install -r requirements.yml, using the format:
---
collections:
- name: infra.leapp
version: "*"
- name: fedora.linux_system_roles # or redhat.rhel_system_roles see roles README for more details
version: "*"Note that if you install the collection from Ansible Galaxy, it will not be upgraded automatically when you upgrade the ansible package. To upgrade the collection to the latest available version, run the following command:
ansible-galaxy collection install infra.leapp --upgradeYou can also install a specific version of the collection, for example, if you need to downgrade when something is broken in the latest version (please report an issue in this repository). Use the following syntax to install version 1.0.0:
ansible-galaxy collection install infra.leapp:==1.0.0See Using Ansible collections for more details.
We are a fledgling community and welcome any new contributors. Get started by opening an issue or pull request. Refer to our contribution guide for more information.
Please open a new issue for any bugs or security vulnerabilities you may encounter. We also invite you to open an issue if you have ideas on how we can improve the solution or want to make a suggestion for enhancement.
This Ansible collection is just one building block of our larger initiative to make RHEL in-place upgrade automation that works at enterprise scale. Learn more about our end-to-end approach for automating RHEL in-place upgrades at this blog post.
See the changelog.
MIT
See LICENSE to see the full text.