Migrazione da Oracle Linux 8 a Oracle Linux 9

Oracle Enterprise Linux, o come spesso viene chiamata Oracle Linux, è una scelta alquanto obbligata quando si vuole usare il celeberrimo database Oracle: sebbene Windows sia una possibilità ma è meglio evitare se si vuol puntare alle performance massime; le altre soluzioni sono a pagamento (Red Hat Enterprise Linux e SUSE Linux Enterprise Server) e non così ben supportate dal software.
Oracle database è stato uno degli applicativi aziendali più utilizzati nel corso dell’ultimo ventennio e anche se ci sono soluzioni più economiche e flessibili, ancora molti preferiscono utilizzare Oracle database, pure per progetti nuovi. Motivo per cui, questa distribuzione è abbastanza diffusa.

Vediamo in questo articolo come si può migrare un sistema da Oracle Linux 8 a Oracle Linux 9.

Note: se avete Oracle Database installato sul sistema, vi conviene attendere perchè Oracle Linux 9 non è ancora supportato al momento della stesura di questo articolo.


Prima di passare a a Oracle Linux 9 è bene assicurarsi che il proprio sistema e server soddisfino i criteri minimi di Oracle Linux 9, leggendo questa guida.

Prima dell’aggiornamento di Oracle Linux con Leapp

L’applicazione Leapp è un insieme di strumenti per l’aggiornamento del sistema operativo e delle sue applicazioni. Tuttavia sono necessari alcuni passaggi prima di poterla usare.

Accertiamoci che tutte le applicazione siano state fermate prima dell’aggiornamento a Oracle Linux 9. Es. se abbiamo Apache httpd attivo, stoppiamolo.

Se Oracle Linux 8 è dietro un proxy, è opportuno verificare le impostazioni del proxy in /etc/yum.conf, ad esempio:

proxy=proxy-url:port

questo è necessario perchè Leapp scaricherà i pacchetti dalla rete.

Se è stato installato il pacchetto yum-plugin-versionlock (se non c’è, non serve), è necessario cancellare tutti i pacchetti con versioni bloccate.

sudo dnf versionlock clear

Il secure boot va disabilitato perchè altrimenti non ci permetterà di fare l’upgrade.
Per sapere lo stato del secure boot si può usare il comando:

sudo bootctl status

Il secure boot va disabilitato nel BIOS/EFI del proprio PC. Per esempio se il nostro sistema si trova su VMware ESXi, possiamo toglierlo dalle impostazioni della virtual machine quando essa è spenta.

Dopo aver disattivato il secure boot, è conveniente anche installare gli ultimi aggiornamenti disponibili per Oracle Linux 8. Per farlo è sufficiente usare il classico comando:

sudo yum update

Se il sistema ha file system montati in rete, questi vanno smontali e siccome il sistema verrà riavviato è bene commentare le voci correlate nel file /etc/fstab.

La procedura di upgrade prevede che la localizzazione (locale) sia impostato su en_US.UTF-8, per cui per sapere quale è quello sul nostro sistema, possiamo visualizzarlo col comando:

cat /etc/locale.conf

Qualora serva cambiarlo, per impostarlo usiamo:

sudo localectl set-locale LANG=en_US.UTF-8

Se abbiamo il firewall attivo, disattiviamo lo Zone Drifting di Firewalld:

sed -i "s/^AllowZoneDrifting=.*/AllowZoneDrifting=no/" /etc/firewalld/firewalld.conf

Se Oracle Linux è registrato con ULN o un mirror ULN, bisogna disattivare la registrazione del sistema, maggiori info qui.

A questo punto possiamo riavviare nuovamente il sistema e poi procedere con il comando necessario all’installazione di Leapp (e dei suoi repository):

sudo dnf install -y leapp-upgrade --enablerepo=ol8_leapp,ol8_appstream,ol8_baseos_latest

Aggiornamento di Oracle Linux con Leapp

E’ necessario abilitare il login di root via SSH, per farlo mettiamo yes come valore al parametro PermitLogin nel file di configurazione di SSH /etc/ssh/sshd_config.

sed -i "s/^PermitRootLogin=no/PermitRootLogin=yes/" /etc/ssh/sshd_config

Se si utilizza un server proxy (altrimenti non lanciare questo comando), modificare /etc/yum.repos.d/leapp-upgrade-repos-ol9.repo aggiungendo l’impostazione proxy per ogni voce del repository dove proxy-host:proxy-port è il nome del vostro proxy e della porta.

