Aggiornamento da CentOS 7 a CentOS 8

CentOS 8 è stato rilasciato il 23 settembre 2019 e le ISO ufficiali sono disponibili sul sito. La versione minimale (circa 800 MB contro circa 6 GB per la full) non era immediatamente disponibile: come amministratore di sistema la versione minima era spesso la preferita. In questa guida passo passo ti mostro come effettuare un aggiornamento da CentOS 7 a CentOS 8 usando il gestore di pacchetti DNF.
Importante: questa procedura non è ufficiale. Non usarla su server di produzione senza prima testare e senza backup completi delle VM o dei dischi.
Prerequisiti
- Accesso root o sudo.
- Backup completo di dati e snapshot della VM.
- Spazio su disco sufficiente per pacchetti temporanei e kernel.
- Connessione internet stabile per scaricare pacchetti e repository.
Panoramica del processo
- Abilitare EPEL per CentOS 7.
- Installare utilità rpm/yum e risolvere conflitti RPM.
- Installare DNF e rimuovere yum.
- Aggiornare pacchetti e installare il release package di CentOS 8.
- Sincronizzare la distribuzione con dnf distro-sync e aggiornare kernel e GRUB.
- Installare il gruppo minimale e verificare la versione.
Procedura dettagliata
Scarica e installa il repository EPEL (CentOS 7):
yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpmInstalla le utilità yum-utils e rpmconf:
yum -y install rpmconf yum-utilsRisolvi i file di configurazione RPM interattivi:
rpmconf -aRisultato previsto:

Per la maggior parte dei file scegli “Keep Default” (conserva il valore corrente) se non sei sicuro.
Pulizia dei pacchetti non necessari:
package-cleanup --leaves
package-cleanup --orphansInstalla DNF (gestore basato su RPM):
yum -y install dnfRimuovi yum per evitare conflitti e cancella la directory di configurazione:
dnf -y remove yum yum-metadata-parser
rm -Rf /etc/yumAggiorna il sistema con DNF:
sudo dnf -y upgradeInstalla il pacchetto di release di CentOS 8 (sostituisci il mirror se preferisci):
dnf -y upgrade http://mirror.bytemark.co.uk/centos/8/BaseOS/x86_64/os/Packages/centos-release-8.0-0.1905.0.9.el8.x86_64.rpmAggiorna il repository EPEL verso la versione per CentOS 8:
dnf -y upgrade https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpmPulisci la cache dei repository:
dnf clean allRimuovi vecchi kernel se necessario (attenzione: conserva almeno un kernel funzionante):
rpm -e `rpm -q kernel`Rimuovi pacchetti che creano conflitti:
rpm -e --nodeps sysvinit-toolsAvvia l’aggiornamento della distribuzione (operazione principale):
dnf -y --releasever=8 --allowerasing --setopt=deltarpm=false distro-syncElabora nuove configurazioni se richiesto:
rpmconf -aAssicurati che kernel-core sia installato correttamente (reinstalla se necessario):
rpm -e kernel-core
dnf -y install kernel-coreVerifica e reinstalla GRUB nell’unità corretta:
ROOTDEV=`ls /dev/*da|head -1`;
echo "Detected root as $ROOTDEV..."
grub2-install $ROOTDEVInstalla il gruppo minimale (Core + Minimal Install):
dnf -y groupupdate "Core" "Minimal Install"Controlla la versione di CentOS aggiornata:
cat /etc/centos-release
Controlli prima dell’aggiornamento (checklist per l’amministratore)
- Eseguire backup completi (file, database, configurazioni).
- Creare snapshot della VM/disco.
- Elencare pacchetti installati e servizi attivi.
- Verificare spazio su disco (/boot, /var, /tmp).
- Annotare configurazioni custom (systemd overrides, network scripts).
- Testare ripristino dai backup.
Quando questo approccio può fallire
- Sistemi con pacchetti proprietari o repository terze parti che non sono disponibili per CentOS 8.
- Configurazioni complesse (es. kernel custom, moduli non più compatibili).
- Server in produzione con SLA stringenti: il rischio di downtime è significativo.
Alternative e approcci consigliati
- Reinstallazione pulita: provisioning di CentOS 8 su una nuova VM e migrazione delle applicazioni.
- Uso di container o VM per migrare servizi gradualmente.
- Valutare strumenti di migrazione ufficiali/community (ad es. Leapp per RHEL; la compatibilità con CentOS può variare). Testare sempre in laboratorio.
Mini-playbook rapido (SOP) — ordine operativo
- Snapshot/disco backup.
- Abilita EPEL e installa rpmconf/yum-utils.
- Installa DNF, rimuovi yum.
- Aggiorna release package di CentOS 8.
- Esegui dnf distro-sync con –allowerasing.
- Aggiorna kernel e reinstalla GRUB.
- Riavvia e verifica servizi.
- Ripristina configurazioni necessarie e monitorizza.
Matrice dei rischi e mitigazioni
| Rischio | Impatto | Probabilità | Mitigazione |
|---|---|---|---|
| Perdita dati | Alto | Bassa-media | Backup completi e test di ripristino |
| Incompatibilità pacchetti | Alto | Media | Testare su staging; elencare pacchetti terzi |
| Fallimento boot | Alto | Bassa | Conservare kernel precedente; avere console di emergenza |
| Downtime prolungato | Alto | Media | Pianificare manutenzione e rollback |
Glossario (1 riga ciascuno)
- DNF: gestore di pacchetti moderno per distribuzioni RPM.
- EPEL: repository Extra Packages for Enterprise Linux.
- RPM: formato e sistema di pacchettizzazione per Red Hat/CentOS.
- GRUB: bootloader usato per avviare il kernel.
Verifica post-aggiornamento
- Controlla che tutti i servizi essenziali (web, DB, monitoring) siano attivi.
- Controlla i log di sistema e dnf per errori.
- Verifica pacchetti orfani e dipendenze mancanti.
Riepilogo
Questa procedura descrive un percorso tecnico per aggiornare CentOS 7 a CentOS 8 in modo manuale usando DNF e pacchetti RPM. È utile per ambienti di test o per amministratori che devono migrare macchine isolate, ma non sostituisce una strategia di migrazione controllata per ambienti di produzione.
Note: sempre testare in laboratorio e pianificare rollback e backup completi prima di procedere in qualsiasi ambiente di produzione.