RHEL 10
In 2019, Red Hat released its Enterprise Linux 8 and changed to a more predictable major version lifecycle: every three years, a new major version will be released. Following this schedule, RHEL 10 should be released mid-2025. We took a look at the already available RHEL 10 Beta (codename «Coughlan») and in this blogpost, we share our insights with you.
Installation
Download the .iso image (if you have a valid subscription), attach it to your server, and boot it. Everything looks quite familiar. Choose your language, disk layout, everything else you are used to doing, and start your installation. We encountered no significant changes compared to RHEL 9.
What stays the same?
Once the system is booted and we are logged in, we feel pretty much at home. Still systemd for handling services, still dnf to install packages, firewalld is there, SELinux in enforcing mode… Everything looks quite familiar.
So what changed?
The Changes
You can read the detailed release notes on the Red Hat website. From our point of view, there are no major changes. However, we want to mention a few:
RPM modularity
In RHEL 10, Application Streams don’t use the RPM modularity anymore. Application Streams are available in the RPM format, as Software Collections, or as Flatpaks.
Red Hat Connect (rhc)
The handling of subscriptions was moved to Red Hat’s Hybrid Cloud Console (think RHN in old RH speak) and the subscribing procedure of a server was simplified: The tool rhc lets you connect a server to Red Hat’s console by providing your Red Hat account and password. Once your system is connected, there’s no need to attach subscriptions and pool-IDs. All your account’s subscriptions and its respective RPM repositories are available. You would use this as follows:
root@rhel10.puzzle.ch:~# rhc connect Connecting rhel10 to Red Hat. This might take a few seconds. :q Username: puzzle Password: ● Connected to Red Hat Subscription Management ● Connected to Red Hat Insights ● Activated the Remote Host Configuration daemon ● Enabled console.redhat.com services: remote configuration, insights, remediations, compliance Successfully connected to Red Hat! Manage your connected systems: https://red.ht/connector root@rhel10.puzzle.ch:~# subscription-manager repos --list | grep highavailability-beta-RPMs Repo ID: rhel-10-for-x86_64-highavailability-beta-RPMs root@rhel10.puzzle.ch:~# subscription-manager repos --enable=rhel-10-for-x86_64-highavailability-beta-RPMs Repository 'rhel-10-for-x86_64-highavailability-beta-RPMs' is enabled for this system. root@rhel10.puzzle.ch:~# dnf repolist Updating Subscription Management repositories. repo id repo name rhel-10-for-x86_64-appstream-beta-RPMs Red Hat Enterprise Linux 10 for x86_64 - AppStream Beta (RPMs) rhel-10-for-x86_64-baseos-beta-RPMs Red Hat Enterprise Linux 10 for x86_64 - BaseOS Beta (RPMs) rhel-10-for-x86_64-highavailability-beta-RPMs Red Hat Enterprise Linux 10 for x86_64 - High Availability Beta (RPMs) root@rhel10.puzzle.ch:~#
This simplification of the subscription process was initiated some time ago and is now being given further weight with RHEL 10.
Other Changes
- Network teaming is removed, only network bonding is supported
- Support for ifcfg files is removed
- Quadlet supports the seamless integration of Pods into systemd
- Redis is replaced by valkey
- ISC DHCP is replaced by Kea DHCP
And: Ansible runs as always!
So the final and most important question is: Do our Ansible Playbooks still run on the server? The answer is: Yes! RHEL 10 beta comes with Python 3.12.5 and our Ansible Playbooks ran flawlessly once we ssh-copy-id’ied our Ansible users ssh publickey to the server and enabled the user for privilege escalation via sudo.
[ansible@controllnode.puzzle.ch]$ ansible-playbook plays/site.yml -i inventories/rhel10 PLAY [site] ********************************************************************************************************** TASK [Gathering Facts] ************************************************************************************************* ok: [rhel10] TASK [base : Enable SELinux] ******************************************************************************************* ok: [rhel10] TASK [base : enabled and start firewalld] ****************************************************************************** ok: [rhel10] TASK [base : enable and start chrony] ********************************************************************************** ok: [rhel10] TASK [base : set hostname from inventory] ****************************************************************************** ok: [rhel10] TASK [base : set root pw] ********************************************************************************************** changed: [rhel10] TASK [base : ensure openssh installed] ********************************************************************************* ok: [rhel10] TASK [base : ensure configure sshd] ************************************************************************************ changed: [rhel10] TASK [base : ensure sshd started & enabled] **************************************************************************** ok: [rhel10] TASK [base : flush handlers] ******************************************************************************************* RUNNING HANDLER [base : reload sshd] *********************************************************************************** changed: [rhel10] PLAY RECAP ************************************************************************************************************* rhel10 : ok=7 changed=3 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 [ansible@controllnode.puzzle.ch]$
Conclusion
We are looking forward to RHEL 10 and don’t expect any major disruption. The changes seem not to be to substantial and we expect the migration to run smoothly. Contact us if you are interested in our help in elevating your infrastructure to the latest major version of Red Hat Enterprise Linux!