Migration guide

Move RHEL 7 to RHEL 9 in one step

RHEL 7 left maintenance in June 2024, and the Extended Life Cycle Support that keeps it patched is a paid add-on with an end date of its own. Red Hat's in-place tool, Leapp, upgrades one major release at a time, so getting a host to RHEL 9 means two Leapp runs, each with its own pre-upgrade report, inhibitors to clear and reboot, and the host goes through RHEL 8 on the way.

vrtmv goes straight from the RHEL 7 host to a fresh RHEL 9 host: it reads the old machine, plans the new one from the Index, and builds it, while the old one keeps running until you cut over. You keep your Red Hat subscriptions; only the host is new.

Where RHEL 7 stands

RHEL 7 left standard support in June 2024; past that it is patched only under an extended-support subscription.

Packages that change name

Of the packages the Index translates for this move, these arrive on RHEL 9 under another name. vrtmv installs the new name and carries the configuration across; nothing on the old host is renamed by hand.

Services that change

Databases on each side

Repositories

Every RHEL 9 repository needs a subscription: AppStream, BaseOS, CodeReady Builder and Supplementary. The host has to be registered before the rebuild can install anything. 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.

What the parity run showed

vrtmv's conformance run for this pair read the inventory from a RHEL 7 system, planned the move and applied the plan to a fresh RHEL 9 system. All 16 packages the plan promised were installed on the target, and all 3 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 RHEL 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 a RHEL 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 RHEL 7 host without an agent and changes nothing on it. The Index translates its packages, services and settings to RHEL 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 RHEL 7 to RHEL 9 in place?

No. vrtmv reads the RHEL 7 host without an agent and changes nothing on it. It builds a fresh RHEL 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 RHEL 9?

11 of the packages the Index translates for this move arrive on RHEL 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 RHEL 9 need a subscription?

Yes. Every RHEL 9 repository needs one: AppStream, BaseOS, CodeReady Builder and Supplementary. The new host has to be registered before the rebuild can install anything.

Is RHEL 7 still supported?

RHEL 7 left standard support in June 2024; past that it is patched only under an extended-support subscription.

How do I show that the RHEL 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

Moving RHEL 7 hosts to RHEL 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