Passa da CentOS 7 a Oracle Linux 7

Introduzione

Nota: CentOS 7 ha raggiunto la fine del ciclo di vita (end-of-life, EOL) il 30 giugno 2024. Questa situazione significa che Red Hat, la società dietro CentOS, non fornisce più aggiornamenti di sicurezza o correzioni di bug per il sistema operativo.

L'esercitazione riportata di seguito fornisce procedure dettagliate per passare automaticamente un'istanza CentOS 7 a Oracle Linux 7 rimuovendo o sostituendo qualsiasi package specifico di CentOS con l'equivalente di Oracle Linux. Il file README.md nel repository Oracle centos2ol in GitHub indica che lo script utilizzato in questa esercitazione è un work in progress e non è progettato per gestire tutte le configurazioni possibili.

Assicurarsi di disporre di un backup completo del sistema prima di avviare il processo se lo script non è in grado di convertire correttamente il sistema.

Rivedere i dettagli più recenti per il progetto centos2ol nel file README.md del progetto.

Obiettivi

In questa esercitazione:

Prerequisito

Controllare la versione CentOS

  1. Aprire un terminale e connettersi all'istanza.

  2. Scarica la versione di CentOS.

    sudo cat /etc/redhat-release
    
    sudo cat /etc/os-release
    

    Entrambi questi comandi mostrano che nell'istanza è in esecuzione CentOS 7.

Controlla kernel non standard

  1. Ottenere un elenco dei kernel installati utilizzando yum.

    sudo yum list installed kernel
    

    L'elenco mostra tutti i kernel installati utilizzando yum. Si consiglia vivamente di rimuovere tutti i kernel non standard; ad esempio, qualsiasi kernel installato e non fornito dalla base o aggiorna il repository. Include la rimozione di qualsiasi kernel centosplus.

  2. Ottenere un elenco di altri kernel installati utilizzando grubby.

    sudo grubby --info=ALL | grep ^kernel
    

    Output di esempio:

    [oracle@centos-7 ~]$ sudo grubby --info=ALL | grep ^kernel
    kernel=/boot/vmlinuz-3.10.0-1160.76.1.el7.x86_64
    kernel=/boot/vmlinuz-3.10.0-1160.el7.x86_64
    kernel=/boot/vmlinuz-0-rescue-281810806a454564906c048d496729db
    

    L'elenco mostra tutti i kernel configurati per l'uso. Ancora una volta, consigliamo vivamente di rimuovere tutti i kernel non standard.

Rimuovere i kernel non standard con Yum

A causa della vulnerabilità GRUB2 BootHole, lo shim Oracle Linux Secure Boot può eseguire il boot solo dei kernel firmati da Oracle e possiamo sostituire solo i kernel CentOS predefiniti. Sebbene ciò non possa influire su un sistema se SecureBoot è disabilitato, l'abilitazione successiva potrebbe renderlo non avviabile. Per questo motivo, si consiglia di rimuovere tutti i kernel non standard, ad esempio qualsiasi kernel installato non fornito dal repository base o updates, inclusi i kernel CentOSPlus.

Nota: ignorare questa sezione se il sistema non dispone di kernel non standard in base alla descrizione riportata sopra. Non tentare di rimuovere il kernel utilizzando yum se nel sistema è installato un solo kernel. La rimozione della voce del kernel dell'unico kernel funzionante o del kernel errato può causare il mancato avvio del sistema e l'avvio in modalità monoutente per correggere il server danneggiato.)

  1. Rimuovere eventuali kernel non standard.

    sudo yum remove <KERNEL>
    

    Dove <KERNEL> è il nome completo del pacchetto fornito da rpm -q kernel.

Rimuovere i kernel non standard con Grubby

grubby è uno strumento da riga di comando che consente di aggiornare e visualizzare informazioni sui file di configurazione del boot loader grub. Questo strumento consente a un amministratore di disabilitare i kernel installati al di fuori di yum.

Nota: ignorare questa sezione se il sistema non dispone di kernel non standard in base alla descrizione riportata nella sezione precedente. Non tentare di rimuovere il kernel utilizzando yum se nel sistema è installato un solo kernel. La rimozione della voce del kernel dell'unico kernel funzionante o del kernel errato può causare il mancato avvio del sistema e l'avvio in modalità monoutente per correggere il server danneggiato.)

  1. Ottenere l'indice assegnato a ciascuna delle voci di boot del kernel installato.

    sudo grubby --info=ALL | grep -E "^kernel|^index"
    

    Output di esempio:

    [oracle@centos-7 ~]$ sudo grubby --info=ALL | grep -E "^kernel|^index"
    index=0
    kernel=/boot/vmlinuz-3.10.0-1160.76.1.el7.x86_64
    index=1
    kernel=/boot/vmlinuz-3.10.0-1160.el7.x86_64
    index=2
    kernel=/boot/vmlinuz-0-rescue-281810806a454564906c048d496729db
    index=3
    
  2. Rimuovere tutte le voci di boot del kernel non standard.

    grubby --remove-kernel=<MENU_INDEX>
    

    Dove <MENU_INDEX> è il valore di indice restituito dall'output del comando precedente.

Verifica configurazione YUM

  1. Recupera una lista di repository abilitati.

    sudo yum repolist
    

    Output di esempio:

    [oracle@centos-7 ~]$ sudo yum repolist
    Loaded plugins: fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
     * base: ftp.plusline.net
     * epel: mirror.imt-systems.com
     * extras: mirror.imt-systems.com
     * updates: ftp.plusline.net
    repo id                   repo name                                       status
    base/7/x86_64             CentOS-7 - Base                                 10072
    docker-ce-stable/7/x86_64 Docker CE Stable - x86_64                         183
    epel/x86_64               Extra Packages for Enterprise Linux 7 - x86_64  13738
    extras/7/x86_64           CentOS-7 - Extras                                 515
    updates/7/x86_64          CentOS-7 - Updates                               4383
    zfs/7/x86_64              ZFS on Linux for EL7 - dkms                        55
    repolist: 28946
    
  2. Aggiornare tutti i pacchetti installati.

    sudo yum -y upgrade
    

