puIn 2020 kondigde Red Hat aan dat CentOS 8 geen support meer krijgt na eind 2021 en wordt opgevolgd door CentOS Stream, zie ook ons artikel 'Wat is CentOS Stream'. CentOS 7 wordt langer ondersteund tot 30 juni 2024.
Wil je je CentOS 7 installatie upgraden naar een nieuwer besturingssysteem, maar is een herinstallatie van je VPS geen wenselijke optie? In deze handleiding laten we zien hoe je je VPS upgrade van CentOS 7 naar AlmaLinux 8, Rocky Linux 8, CentOS Stream 8, EuroLinux 8, of Oracle Linux 8. Van daaruit kun je op zijn beurt het betreffende besturingssysteem ook upgraden naar versie 9, dus bijvoorbeeld AlmaLinux 8 naar AlmaLinux 9.
Voor het upgraden maken we gebruik van de door AlmaLinux ontwikkelde tool 'Elevate'. Hiermee kun je CentOS 7 naar verschillende op RHEL gebaseerde distributies upgraden, zie ook dit overzicht. Elevate is reeds succesvol gebruikt door vele bedrijven over de hele wereld om talloze productieservers zonder enige issues te upgraden van CentOS 7 naar een nieuwer besturingssysteem.
- De stappen in deze handleiding zijn succesvol getest op up-to-date installaties van CentOS 7 en DirectAdmin met CentOS 7.
- Deze handleiding werkt ook voor Plesk-installaties. Optioneel kun je ook Plesk's eigen implementatie van Elevate gebruiken.
- cPanel heeft zijn eigen afgeleide (fork) van Elevate. De instructie voor het gebruik daarvan vind je op de website van cPanel.
- CentOS 7 kan gebruikt worden op een VPS met 1GB RAM. Nieuwere besturingssystemen vereisen in principe 4GB RAM. Dit betekent dat ongeacht het formaat van je huidige VPS er meer RAM gebruikt wordt na de upgrade van je besturingssysteem. Het is dan ook raadzaam om vooraf met het top-commando te controleren hoeveel je nu gebruikt en te bepalen of je meer RAM nodig hebt.
- De stappen in deze handleiding kunnen gebruikt worden om CentOS 7 naar EuroLinux en Oracle Linux te upgraden. Let wel dat wij deze besturingssystemen zelf nog niet aanbieden en er dan ook geen ondersteuning op bieden.
- Maak een snapshot voor je begint aan het upgrade proces zodat je daar op terug kunt vallen mocht je toch problemen ervaren na het upgraden naar AlmaLinux.
- Voer de stappen in dit artikel uit met sudo, of als gebruiker met root-rechten.
Stap 1
Verbind met je VPS via de VPS console in je controlepaneel of via SSH.
Stap 2 - optioneel bij private networks
Als je VPS is opgenomen in een private network is daar een netwerkadapter voor ingesteld. Het bijbehorende configuratiebestand voorkomt dat je de upgrade naar AlmaLinux kunt uitvoeren.
Controleer eerst de naam van je private network adapter:
ls /etc/sysconfig/network-scripts/
De private network adapter heeft een naam zoals ifcfg-eth0:1 of ifcfg-eth1. Hernoem de bijbehorende netwerkadapter (pas de bestandsnaam van de private network adapter aan indien nodig):
mv /etc/sysconfig/network-scripts/ifcfg-eth0:1 /etc/sysconfig/backup
Heb je meerdere configuratiebestanden? Dan kun je ieder backup-bestand een unieke naam geven (door de naam backup te vervangen) of een directory aanmaken genaamd backup en daar de bestanden in plaatsen, bijvoorbeeld:
mkdir /etc/sysconfig/backup
mv /etc/sysconfig/network-scripts/ifcfg-eth0:1 /etc/sysconfig/backup/
mv /etc/sysconfig/network-scripts/ifcfg-eth1:1 /etc/sysconfig/backup/
Stap 3
De publieke mirror van CentOS (mirrorlist.centos.org ) is niet langer beschikbaar. Update daarom eerst de .repo-bestanden en verwijs naar de CentOS Vault:
sed -i s/mirror.centos.org/vault.centos.org/g /etc/yum.repos.d/*.repo
sed -i s/^#.*baseurl=http/baseurl=http/g /etc/yum.repos.d/*.repo
sed -i s/^mirrorlist=http/#mirrorlist=http/g /etc/yum.repos.d/*.repo
De CentOS Vault bevat een momentopname van de repositories die via mirrorlist.centos.org werden aangeboden voor de end-of-life status bereikt werd.
Stap 4
Het is belangrijk om te zorgen dat al je software up-to-date is en je VPS te herstarten om eventuele configuratiewijzigingen door te voeren. Update en herstart dan ook nu eerst je VPS.
yum -y update
reboot
Stap 5
Installeer vervolgens de elevate-release- en leapp-packages en de benodigde migratie data. Vervang afhankelijk van je keuze in besturingssysteem hier leapp-data-almalinux door een van de volgende opties:
- leapp-data-almalinux
- leapp-data-centos
- leapp-data-eurolinux
- leapp-data-oraclelinux
- leapp-data-rocky
yum install -y http://repo.almalinux.org/elevate/elevate-release-latest-el$(rpm --eval %rhel).noarch.rpm
yum -y install leapp-upgrade leapp-data-almalinux
Stap 6
Voer nu de preupgrade-controle uit.
leapp preupgrade
Je krijgt de eerste keer dat je die uitvoert altijd een melding aan het eind dat de upgrade niet uitgevoerd kan worden omdat er enkele 'inhibitors' gevonden worden. Je herkent dit aan de melding:
===================================================== UPGRADE INHIBITED =====================================================
Het vinden van 'inhibitors' op dit punt is normaal en nodig om bijvoorbeeld een answer file te genereren (zie de volgende stap) en inzage te krijgen in eventuele kernel mods die verwijdert moeten worden.
Stap 7
Er zijn enkele 'inhibitors' waardoor het upgrade proces nog niet uitgevoerd kunnen worden. De eerste is de pam_pkcs11 module die niet beschikbaar is in RHEL-8. Voor dit issue is er een answer file gegenereerd (/var/log/leapp/answerfile) waarin gevraagd wordt of pam_pkcs11 verwijdert mag worden.
Geef toestemming om pam_pcks11 te verwijderen door de answer file aan te passen, of via het volgende commando:
leapp answer --section remove_pam_pkcs11_module_check.confirm=True
Stap 8
Als onderdeel van het upgrade-proces is SSH root-toegang nodig. Niet zozeer omdat er via SSH als root ingelogd gaat worden, maar omdat anders het upgrade proces de SSH-configuratie aanpast naar enkele standaard waardes waarmee inloggen via SSH met een wachtwoord niet langer mogelijk is.
Geef toestemming voor SSH root-toegang via het volgende commando:
sed -i -e "s/^PermitRootLogin no/PermitRootLogin yes/" /etc/ssh/sshd_config
Stap 9
In een aantal test-installaties kwamen wij nog als laatste 'inhibitor' enkele unsupported kernel modules tegen. Dit gaat om de modules floppy en pata_acpi. Indien je hier ook een melding over ziet verwijder je beide met de commando's:
modprobe -r floppy
modprobe -r pata_acpi
Stap 10
Controleer voor de zekerheid of er geen andere inhibitors zichtbaar zijn in het bestand /var/log/leapp/leapp-report.txt.
nano /var/log/leapp/leapp-report.txt
Issues in /var/log/leapp/leapp-report.txt die als high worden weergegeven zonder de toevoeging (inhibitor) mag je negeren. Mocht je wel nog inhibitors zien, volg dan de instructie in /var/log/leapp/answerfile.
Stap 11
Voer nogmaals het leapp preupgrade commando uit:
leapp preupgrade
De preupgrade zal nu geen inhibitors meer vinden. Aan het eind van de preupgrade controle herken je dat het proces geslaagd is wanneer je o.a. de volgende output ziet:
============================================================ REPORT ============================================================ A report has been generated at /var/log/leapp/leapp-report.json A report has been generated at /var/log/leapp/leapp-report.txt ============================================================ END OF REPORT ============================================================
EPEL-packages zoals openssl kunnen ervoor zorgen dat het upgrade proces vast loopt, ook al geeft Leapp aan dat ze in orde zijn. Controleer daarom voor stap 12 welke EPEL-packages je geïnstalleerd hebt en overweeg om die eventueel te verwijderen voor de upgrade en na de upgrade te herinstalleren. Je controleert welke EPEL-packages je gebruikt met het commando:
yum list installed | grep epel
Je kunt packages eventueel verwijderen met het commando:
yum erase packagenaam
Stap 12
Voer nu daadwerkelijk de upgrade uit met het commando:
leapp upgrade
Krijg je een foutmelding over te weinig geheugen? Probeer dan de volgende commando's:
export LEAPP_OVL_SIZE=4096
leapp upgrade --preserve-env
Stap 13
Herstart na afloop je VPS. Het 'elevate-upgrade'-proces wordt nu uitgevoerd om CentOS 7 te upgraden naar AlmaLinux 8. Dit zal de nodige tijd in beslag nemen (30-60 min). Als je tot nu toe SSH gebruikte, is het handig om voor deze stap even de console in het TransIP-controlepaneel erbij te pakken om de voortgang in de gaten te houden.
reboot
Stap 14
Wanneer het proces klaar is herken je dit aan een melding die er als volgt uitziet:
Je inlogscherm is niet zichtbaar. Druk op 'Enter' om deze te voorschijn te toveren. Je ziet dan een inlogprompt terug zoals in het screenshot hierboven. Log in als root-gebruiker.
Stap 15
Schakel de toestemming om als root-gebruiker in te mogen loggen via SSH weer uit en herstart je SSH-server:
systemctl restart sshd
Stap 16 - optioneel bij private networks
Als je gebruik maakt van een private network, hernoem dan nu het netwerkconfiguratiebestand en herstart je interface:
mv /etc/sysconfig/backup /etc/sysconfig/network-scripts/ifcfg-eth0:1
ifdown eth0 && ifup eth0
Stap 17
Gefelicteerd! Je CentOS 7 installatie is nu volledig omgezet naar een nieuwer besturingssysteem. Controleer dat de upgrade correct is uitgevoerd met het volgende commando:
cat /etc/os-release
Stap 18 - DirectAdmin
Gebruikte je DirectAdmin icm CentOS 7? Rebuild dan door CustomBuild beheerde software opnieuw, anders is het mogelijk dat sommige software niet werkt. Dit doe je eenvoudig met twee commando's:
cd /usr/local/directadmin/custombuild
./build all d
Daarmee zijn we aan het eind gekomen van deze handleiding voor het upgraden van CentOS 7 naar AlmaLinux 8.
Mocht je aan de hand van dit artikel nog vragen hebben, aarzel dan niet om onze supportafdeling te benaderen. Je kunt hen bereiken via de knop 'Neem contact op' onderaan deze pagina.