Come migrare da CentOS a Oracle Linux
In questo post vedremo come migrare il nostro sistema da CentOS 8 a Oracle Linux. Ma perchè migrare?
Come abbiamo visto, CentOS 8 terminerà la propria vita nel 2021; CentOS 8 verrà abbandonato e da RedHat verrà portata avanti solo la versione Stream; in parole povere, CentOS 8 diventerà la piattaforma intermedia tra Fedora e RHEL, in cui verranno testate tutte le novità introdotte in Fedora ma non ancora implementate in CentOS.
L’unica alternativa valida a CentOS in questo istante (stanno nascendo diversi fork di CentOS, per cercare da una parte di supportare tutte le aziende che non possono migrare e RHEL e dall’altra di ricompattare tutti gli sviluppatori) è Oracle Linux (come d’altronde suggerisce anche Oracle …. ).
Oracle Linux è una versione stabile e matura, esiste oramai dal 2006; ha iniziato come clone di RHEL 4 e successivamente 5,6,7 per arrivare alla 8. È disponibile sia nella versione free che con supporto a pagamento. Il codice sorgente, i binari, gli aggiornamenti sono gratuiti, così come gratuita è la possibilità di redistribuire un eventuale prodotto basato su tale piattaforma. Garantisce la piena binaria al 100% con RHEL; se davvero vogliamo trovarne un difetto, possiamo dire che l’ombra di Oracle non fa felice molte persone.
Se dunque dobbiamo migrare la nostra (amata) CentOS, l’unica meta verso cui approdare è Oracle Linux; questo chiaramente se non si volesse migrare verso la CentOS Stream o RHEL.
Oracle offre una scelta tra due kernel: Unbreakable Enterprise Kernel (UEK) o Red Hat Compatible Kernel (RHCK). UEK offre miglioramenti estesi in termini di prestazioni e scalabilità inerenti lo scheduler dei processi, la gestione della memoria, il file system e lo stack di rete.
In questi giorni (coincidenza?) sul blog di Oracle è comparso un articolo che ci indica come migrare la propria piattaforma CentOS-based a Oracle Linux in modo lineare e (quasi) indolore. Tutto si basa su uno script (centos2ol.sh) disponibile via github; tale script permette la migrazione da CentOS 6,7,8 alla corrispondete versione di Oracle Linux; CentOS Stream non è supportato.
Esistono alcune limitazione alla migrazione:
- lo script deve essere in grado di comunicare sia con i repository yum di CentOS che con quelli di Oracle Linux (direttamente o tramite proxy);
- lo script attualmente non supporta le istanze registrate su strumenti di gestione di terze parti quali Spacewalk, Foreman o Uyuni.
- la compatibilità con i pacchetti installati da repository di terze parti è prevista ma non garantita; per alcuni software ad esempio potrebbe essere un problema l’esistenza del file /etc/oracle-release.
- lo script abilita solo i repository di base richiesti per il passaggio a Oracle Linux. Gli utenti potrebbero dover riabilitare i repository aggiuntivi per ottenere aggiornamenti per i pacchetti già installati (ad esempio il repo relativo ai powertools).
E’ possibile eventualmente accedere agli issues di tale script per verificare preventivamente l’esistenza di qualche problema.
Attenzione: l’utilizzo di tale script in ambienti di produzione non è consigliato !!!
Vediamo come effettuare una migrazione da CentOS 8 a Oracle Linux. Prima di procedere con la migrazione, effettueremo un aggiornamento del sistema controllando anche quali sono i repositoty utilizzati.
# cat /etc/redhat-release CentOS Linux release 8.3.2011 # uname -r 4.18.0-240.1.1.el8_3.x86_64 # dnf update # dnf repolist appstream (CentOS Linux 8 - AppStream) baseos (CentOS Linux 8 - BaseOS) epel (Extra Packages for Enterprise Linux 8 - x86_64) epel-modular (Extra Packages for Enterprise Linux Modular 8 - x86_64) extras (CentOS Linux 8 - Extras) powertools (CentOS Linux 8 - PowerTools) rpmfusion-free-updates ( RPM Fusion for EL 8 - Free - Updates)
Lo script centos2ol.sh richiede come pre-requisito python 2:
# dnf install python2
Scarichiamo lo script ed eseguiamolo; lo script eseguirà il backup dei file del repository CentOS esistenti, aggiungerà il repository Oracle Linux, sostituirà i loghi centos con i loghi Oracle, aggiornerà alcuni pacchetti principali e installerà l’ultimo Oracle Unbreakable Enterprise Kernel.
# curl -O https://raw.githubusercontent.com/oracle/centos2ol/main/centos2ol.sh # chmod 755 centos2ol.sh # ./centos2ol.sh
Lo script inizierà la fase di migrazione, partendo con l’installazione del kernel e di grub; successivamente installerà i nuovi packages.
Se tutto va a buon fine, lo script ci chiederà di riavviare il sistema.
Al boot successivo potremo constatare che il kernel di default proposto è il nuovo kernel UEK di Oracle Linux:
Controlliamo la versione di distribuzione, il nuovo kernel ed la situazione dei repository:
# cat /etc/redhat-release Red Hat Enterprise Linux release 8.3 (Ootpa) # uname -r 5.4.17-2036.100.6.1.el8uek.x86_64 # cat /etc/oracle-release Oracle Linux Server release 8.3 # dnf repolist epel (Extra Packages for Enterprise Linux 8 - x86_64) epel-modular (Extra Packages for Enterprise Linux Modular 8 - x86_64) ol8_UEKR6 (Latest Unbreakable Enterprise Kernel Release 6 for Oracle Linux 8 (x86_64)) ol8_appstream (Oracle Linux 8 Application Stream (x86_64)) ol8_baseos_latest (Oracle Linux 8 BaseOS Latest (x86_64)) rpmfusion-free-updates (RPM Fusion for EL 8 - Free - Updates) rpmfusion-nonfree-updates (RPM Fusion for EL 8 - Nonfree - Updates)
La migrazione è andata a buon fine: addio CentOS, benvenuta Oracle Linux.