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.

Passare da CentOS 8 a Oracle Linux 8

Questo articolo vi spiegerà come migrare da CentOS 8 a Oracle Linux 8. Senza dilungarmi troppo, il supporto a CentOS 8 terminerà a fine 2021 per cui è opportuno pianificare il passaggio dal sistema operativo gratuito CentOS 8 a qualcosa d’altro. Le opzioni affini sono Oracle Linux 8, Red Hat 8 (a pagamento) o CloudLinux 8 (a pagamento).

La prima cosa da fare è un backup o una snapshot del sistema. Questo ci permetterà di tornare indietro qualora la conversione da CentOS 8 a Oracle Linux 8 non sia andata a buon fine. E’ sempre possibile procedere alla clonazione del sistema e l’esecuzione della conversione in un ambiente isolato (lo script ha però bisogno di accesso ad Internet) .

Dunque vediamo come migrare di sistema operativo.

Verifiche preliminari

Verifichiamo la versione del sistema operativo in uso con il comando:

cat /etc/redhat-release

Dovrebbe apparirci qualcosa simile a “CentOS Linux release 8”

E’ necessario almeno avere 2 GB liberi nella directory /var/cache per poter scaricare i pacchetti per l’upgrade (la dimensione dipende dal numero di pacchetti installati).

Se abbiamo attivato i repository EPEL, questi verranno sostituiti dallo script con gli EPEL di Oracle Linux. Software installati da altri repository non ufficiali (quelli di CentOS più quelli di EPEL) potrebbero creare dei problemi in fase di conversione. Conviene disabilitare tutti i repository non CentOS durante la migrazione poi è possibile riattivarli al termine.

Procedura di migrazione da CentOS a Oracle Linux

Scarichiamo lo script centos2ol.sh che permette una conversione automatizzata del sistema dal repository GitHub.

wget https://github.com/oracle/centos2ol/raw/main/centos2ol.sh
chmod +x centos2ol.sh

Ora lanciamo lo script come utente root (o equivalente).

./centos2ol.sh

Durante la conversione vengono tolti i repository software di CentOS e attivati quelli di Oracle Linux 8. Vengono tolti alcuni pacchetti Python 3 e aggiunti altri come il kernel UEK 6, tipico di Oracle Linux.

Il tempo di conversione è strettamente dipendente dalla quantità di pacchetti che avete installato sul sistema e dalla velocità della vostra connessione ad internet. Nel caso di un sistema con CentOS 8 con desktop, i pacchetti da scaricare sono più di 1200 per quasi 1 GB di software scaricato.

In una seconda fase è possibile che lo script scarichi e installi anche dei compilatori come cpp e gcc.

Poi ad un certo punto lo script farà passare il sistema dall’usare il kernel CentOS a UEK (a sistema acceso), questo perchè l’installazione e configurazione completa del kernel UEK usando kernel CentOS sebra abbia dei problemi quindi il kernel UEK viene reinstallato.

Al termine dell’installazione è possibile riavviare il sistema ma prima vi suggerisco di fare una copia del log di installazione che si trova in Qualora sia andata storta qualcosa, vi consiglio di controllare il log dell’installazione che si trova in /var/tmp/ dovrebbe avere il nome di questo formato $(hostname)-rpms-*.log.

Riavviato il server, questo è ciò che appare all’avvio:

Il nostro sistema ha completato il boot con successo.

Aggiornamento del kernel senza riavviare con Ksplice

L’avevamo promesso in un precedente articolo: avremmo trattato i diversi sistemi per aggiornare il kernel Linux senza la necessità di fare reboot per attivare le patch. In questo articolo vederemmo la tecnologia Ksplice messa a disposizione di Oracle Enterprise Linux (OEL), Red Hat EL, CentOS, Debian e Ubuntu.

Nella versione desktop, ossia Ksplice Desktop, è gratuito (previa registrazione mail) ed è installabile su Ubuntu 19.10, 19.04, 18.04 e 16.04 e anche su Fedora 29; questo il sito https://ksplice.oracle.com/try/desktop dove scaricare la versione desktop.

In alcuni casi, Ksplice non solo consente l’aggiornamento del kernel del pinguino ma anche di glibc e openssl (queste ultime due solo su Oracle Enterprise Linux 6 e 7, per il momento).

La tecnologia di Oracle Linux, Ksplice (per server) non è gratuita ma è possibile provarla per 30 giorni, registrandosi sul sito di Oracle, accettando il Ksplice Uptrack Subscription Agreement.

Dopo aver accettato l’accordo, viene mostrata una pagina con il codice da usare per l’attivazione di Ksplice.

La cosa è alquanto semplice, basta copiare le prime tre righe di codice sul proprio server Oracle Linux.

wget -N https://www.ksplice.com/uptrack/install-uptrack
sh install-uptrack fbf***********************456

Per installare gli aggiornamenti, è sufficiente usare il comando:

uptrack-upgrade -y

Al termine dell’installazione, avremo una nuova versione del kernel installata.

Il tutto è tremendamente semplice.

Ricordiamo che l’aggiornamento del kernel, non viene riportato dal comando uname, che continuerà a riportare il vecchio kernel come attivo. Utilizzare il comando uptrack-uname per visualizzare la versione effettiva del kernel:

# uptrack-uname -a

Installare vncserver su Oracle Linux 7


VNC, o “Virtual Network Computing”, è un sistema di connessione che consente di utilizzare la tastiera e il mouse per interagire con un ambiente desktop grafico su un server remoto. VNC semplifica la gestione di file e del software su un server remoto agli utenti che non sono a loro agio con la linea di comando.

Su Oracle Linux 7, Centos o Red Hat, la funzionalità standard di share del desktop è facile da attivare ma è utilizzabile soltanto con pochi client VNC: collegarsi da Windows al server non è facile perchè la maggior parte dei client non supporta il protocollo di autenticazione di Vino Server, per cui è opportuno adottare un’alternativa installando vncserver.

Una volta completato il processo, sarai in grado di accedere facilmente al tuo server con l’aiuto di uno strumento di visualizzazione VNC, come vncviewer. Analizziamo i passaggi.

Continua a leggere

Installare DDD su Oracle Linux 6


ddd-logoGNU DDD è un front-end grafico per i debugger a riga di comando come GDB, DBX, WDB, Ladebug, JDB, XDB, Perl debugger… DDD è diventato famoso qualche anno fa grazie alla sua visualizzazione interattiva di dati grafici, in cui le strutture di dati vengono visualizzati sotto forma di grafici.
Negli ultimi 4 anni non ha avuto aggiornamenti, ma questo tool è ancora comodo su sitemi in cui si ha a dsiposizione di limitate risorse.

Sfortunatamente non è disponibile un pacchetto precompilato per Oracle Linux 6 di DDD nè per CentOS.

Vediamo come installare DDD 3.3.12 su Oracle Linux 6. Continua a leggere