sudo sed -i '/^enabled=0.*/a proxy=http://proxy-host:proxy-port' /etc/yum.repos.d/leapp-upgrade-repos-ol9.repo 

Eseguire il comando di preaggiornamento:

sudo leapp preupgrade --oraclelinux

Quando si utilizza questo argomento –oraclelinux, i seguenti repository vengono automaticamente abilitati:

  • ol9_baseos_latest
  • ol9_appstream
  • ol9_UEKR7

Se è necessario aggiunger i repository degli add-ons è bene farlo in questa fase mutando il precedente comando in:

sudo leapp preupgrade --enablerepo 'ol9_baseos_latest' --enablerepo 'ol9_appstream' --enablerepo 'ol9_UEKR7' --enablerepo 'ol9_addons'

Al termine del comando di preaggiornamento, è opportuno consultare l’esito di Leapp: viene infatti prodotto un file /var/log/leapp/leapp-report.txt dove vengono identificati i potenziali rischi e problemi per l’aggiornamento. In base a quello che c’è scritto si possono porre i rimedi necessari e rilanciare il comando leapp preupgrade più volte fino a che il nostro sistema non sia pronto per l’aggiornamento da Oracle Linux 8 a 9.

Vediamo un esempio di file di report in questa immagine.

Il classico messaggio relativo a “GPG Key Issue” è riscontrabile in parecchi sistemi sottoposti a migrazione, perchè dipende da quale versione di Oracle Linux abbiamo fatto l’installazione iniziale.

Per capire quale è la versione di gpg-pubkey sul sistema si può usare il comando:

rpm -qa | grep gpg-pubkey

Per esempio nel caso di questo sistema, esso è nato come Oracle Linux 8.2 e poi aggiornato con gli ultimi update.

Se siamo sicuri che questo pacchetto è effettivamente quello fornito da una delle versioni di Oracle Linux 8, possiamo ignorare l’avvertimento.

Si potrebbero verificare delle segnalazioni se abbiamo delle regole di SELinux personalizzate, in tal caso se è possibile correggerle altrimenti bisogna disabilitare SELinux.

Viene creato un ulteriore file per il debugging: /var/log/leapp/leapp-preupgrade.log

Oltre a risolvere tutti i punti critici riportati nel file /var/log/leapp/leapp-report.txt, va compilato il file /var/log/leapp/answerfile. Leapp genera delle domande vero/falso per determinare come procedere. I quesiti si trovano nel file /var/log/leapp/answerfile, questo file può essere vuoto (se non ci sono problemi).

Se c’è connettività verso i repository il comando preupgrade scaricherà anche i pacchetti necessari per l’upgrade (una parte di essi) altrimenti è necessario rilanciare il comando di preupgrade dopo aver risolto il problema di raggiungibilità dei repository.

Dopo aver completato correttamente /var/log/leapp/answerfile e verificato che /var/log/leapp/leapp-report.txt non segnali più rischi, si può aggiornare il sistema con il comando:

sudo leapp upgrade --oraclelinux

Se avete delle connessioni di rete attive, potrebbero essere terminate durante la fase di upgrade, per questo motivo è bene stoppare tutte le applicazioni non necessarie.

Al termine possiamo riavviare il sistema col classico comando di reboot. In fase di spegnimento verrà completata l’installazione dei pacchetti aggiornati. Per questo motivo, l’avvio del sistema impiegherà più tempo del normale. Fra l’altro è possibile che in avvio venga fatto il relabeling di SELinux.

Se il reboot ha avuto successo possiamo disattivare il login SSH dell’utente root, riattivare il secure boot, ripristinare le varie opzioni che abbiamo cambiato.

Al termine, il processo di aggiornamento un nuovo report in /var/log/leapp/leapp-report.txt e il file /var/log/leapp/answerfile, questi possono essere consultati per effettuare alcune modifiche che possono essere suggerite dopo l’aggiornamento.

La schermata di login di Oracle Linux 9

Se avete dei problemi durante la fase di preaggiornamento o in seguito al passaggio da Oracle Linux 8 a Oracle Linux 9, lasciate pure un commento.

GNU/Linux

Articolo precedente

Docker su Ubuntu 22.04
GNU/Linux

Articolo successivo

Installare Pi Hole su Raspberry Pi