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:
- Verifica la presenza di kernel non standard
- Assicurarsi che la configurazione
yum
funzioni - Disabilitare o rimuovere i repository obsoleti e non CentOS
- Garantire 5 GB di spazio libero in
/var/cache
- Disattiva tutti gli aggiornamenti automatici, incluso
yum-cron
Prerequisito
- È stato installato un sistema con CentOS 7.
Controllare la versione CentOS
-
Aprire un terminale e connettersi all'istanza.
-
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
-
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 kernelcentosplus
. -
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.)
-
Rimuovere eventuali kernel non standard.
sudo yum remove <KERNEL>
Dove
<KERNEL>
è il nome completo del pacchetto fornito darpm -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.)
-
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
-
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
-
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
-
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.
-
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
-
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.
-
Elenca i job cron della radice.
sudo crontab -l
-
Elenca i job cron dell'utente.
sudo crontab -u oracle -l
-
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 servizioyum-cron
. La disabilitazione verrà affrontata nella sezione successiva del tutorial. -
Elenca i contenuti di
/etc/crontab
.sudo less /etc/crontab
Disabilita aggiornamenti Cron YUM
Un altro modo per applicare automaticamente gli aggiornamenti è yum-cron
.
-
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. -
Controllare lo stato del servizio systemd
yum-cron
.sudo systemctl is-enabled yum-cron sudo systemctl is-active yum-cron
-
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
-
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
-
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.
-
Riavvio del sistema.
sudo reboot
Conferma passaggio al sistema Oracle Linux
-
Utilizzando il terminale, connettersi nuovamente all'istanza.
-
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
-
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.