I spent some time at the tail end of 2021 doing a major overhaul of my home lab. On the LAN-side and pretty central to everything, is a Dell server running KVM for virtualisation. The most significant VM running there, is my identity management system – FreeIPA. At the time, I thought the latest version of CentOS would be the best choice for stability, especially in relation to FreeIPA. So I ran with CentOS 8 on many servers, including the two aforementioned hosts, and although far from fully complete – my network in regards to centralised authentication for Linux devices, NFS/SMB files shares, CA management, DNS, etc., was completed and has been running without issue for over four months now.
However! The plan was, and still is, to update multiple systems at the same time using Ansible. I started writing some playbooks when life kind of got in the way and I had to put the continuation of my network overhaul on hold. The point is – although I was using my network everyday, I hadn’t been keeping these two hosts up-to-date. And when I did get around to doing it, CentOS 8 was EOL and I’d been without updates for over three months!. Of course, CentosOS became EOL as of 31st December 2021 but I’d forgotten about that whole debacle.
Needles to say, this caused me quite a bit of a headache while I researched what to do. My background is in RHEL, so historically I’ve always been a big fan of CentOS/RHEL for most server roles – although I do rate Ubuntu LTS versions in many situations. I decided the best solution for me would be to migrate to AlmaLinux and see what the migration process looked like. And I’m glad I did!
The actual process itself couldn’t be simpler! I followed a guide I found here but essentially it’s just:
$ sudo -i
# curl -O https://raw.githubusercontent.com/AlmaLinux/almalinux-deploy/master/almalinux-deploy.sh
# chmod -v +x almalinux-deploy.sh
# bash almalinux-deploy.sh
…then wait a bunch of time, and:
# dnf distro-sync -y
Naturally I was pretty concerned as I had no idea how well this would work. Surely something would fail and require a manual fix! I mean, that would actually be considered a success by me; my actual expectation was the migration script would bomb-out midway through complaining about not being about to find a replacement package or something.
Anyway, I decided to start with the KVM guest – my FreeIPA server. Obviously I took backups first. Both a file-level backup, and a snapshot from the KVM host. I actually tested the whole process first to make sure the snapshots and revert steps worked as expected should they be needed. But unbelievably they weren’t! I ran the steps without a single issue! I did wonder if I should first update to the final EOL state before trying the migration – but I didn’t even need to do that. It jut worked and FreeIPA (so far) seems as good as gold….or even Bitcoin 😉
Buoyed by the success, I went ahead with the migration of the KVM host server. Again, I did a backup and an LVM shapshot of the live system before the migration – but once again it worked without a glitch!! The GUI, libvirt, cockpit, FreeIPA client integration – it all continued to worked without issue. And until I rebooted – no downtime on the FreeIPA VM.
Rarely do migrations go so well so much respect to the AlmaLinux team for writing such a great script and making the process so reliable. What I thought was going to be a major headache – actually turned out to be pretty quick and painless for me on my setup.
So I guess that’s a thank you and good night to CentOS then. Good job I’m quickly becoming a fan of AlmaLinux! 🙂