Rimuovi o disabilita repository non CentOS

Disabilitare tutti i repository non CentOS. Questo passo consente di evitare conflitti di pacchetti con repository di terze parti durante lo switch. È possibile riabilitare i repository dopo lo switch.

  1. Disabilitare i repository non CentOS.

    sudo yum-config-manager --disable <REPOSITORY_NAME>
    

    Sostituire <REPOSITORY_NAME> con il nome del repository di qualsiasi repository non CentOS abilitato nel sistema.

Controlla spazio libero in /var/cache

  1. Ottenere un report sull'uso dello spazio su disco.

    df -h
    

    Nota: in questo esempio, /var/cache si trova sotto il punto di attivazione /, con 35G disponibile. Questo sistema dispone del 5G gratuito consigliato dal progetto centos2ol.

Controlla aggiornamenti automatici in Cron

Un amministratore può abilitare gli aggiornamenti automatici in diversi modi. Questa sezione verifica la presenza di job cron che eseguono yum direttamente o utilizzando uno script. Disabilitare questi job, se trovati, per evitare che vengano eseguiti durante il processo di commutazione.

  1. Elenca i job cron della radice.

    sudo crontab -l
    
  2. Elenca i job cron dell'utente.

    sudo crontab -u oracle -l
    
  3. Elenca i lavori cron giornalieri, orari, settimanali e mensili.

    sudo ls -al /etc/cron*
    

    Quindi, controllare i singoli file utilizzando less o l'editor di scelta.

    Nota: i file che contengono yum-cron nel nome vengono gestiti dal servizio yum-cron. La disabilitazione verrà affrontata nella sezione successiva del tutorial.

  4. Elenca i contenuti di /etc/crontab.

    sudo less /etc/crontab
    

Disabilita aggiornamenti Cron YUM

Un altro modo per applicare automaticamente gli aggiornamenti è yum-cron.

  1. Cercare il pacchetto yum-cron.

    sudo yum list installed yum-cron
    

    Output di esempio:

    [oracle@centos-7 ~]$ yum list installed yum-cron
    Loaded plugins: fastestmirror, langpacks
    Determining fastest mirrors
     * base: ftp.plusline.net
     * epel: ftp.plusline.net
     * extras: ftp.plusline.net
     * updates: ftp.rz.uni-frankfurt.de
    Installed Packages
    yum-cron.noarch                    3.4.3-168.el7.centos                    @base
    

    Se nell'output viene mostrato il pacchetto yum-cron non installato sul sistema, andare alla sezione successiva.

  2. Controllare lo stato del servizio systemd yum-cron.

    sudo systemctl is-enabled yum-cron
    sudo systemctl is-active yum-cron
    
  3. Disabilitare il servizio systemd yum-cron se è attivo e in esecuzione.

    sudo systemctl stop yum-cron
    sudo systemctl disable yum-cron
    

Scarica ed esegui lo script di conversione

  1. Scaricare lo script centos2ol.sh da GitHub.

    Il modo più semplice per ottenere lo script è usare curl:

    curl -O https://raw.githubusercontent.com/oracle/centos2ol/main/centos2ol.sh
    

    Se è installato Git, utilizzare l'opzione clone per estrarre il repository da GitHub.

    git clone https://github.com/oracle/centos2ol.git
    
  2. Eseguire lo script centos2ol.sh.

    Se si è utilizzato git clone, modificare la directory di lavoro corrente nella directory centos2ol.

    Per visualizzare le opzioni d'uso dello script, passare l'opzione -h.

    sudo bash centos2ol.sh -h
    

    Ora, eseguire lo script e attendere il suo completamento.

    sudo bash centos2ol.sh
    

    Nell'ambito del processo, il kernel predefinito viene passato alla release più recente di Oracle Unbreakable Enterprise Kernel (UEK) per consentire miglioramenti estesi a livello di prestazioni e scalabilità allo scheduler dei processi, alla gestione della memoria, ai file system e allo stack di rete. Sostituiamo anche il kernel CentOS esistente con l'equivalente RHCK (Red Hat Compatible Kernel), che l'hardware o l'applicazione specifica potrebbe richiedere se ha imposto severe restrizioni alla versione del kernel.

  3. Riavvio del sistema.

    sudo reboot
    

Conferma passaggio al sistema Oracle Linux

  1. Utilizzando il terminale, connettersi nuovamente all'istanza.

  2. Controllare la versione di distribuzione e i dettagli del kernel.

    cat /etc/os-release
    cat /etc/redhat-release
    uname -r
    

Contribuisci al progetto centos2ol GitHub

  1. Ricevi supporto.

    Aprire un problema GitHub per report di bug, domande o richieste di miglioramenti non correlati alla sicurezza.

Per ulteriori informazioni

Documentazione su Oracle Linux
Formazione su Oracle Linux
Oracle Linux Training Station
Aggiornamento di Oracle Linux con Leapp

Altre risorse di apprendimento

Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti gratuiti sulla formazione su Oracle Learning YouTube channel. Inoltre, visita education.oracle.com/learning-explorer per diventare un Oracle Learning Explorer.

Per la documentazione del prodotto, visita l'Oracle Help Center.