Case
In-place distribution upgrade
In developmentRocky Linux 9 to 10 on a running machine, with all packages from our own patch server.
What & why
One Ansible playbook that lifts a running Rocky Linux 9 machine in place to version 10. All packages come from our own Foreman/Katello server, not from the internet, so the upgrade uses the same controlled content as the regular patch process.
The usual route for such an upgrade fell away: the upstream migration project dropped Rocky Linux, and the migration data needed for this version jump is not coming. Maintaining that data ourselves is an ongoing burden for little gain within the same distribution family. So we chose the simpler path, and wrote down explicitly which safety nets we give up with it — an offline transaction, a broad pre-flight blocker analysis, and a curated package translation — plus how we intend to bring those back step by step.
Approach
- One playbook, callable per machine, with a check mode that verifies the known blockers up front.
- All content from our own Katello server; not a single package from upstream.
- A snapshot of the virtual machine as a fallback path, instead of relying on the atomic operation the dropped route offered.
- Whatever old packages remain afterwards are recorded rather than swept under the rug.