In this article, we will be discussing the process of migrating a Linode VM from CentOS 8 to Rocky Linux 8. The server in question runs a simple workload which includes PHP 8.1, MariaDB server, Nginx, SELinux and firewalld.
Rocky Linux is a highly regarded open-source operating system and is seen as a strong replacement option for CentOS 8. It is a 100% binary-compatible release that uses Red Hat Enterprise Linux (RHEL). In this article, we will be using a shell script provided by the Rocky Linux project to perform the migration.
Step 1: Backup CentOS 8
Before starting the migration process, it’s important to backup your data. Although the server in question has nightly backups, a snapshot was taken just in case anything goes wrong during the upgrade process.
Step 2: Installing Updates on CentOS 8
To install updates on the CentOS 8 server, log in using the ssh command:
ssh user@ixcraft-php8-app1
Next, use the dnf command to apply all pending updates:
sudo dnf update
Finally, reboot the Linux box using the shutdown command or reboot command:
sudo reboot
Step 3: Installing Git Client on CentOS 8
Git will be required to install the migration script. To check if git is already installed on the server, execute the type command:
type -a git
If git is not installed, use the dnf utility to install it:
sudo dnf install git
type -a git
Step 4: Migrating from CentOS 8 to Rocky Linux
Clone the repo to install the migration tool called rocky-tool:
cd /tmp/
git clone https://github.com/rocky-linux/rocky-tools.git
Change the directory using cd command where rocky-tools were cloned:
cd /tmp/rocky-tools/migrate2rocky
Set up executable permissions using the chmod command:
chmod -v +x migrate2rocky.sh
Start the migration from CentOS 8 to Rocky Linux by typing the migrate2rocky.sh command:
./migrate2rocky.sh -r
Follow the on-screen instructions and wait for the migration process to finish. Once it is done, reboot the box:
sudo systemctl reboot
Step 5: Verification
Verify the version to ensure that the server has been switched to Rocky Linux:
cat /etc/rockylinux-release
cat /etc/centos-release
hostnamectl
Make sure all the processes are running:
ss -tulpn | grep :80
ss -tulpn | grep :3306
Use the egrep command to filter out PHP, MySQL and Nginx processes:
ps aux | grep -E 'php|nginx|mysql'
ps aux | grep php-fpm
Ensure that no errors were reported by the system:
dmesg
dmesg | grep -Ei 'warn|error|notice|fail'
tail -f /var/log/my_app_1/log_file
tail -f /var/log/nginx/php_log
In conclusion, it was easy to migrate from CentOS 8 Linux or Red Hat Enterprise Linux 8 to Rocky Linux 8. Do check the Rocky Linux project website and Github link for more information.