Come migrare da CentOS a Oracle Linux

Published by Lello on

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.

LTM