Upgrade Centos 7 to Alma Linux 9.4 hot upgrade

You should have WINSCP with Putty, Webmin, and EditPad Lite launch default as WINSCP editor.  This was done on a vpsdime VPS running Open VZ 7 starting from Centos 7.  Webmin will detect and help upgrade file configurations also.  For those who do not know CPanel is its own funky distribution using apache2 and Debian and Ubuntu use are different also.

 

I am on AlmaLinux 9.4 now.  It is not a journey for the faint at heart, but being one of the few Novell Unixware certified engineers, I was working with  UNIX when Linux was a twinkle in Linus Torvalds ' eye. 

 

That said it is a four step upgrade process that is only possible because of the  rpm package system. 

 

Of course before you do anything, you should create and configure an Amazon S3 account (not covered here - you can figure it out at Amazon) and push a tarball copy of your server up there.  Once you have configured it to AWS properly this command will push a tarball of your server up without saving anything local by piping a copy  40 gig will coimpress to about 12 gig

tar  --exclude='/proc' --exclude='/lost+found' --exclude='/mnt' --exclude='/sys'  -cvpzf  - / | aws s3 cp - s3://<yourAmazonbucketname>/backup_name.tgz

 

Once that is done, if you need to restore a crap canned server, you will need to reinstall a new OS and aws connectivity to AlmaLinux 9 (or manually recreate proc, lost+found, mnt and sys) and expand the tarball in root dirrectory

 

READ this entire page before doing ANYTHING.  Here is the Almalinux upgrade page - only good to version 8 - that is 8.9  => https://wiki.almalinux.org/documentation/migration-guide.html#migrating-... and here is the command to get started on the Almalinux 9 upgrade - unofficial => dnf install https://repo.almalinux.org/almalinux/{almalinux-gpg-keys-latest-9.x86_64.rpm,almalinux-repos-latest-9.x86_64.rpm,almalinux-release-latest-9.x86_64.rpm}   See the Rocky linux 8 to 9 upgrade writeup linked further down.  Here is the ROOT of the Almalinux repo => https://repo.almalinux.org/almalinux/

 

Fair warning if you use Postfixadmin and php-fpm see this => https://github.com/postfixadmin/postfixadmin/issues/830

 

If you are using Redis, EL9 upgrades from version 5 to 6 which causes a database incompatibility that assuming the conf is correct requires you go to /usr/lib/redis and delete the database there and then it will launch

 

If you use mod_evasive it was only found on one third party  repo called "raven's repo".  Of course use  "  dnf list installed | grep EL8 " or el7 to find what old version files are left behind..   Look them up by name to manually upgrade

 

rpmconf depending on the rpm package and what options you select will do a rpmsave of your old config and or place an rpmnew file of the current shipping default  config..  For instance Mariadb apparently does neither and may replace your my.cnf file completely if you have not manually saved a dated working backup.  Mariadb has deprecated some innodb conf commands the status will show telling you to remove from the my.cnf file

 

Other rpm packages you may need to use rpmfind.net for since EPEL 9 repository seems will not install correctly on AlmaLinux 9  - at least on mine it "says" "Enterprise Linux 9" but really calls to the  EPEL 8 repository.   That will create "nothing provides" errors, and the rpm system analyzes the version by the package number not the EL8 or EL9 number. Sometimes you may need to use - - nogpgcheck to make it install.

 

The key is to not reboot until a sane os level is accomplished in upgrade.  The huge rpm upgrade  transaction will fail  repeatedly by a file package missing a dependency that must be manually found online and applied or a new repo added, but the issue is usually the old disabled repo being needed where the dnf - - allowerasing  or  - - nobest options usually help with the upgrade of single packages.  However, some will only work by an erasure with - - nodeps option using the rpm command and then re-run  the upgrade transaction.  Eventually it will complete, but the rpmconf package is not consistent on o

 rpmsaving or rpmnew 'ING config.  Manually backup by saving a dated in the title copy of configuration files like erc/my.cnf et cetera

 

Then there is the rude surprise that sha-1 is no longer supported and that iptables is gone. 

 

Anyone who uses a keypair for ssh login, finds it broken, adding a complexity or requiring enabling legacy cryto policy.  Then one has to install iptables legacy and use alternatives to set iptables active and usable again.  If that is not bad enough firewalld does not work because nftables does not work apparently because in the code looking for "python-tables" instead of "python3-nftables" .  In the meantime of course no ports are open needed for the previous configured os.   See https://unix.stackexchange.com/questions/668733/correct-way-to-switch-back-to-iptables-on-debian-10-or-11

 

