Migrate CentOS 7 to Ubuntu 24.04
Some teams leave CentOS 7 for Ubuntu: a support contract from Canonical, a toolchain built on Ubuntu elsewhere, or a wish to stop following Red Hat's choices. No tool upgrades a CentOS host into Ubuntu in place. The package format, the package manager and many names change, so the only route is a new host with the old one's work carried across.
That is the move vrtmv plans. It reads the CentOS 7 host, translates each package, enabled service and configuration file it knows to Ubuntu 24.04's names, and builds the new host. Services such as httpd and sshd run under other unit names, so scripts and monitoring that name them change too.
Where CentOS 7 stands
CentOS 7 reached its end of life in June 2024.
Services that change
chronyd.serviceischrony.serviceon Ubuntu 24.04.crond.serviceiscron.serviceon Ubuntu 24.04.dhcpd.serviceisisc-dhcp-server.serviceon Ubuntu 24.04.httpd.serviceisapache2.serviceon Ubuntu 24.04.iptables.serviceisnetfilter-persistent.serviceon Ubuntu 24.04.mysqld.serviceismysql.serviceon Ubuntu 24.04.sshd.serviceisssh.serviceon Ubuntu 24.04.redis.serviceisredis-server.serviceon Ubuntu 24.04.smb.serviceissmbd.serviceon Ubuntu 24.04.
Databases on each side
- PostgreSQL: 9.2 by default on CentOS 7, 16 by default on Ubuntu 24.04. The data moves by an in-place
pg_upgradeor a dump and restore, with the database stopped.
Repositories
The packages come from main, multiverse, restricted and universe, enabled by default. Vendor repositories the source used are named in the plan, not silently enabled.
Security defaults
CentOS 7 confines services with SELinux, enforcing by default; Ubuntu 24.04 uses AppArmor instead, enforcing by default. SELinux policy does not carry over to AppArmor: local SELinux rules on the old host need an AppArmor equivalent on the new one, or a decision that they are no longer needed.
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.
- Web server layout. Ubuntu's Apache keeps sites and modules under
/etc/apache2, switched on witha2ensiteanda2enmod, not under/etc/httpd/conf.d; check each virtual host on the new host before cut-over. - 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.
- Monitoring and scripts that name units. Checks for
httpd,sshd,crondorsmbneed the Ubuntu unit names shown above.
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 Ubuntu 24.04 system. All 38 packages the plan promised were installed on the target, and all 10 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 Ubuntu 24.04 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 Ubuntu 24.04, 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 Ubuntu 24.04 in place?
No. vrtmv reads the CentOS 7 host without an agent and changes nothing on it. It builds a fresh Ubuntu 24.04 host from the plan, so the old host keeps running until you cut over, and it stays your way back.
Does Ubuntu 24.04 need a subscription?
No. The packages come from main, multiverse, restricted and universe, enabled by default.
Is CentOS 7 still supported?
CentOS 7 reached its end of life in June 2024.
How do I show that the Ubuntu 24.04 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
- Every migration guide
Moving CentOS 7 hosts to Ubuntu 24.04? 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