Da CentOS 7 ad AlmaLinux 9
La data del 30 giugno 2024, che segna l’end of life di CentOS 7, si sta avvicinando e purtroppo le vicissitudini recenti, prima l’abbandono dello sviluppo di CentOS in favore di CentOS stream e successivamente la decisione di RedHat di limitare l’accesso al codice sorgente, hanno suggerito cautela. Il risultato è che oramai ci siamo quasi e, come credo valga per molti oltre a me, bisogna decidere che strada intraprendere.
CentOS di base non supporta l’aggiornamento tra versioni e i tentativi che ho fatto un paio di anni fa sono stati un gran buco nell’acqua.
Tutto questo fino a qualche giorno fa quando ho seguito un webinar di AWS che parlava del tool Convert2RHEL, per convertire un’installazione di CentOS 7 in RHEL 8. Mentre guardavo mi sono chiesto se non ci fosse un’alternativa, così googolando mi sono imbattuto nel tool di AlmaLinux ELevate (basato su Leapp di Red Hat) che permette di aggiornare un’installazione di CentOS 7 in un’altra derivata alla versione 8 e 9.
Messa giù così, sembrava abbastanza semplice: macchina virtuale pronta, proviamolo!
DISCLAIMER
E’ un tool che applica cambiamenti radicali all’installazione quindi alcuni servizi potrebbero non funzionare dopo l’aggiornamento. Non credo sia necessario dirlo ma suggerisco un backup dei dati prima di iniziare o, meglio ancora, una sandbox (macchina virtuale, ecc) per fare i nostri tentativi.
Il tool aggiorna solamente i pacchetti provenienti dai repo della distribuzione, repo di terze parti e relativi pacchetti andranno gestiti a mano successivamente.
CAPITOLO 1 – DA CENTOS 7 AD ALMALINUX 8
Tutto sommato il tool non è così complesso, va installato dal suo repo:
sudo yum install -y http://repo.almalinux.org/elevate/elevate-release-latest-el7.noarch.rpm
sudo yum install -y leapp-upgrade leapp-data-almalinux
Successivamnete si lancia il pre upgrade
sudo leapp preupgrade
E da qui si inizia a vedere cosa manca, nel mio caso è andata abbastanza bene, bisognava solo rispondere a una domanda nel file /var/log/leapp/answerfile, dopodichè ho rilanciato il preupgrade per vedere fosse tutto a posto
e ho lanciato l’upgrade.
La procedura scarica tutti gli aggiornamenti nella cache di yum (oltre 900MB nel mio caso, verificare di avere spazio) prepara l’aggiornamento e alla fine chiede di effettuare un reboot.
Il riavvio sarà più lungo del solito perchè gli aggiornamenti verranno installati in quel momento.
Alla fine se tutto va come deve, ci troveremo un’installazione di AlmaLinux 8.
OT: Ho provato anche ad aggiornare a Rocky Linux 8, per essere più simile possibile a CentOS, ma il pre upgrade ha segnalato un problema che sembrava essere dei repo
Transaction check:
Problem: package javapackages-tools-5.3.0-2.module+el8.3.0+74+855e3f5d.noarch from rocky8-powertools requires javapackages-filesystem = 5.3.0-2.module+el8.3.0+74+855e3f5d, but none of the providers can be installed
– cannot install both javapackages-filesystem-5.3.0-2.module+el8.3.0+74+855e3f5d.noarch from rocky8-powertools and javapackages-filesystem-5.3.0-2.module+el8.3.0+125+5da1ae29.noarch from rocky8-appstream
– package ivy-local-5.3.0-2.module+el8.3.0+74+855e3f5d.noarch from rocky8-powertools requires javapackages-tools = 5.3.0-2.module+el8.3.0+74+855e3f5d, but none of the providers can be installed
– cannot install the best candidate for the job
– conflicting requests
per cui ho lasciato perdere.
CAPITOLO 2 – POST UPGRADE
Dopo l’upgrade la prima cosa da fare è andare a ripulire, nel file /etc/yum.conf la linea exclude in quanto leapp ha modificato il valore escludendo i propri pacchetti.
Dopodichè bisogna controllare nel sistema se sono rimasti pacchetti per la versione 7, questi andranno gestiti manualmente uno per uno, quasi sicuramente disinstallati e reinstallati, e li troviamo con
rpm -qa | grep el7
oltre ai tool di leapp ho trovato anche mysql, installato con il suo repo, che andava reinstallato in quanto dopo l’aggiornamento non funzionava più.
CAPITOLO 3 – DA ALMALINUX 8 AD ALMALINUX 9
Una volta ripulita l’installazione di leapp per Enterprise Linux 7, possiamo ripartire con il procedimento per aggiornare ad AlmaLinux 9, per cui aggiungiamo nuovamente il repo e scarichiamo la versione corretta
sudo yum install -y http://repo.almalinux.org/elevate/elevate-release-latest-el$(rpm –eval %rhel).noarch.rpm
sudo yum install -y leapp-upgrade leapp-data-almalinux
Dopodiché lanciamo nuovamente il preupgrade
sudo leapp preupgrade
che stavolta ci segnala un conflitto sulla versione di una dipendenza di make, risolto semplicemente disinstallandola.
Risolto questo, possiamo lanciare l’upgrade e se lo script ci risponde luce verde, possiamo riavviare.
sudo leapp upgrade
sudo reboot
Anche questo reboot sarà particolarmente lungo, ma se tutto va bene avremo un’installazione di AlmaLinux 9, che sarà poi da ripulire seguendo gli stessi passaggi visti in precedenza.
CONCLUSIONI
Chi conosce il mondo CentOS sa bene che l’aggiornamento da una major all’altra non è supportato, e anche usando questo tool c’è del lavoro da fare successivamente che potrebbe non essere trascurabile a seconda della complessità dell’installazione.
CentOS 7 sarà supportata fino al 30 giugno 2024, ovvio che come per le versioni precedenti la cosa migliore sarebbe reinstallare il nostro sistema usando l’ultima stabile. Le valutazioni sono ancora in corso, ma avendo a che fare con macchine virtuali non installate da me, senza adeguata documentazione e con svariati dati sopra, la possibilità di generare un clone e tentare un aggiornamento rientra sicuramente tra le opzioni.
Anche perchè AlmaLinux 8 sarà supportata fino al 2029, la versione 9 fino al 2032.