Finally one must be careful erasing packages as often libraries needed may cripple the os, like audit and audit-libs which will cripple dnf and rpm-libs which will break the rpm system itself. If you get "nothing provides errors" followed by reference to a package from the old os, that means a repo of the old os is still enabled.  Manually upgrade it or disable it.

 

To make this work one MUST have WinSCP with Putty working and Webmin because those are the safety.   If one breaks sshd or looses internet connection  WinSCP the Webmin with a direct server connection still can use a terminal and upload files to the server to fix a mistake.  But never reboot until you have a full sane os.  Vpsdime also has a crippled terminal in the client area which kicks you out every minute if inactivity or so

 

The Elevate or leapp project will not work on OPENVZ because it uses the grub bootloader

 

This works because it is a hot upgrade all the way by rpm files.  The final upgrade from AlmaLinux 8.9 to 9.4  uses the AlmaLinux 9 repo, but it is imperative to have other repos enabled manually to 9 so files can be found.   The basic process is found on a Rocky linux 8 to 9 upgrade writeup at 

 

https://phoenixnap.com/kb/upgrade-rocky-linux-8-to-9#ftoc-heading-1  except using the AlmaLinux repo instead. 

 

Once the upgrade transaction completes the one file which fails is MARIADB-server ONLY  which requires a manual erase and install of the upgraded version. 

 

So  a hot upgrade can be done with minor config checks and fixes  (see my previous reply describing the first three steps)  in four steps but is not for the faint of heart or neophyte. 

 

I started using this upgrade to Centos 8.5.2111 => https://www.tecmint.com/upgrade-centos-7-to-centos-8/  but beyond the base os, repo files do not exist in the vault 8.5.2111, repositories.  I began adding stream os 8 repos which has them and manually installing other rpms.  It works but at one point the remi repo upgrades to EL8. 9  which of course the kernel is not there for.

 

After the two failures trying to get a sane fully upgraded transaction check complete  version 8.5.2111 which does not exist but instead one MUST jump to  Centos Stream 8 OS to do so. .  Then I found  this which shows the way to do the full upgrade at https://techviewleo.com/how-to-convert-from-centos-to-centos-stream/ and I found that Centos Official repo headed states this and provides the command to do so at https://www.centos.org/centos-stream/ at the bottom of the page.

 

Support ends May 31, 2024 - the end of this month however.  By then the repos may be archived.  While some packages may need to be erased to install manually the upgraded package, NEVER erase rpm-libs or audit and audit-libs or you will loose rpm  and dnf capability necessitating manual expand of an rpm and copying the files and make symlinks to make it work again. 

 

If you can get to a sane minimal 8.5.211 install you can try the the AlmaLinux-deploy.sh script.  It will tell if it will work and then launch. 

 

Alma Linux then has two tools to get to version 9.  Their "Elevate" rpm and repo, and the Alma Linux-deploy.sh script  which supports OpenVZ while the "Elevate" rpm while does not and needs a grub boot manager

 

Once on Centos 8 Stream latest - while not clear it appears the Alma Linux-deploy shell may be able to get the system to Alma Linux 9.  See https://github.com/AlmaLinux/AlmaLinux-deploy.sh at least looking at the script code it appears to present an option.  At least on Centos Stream  8 others have upgraded on the fly to Centos Stream 9  https://serverfault.com/questions/1157913/is-upgrading-from-centos-stream-8-to-centos-stream-9-now-straightforward

 

The only option is - d  for downgrade upgrade to AlmaLinux 8.9 if you go to Centos 8 stream to get a sane os

 

The issue is some other repos do not convert and must be done manually, for example codeit has bad keys and had to be done direct installs for upgrade from the repo itself. Mariadb similarly. 

 

This shows why the "Elevate" process won't work on OpenVZ  https://phoenixnap.com/kb/migrate-centos-to-almalinux

 

This post illustrates the problem I ran into even though the correct gcc was installed, but for me this was a not installed version 8 rpm-libs.  See https://stackoverflow.com/questions/74959956/how-to-upgrade-dnf-to-el8-from-el7-after-upgrading-centos-from-7-to-8-stream

 

 It appears forceful installing dnf and pythondnf version EL8 to allowerasing may avoid this. 

 

You should start the whole thing with a full server backup and maybe also uploading a full server backup tarball to Amazon S3

 

Do not reboot until you get a full working upgrade with any further action when dnf upgrade is run.  Also if you have keypair ssh login when you switch to AlmaLinux 9 make sure the keys are sha-2 or set the cryto policy to legacy or you will be locked out on reboot. 

 

 

AttachmentSize
Image icon future_head485.48 KB
PDF icon Congress unclassified UAP reort375.56 KB
PDF icon MMWR_7_31_2021179.61 KB
English