Migrate CentOS 7 to AlmaLinux 9
AlmaLinux 9 is where most CentOS 7 estates land: free, a rebuild of RHEL 9, and supported for years yet. The trouble is the distance. It is two major releases from CentOS 7, and an in-place tool such as AlmaLinux's own ELevate goes one major release at a time, so each host passes through EL8 on the way, with an upgrade and a reboot at each step and a machine that carries every leftover of the last ten years.
vrtmv does it the other way: it reads the CentOS 7 host, writes a plan for a fresh AlmaLinux 9 host, and builds that. The sections below are what that plan has to deal with for this pair.
Where CentOS 7 stands
CentOS 7 reached its end of life in June 2024.
Packages that change name
Of the packages the Index translates for this move, these arrive on AlmaLinux 9 under another name. vrtmv installs the new name and carries the configuration across; nothing on the old host is renamed by hand.
authconfigbecomesauthselect. EL8 removed authconfig.dhclientbecomesdhcp-client.dhcpbecomesdhcp-server.iptablesandiptables-servicesbecomeiptables-nftandiptables-nft-services.java-1.8.0-openjdkandjava-1.8.0-openjdk-develbecomejava-17-openjdkandjava-17-openjdk-devel.mailxbecomess-nail. EL9 removed the mailx package (it survives on EL8).ntpbecomeschrony. EL8/EL9 removed ntp.ntpdatebecomeschrony. EL8/EL9 removed ntpdate.pkgconfigbecomespkgconf. EL8 replaced pkgconfig with pkgconf, which provides the pkg-config command and declares Provides: pkgconfig for compatibility.
Services that change
network.serviceis replaced byNetworkManager.service: the enabled service is moved to its successor, not left pointing at a unit that no longer exists.ntpd.serviceis replaced bychronyd.service: the enabled service is moved to its successor, not left pointing at a unit that no longer exists.
Databases on each side
- PostgreSQL: 9.2 by default on CentOS 7, 13 by default and 15, 16, 18 as module streams on AlmaLinux 9. The data moves by an in-place
pg_upgradeor a dump and restore, with the database stopped.
Repositories
The packages come from AppStream, BaseOS and Extras, enabled by default. CRB is available but off; the plan says when a package needs it turned on. Vendor repositories the source used are named in the plan, not silently enabled.
What needs your decision
vrtmv does not guess at these. Each one is a line on the plan's punch list, for you to settle before the rebuild runs.
- Java 8 applications. The Index moves OpenJDK to 17; an application certified only on 8 needs its vendor's word, or a Java 8 runtime you choose.
pythonandpython-libshave no package on AlmaLinux 9. Source must port to Python 3 before migration.authconfigtoauthselectis not a drop-in replacement; the plan lists its settings for review.ntptochronyis not a drop-in replacement; the plan lists its settings for review.ntpdatetochronyis not a drop-in replacement; the plan lists its settings for review.
What the parity run showed
vrtmv's conformance run for this pair read the inventory from a real CentOS 7 disk, planned the move and applied the plan to a fresh AlmaLinux 9 system. All 42 packages the plan promised were installed on the target, and all 14 carried configuration files landed. Your parity report gives the same accounting for your own hosts.
Should this become a container?
Usually not. A container image runs one command, with no init and no scheduler, on the kernel of the machine it runs on. A CentOS 7 host that runs one long-lived service, keeps its data in directories you can mount as volumes and reads its config from files is a candidate for one; start the image and test that service before you plan a cutover on it. A host that runs several services, keeps a database on its own disk or runs cron jobs is better rebuilt as an AlmaLinux 9 machine, which is what vrtmv does by default.
Before you choose, vrtmv assess runs its container feasibility checks on the source (kernel modules, the entrypoint, local state, scheduled jobs and software no package installed) and prints what each one found. The full fit lists, and what breaks after the image runs.
How vrtmv does it
vrtmv reads the CentOS 7 host without an agent and changes nothing on it. The Index translates its packages, services and settings to AlmaLinux 9, and the plan lists every change and every decision before anything runs. The new host is built from that plan, and the parity report compares it with the old one, so you can show an auditor what came across.
Questions about this move
Does vrtmv upgrade CentOS 7 to AlmaLinux 9 in place?
No. vrtmv reads the CentOS 7 host without an agent and changes nothing on it. It builds a fresh AlmaLinux 9 host from the plan, so the old host keeps running until you cut over, and it stays your way back.
Which packages change name on AlmaLinux 9?
11 of the packages the Index translates for this move arrive on AlmaLinux 9 under another name, for example authconfig becomes authselect and dhclient becomes dhcp-client. vrtmv installs the new name and carries the configuration across, and the plan lists each one.
Does AlmaLinux 9 need a subscription?
No. The packages come from AppStream, BaseOS and Extras, enabled by default. CRB needs no subscription either.
Is CentOS 7 still supported?
CentOS 7 reached its end of life in June 2024.
How do I show that the AlmaLinux 9 host matches the old one?
With the parity report. vrtmv verify checks the rebuilt host against the plan, from its package database and the carried configuration paths, and exits non-zero on any parity gap, so cutover can be gated on it. Keep the source inventory, the plan and the report with the change record.
Read next
- Install vrtmv: one static binary, checked against its signature.
vrtmv migrate: the plan, and the role that builds the new host.vrtmv verify: the parity report.- Container output: what decides whether vrtmv writes a
Containerfile. - Pricing: what a migration costs after the free ones.
- Getting off CentOS 7 without lying to your auditors
- Leapp or ELevate failed? Rebuilding a CentOS 7 server on EL 9 instead
- Rocky Linux vs AlmaLinux: which should you actually run?
- Every migration guide
Moving CentOS 7 hosts to AlmaLinux 9? Run vrtmv on one of them and read the plan. Your first migrations are free, or send us the parity report and we will go through it with you.
Create a free account Get a free assessment