Premier Training & Business Partner Red Hat

Qual è la procedura ufficiale per aggiornare da RHEL6 a RHEL7?

Extraordy
Ti piacerebbe diventare anche tu uno di noi e
pubblicare i tuoi articoli nel blog degli RHCE italiani?

Red Hat Enterprise Linux 7 (RHEL 7) è la prima release di RHEL a permettere aggiornamento di versione diretto a partire dalla release precedente RHEL 6. Un aggiornamento di questo genere offre la possibilità di far passare il sistema a una nuova major release di Red Hat Enterprise Linux senza dover reinstallare da zero il sistema operativo preesistente.

RHEL7

Panoramica:

La procedura di aggiornamento diretto da RHEL 6 a RHEL 7 è completamente ed ufficialmente supportata a patto che il sistema RHEL da aggiornare soddisfi i seguenti criteri:

  • Ultima versione di Red Hat Enterprise Linux 6: prima di aggiornare a RHEL 7, bisogna necessariamente partire da una “fully updated” RHEL 6.
  • Server S390X o X86_64: solo le versioni server S390x e server 64-bit (X86_64) di Red Hat Enterprise Linux 6 possono essere aggiornate con questa procedura. Aggiornamenti di workstation RHEL e sistemi desktop non sono supportati. Aggiornamenti per architetture POWER sono pianificate per le prossime versioni, mentre l’aggiornamento di architetture 32 bit non è supportato, RHEL7 non è disponibile per IA-32.
  • Limite sui gruppi di pacchetti: il processo di aggiornamento è supportato solo per i seguenti gruppi di pacchetti: Minimal (@minimal), Base (@base), Server Web (@web-server), Server DHCP, File server (@nfs-server), e server di stampa (@print-server). Nonostante l’aggiornamento per gli altri gruppi e pacchetti non sia supportato, in alcuni casi i pacchetti possono essere disinstallati dal sistema RHEL 6 e reinstallati in quello aggiornato a RHEL 7 senza problemi.

La procedura di aggiornamento consiste nei semplici passi qui elencati ed approfonditi in seguito:

  1. Preparazione per l’aggiornamento:

    Assicurati che il tuo sistema sia backuppato e aggiornato prima di cominciare il preupgrade.

  2. Installazione del Preupgrade Assistant:

    Configura i repository necessari e installa i pacchetti del pre-aggiornamento (preupgrade).

  3. Esecuzione del Preupgrade Assistant:

    Controlla che il tuo sistema non abbia problemi con l’aggiornamento prima di farlo partire. Durante questo passo non vengono effettuate modifiche al tuo sistema ed è possibile ripetere la procedura finché non vengono risolti tutti gli eventuali problemi.

  4. aggiornamento:

    Fai partire il processo di aggiornamento.

  5. feedback:

    Crea un debug log da mandare a Red Hat se si sono incontrati problemi.

Step 1: Preparazione per l’aggiornamento:

Un aggiornamento totale del sistema non va preso alla leggera: prima di far partire la procedura su un sistema business critical, è bene prendere in considerazione i seguenti provvedimenti:

  • Test prima: non cercare di eseguire un aggiornamento su un sistema in produzione. E’ sempre bene clonare il sistema e testare la procedura di aggiornamento in un ambiente sicuro. Prima di usare il Red Hat Upgrade Tool, assicurati sopratutto di aver fatto un backup dei dati di produzione in modo da evitare potenziali perdite.
  • Passare a Subscription Management: Red Hat Enterprise Linux 7 usa i tool di Subscription Management (e.g. subscription-manager) invece che a quelli RHN classici (e.g. rhn_register). Se il sistema Red Hat Enterprise Linux 6 da aggiornare è stato registrato utilizzando RHN, puoi disiscriverti e poi registrarti di nuovo usando il comando subscription-manager. Se preferisci un metodo più automatizzato, si può utilizzare lo script di migrazione incluso nei pacchetti.
  • Aggiornare il sistema: per essere sicuro di avere gli ultimi pacchetti, registrati e sottoscrivi il sistema, poi esegui i seguenti comandi:
    # yum update -y
    # reboot
  • Considera altri repository: perchè l’aggiornamento funzioni correttamente, è possibile che sia necessario l’accesso ad altri repository oltre a quelli offerti dai pacchetti base di RHEL 7. In particolare, i repository per gli extra di RHEL 7 contengono alcuni pacchetti per lo più legati allo sviluppo di software che fanno parte anche nel sistema di base RHEL 6, ma non sono presenti sul DVD. Se sai che il tuo upgrade ha bisogno di pacchetti (e.g. per risolvere dipendenze) che non sono presenti nei repository di base di RHEL 7, puoi installare un sistema RHEL 7 separato che serva come repository FTP o HTTP. I comandi da eseguire da terminale per fare l’upgrade — verso la fine di una procedura di questo genere — assomigliano a quello riportato in seguito
    redhat-upgrade-tool --device /dev/sdb --addrepo optional=http://host/repo

Step 2: Installazione del preupgrade Assistant

Il Preupgrade Assistant — o assistente pre-aggiornamento, preupg — ha la funzione di prevenire i problemi che si possono incontrare nell’aggiornamento da Red Hat Enterprise Linux 6 a Red Hat Enterprise Linux 7. Serve inoltre a stimare le possibilità di eseguire con successo l’aggiornamento prima di far partire il processo effettivo.

Nota: E’ possibile, nonchè fortemente consigliato, lanciare il Preupgrade Assistant più volte prima di far partire la reale procedura di aggiornamento. Il Preupgrade Assistant non apporterà alcuna modifica, quindi alcuna complicazione al sistema installato. Tuttavia, una volta fatto l’aggiornamento del sistema, non sarà più possibile ritornare al sistema originario.

Il Preupgrade Assistant si occupa dei seguenti compiti:

  1. Stima le limitazioni del sistema nel caso di aggiornamento. Esempi di queste sono: rimozione di pacchetti, incompatibilità, cambiamenti di nomi o mancanze in file di configurazione.
  2. Fornisce un report con le analisi dei risultati
  3. Fornisce dati che possono essere utilizzati per clonare il sistema nel caso l’upgrade non sia possibile.
  4. Fornisce alcuni script da far partire a seguito dell’aggiornamento per gestire problemi più complessi che possono insorgere a seguito dell’upgrade.

E’ importante notare che, a parte per per l’aggiunta delle infomazioni/log, il Preupgrade Assistant non modifica in alcun modo il sistema.

Dal momento che il Preupgrade Assistant è pensato come una struttura modulare, nuovi check e nuove azioni di aggiornamento possono essere aggiunte con relativa semplicità. Ci si può quindi aspettare che questo strumento migliori con il tempo.

Per installare, configurare e eseguire il Preupgrade Assistant da Red Hat Enterprise Linux 6.x vanno seguiti i due seguenti step:

  1. Abilita i repository preupgrade: abilita il repository che contiene i pacchetti preupgrade-assistant, preupgrade-assistant-ui, e preupgrade-assistant-contents. Il repository cambia a seconda che ci si stia connettendo a un Red Hat Satellite Server o a unaSubscription Management nel portale Red Hat:RHN Classic (Satellite): 
# rhn-channel --add --channel rhel-x86_64-server-extras-6 # rhn-channel --add --channel rhel-x86_64-server-optional-6

Red Hat Subscription Management:

 

# subscription-manager repos --enable rhel-6-server-extras-rpms # subscription-manager repos --enable rhel-6-server-optional-rpms
  • Installa i pacchetti preupgrade: i pacchetti preupgrade contengono: preupgrade-assistant (che contiene il comando preupg), preupgrade-assistant-ui (che contiene l’interfaccia web opzionale), e preupgrade-assistant-contents (che contiene i moduli per i diversi test). Per installarli esegui il segente comando:
    # yum -y install preupgrade-assistant preupgrade-assistant-ui preupgrade-assistant-contents

Step 3: Esecuzione del Preupgrade Assistant

Dopo aver installato il pacchetto preupgrade, viene lasciata la scelta tra lanciare il Preupgrade Assistant in modo da avere i risultati in locale, oppure in modo da renderli visibili come pagina web tramite un web server Apache httpd.

Prima scelta: Lanciare il Preupgrade Assistant per consultazione in locale

Per lanciare il comando preupg in modo che l’output sia visibile sullo schermo e su file in locale sul sistema che si sta aggiornando, viene usata la procedura seguente.

Come prima cosa, lancia il comando preupg per far partire il Preupgrade Assistant come nell’esempio riportato:

# preupg    Senza opzioni, produce i risultati nei file result, html e tar.gz
Preupg tool doesn't do the actual upgrade.
Please ensure you have backed up your system and/or data in the event of a failed upgrade
that would require a full re-install of the system from installation media.
Do you want to continue? y/n
y
Gathering logs used by preupgrade assistant:
All installed packages : 01/10 ...finished (time 00:01s)
...
|Removed rpms                                                                       |needs_inspection  |
|Content for enabling and disabling services based on RHEL 6 system                 |needs_inspection  |
|Python 2.7.5                                                                       |needs_inspection  |
|Check for usage of dangerous range of UID/GIDs                                     |needs_inspection  |
|Packages not signed by Red Hat                                                     |needs_action      |
--------------------------------------------------------------------------------------------------------
Tarball with results is stored here /root/preupgrade-results/preupg_results-140528114006.tar.gz .
The latest assessment is stored in directory /root/preupgrade .
Summary information:
We found some potential in-place upgrade risks.
Read the file /root/preupgrade/result.html for more details.
Upload results to UI by command:
e.g. preupg -u http://127.0.0.1:8099/submit/ -r /root/preupgrade-results/preupg_results-*.tar.gz .

Quando preupg controlla il sistema, elenca l’esito di tutti i test che esegue, seguiti da un exit code che descrive il risultato globale del test. In questa modalità, vi sono due modalità per consultare i risultati:

  1. command line di preupg: i codici di uscita e i risultati appaiono sullo schermo. E’ possibile analizzare queste informazioni per avere un’idea della riuscita di ciascun test. Questo metodo fornisce solamente i codici di uscita, e non la descrizione completa di ogni problema incontrato.
  2. result.html: il file /root/preupgrade/result.html può essere aperto con qualsiasi browser web. Se non si ha a disposizione una GUI, si può aprire anche con il comando links, o più semplicemente copiare il file su un sistema su cui è presente un browser grafico per visualizzarlo più comodamente.

I risultati mostrati per ogni test includono un codice di uscita. I possibili valori includono:

  • PASS: significa che va tutto bene. Puoi procedere con l’aggiornamento quando tutti i codici di uscita vengono visualizzati come PASS.
  • FAIL: rischio estremo nell’aggiornamento. Non è possibile eseguirlo.
  • NEEDS_ACTION: alto rischio nell’aggiornamento. E’ necessario qualche tipo di azione da parte dell’amministratore prima di far partire l’aggiornamento Red Hat.
  • NEEDS_INSPECTION: rischio medio-basso. Questo codice di uscita non significa necessariamente che l’upgrade fallirà, ma potrebbe tradursi in un sistema non pienamente funzionale. Alcune componenti hanno bisogno di essere controllate e, dove necessario, sistemate dall’amministratore.
  • FIXED: indica che qualcosa è stato corretto automaticamente. Non c’è bisogno di ulteriori attenzioni.
  • INFORMATIONAL: informazioni utili ma non critiche in alcun modo.
  • NOT_APPLICABLE: il pacchetto di cui è stato richiesto il test non è installato sul sistema.
  • ERROR: questo solitamente indica errori negli strumenti. Questo genere di errori va riportato al supporto Red Hat.

Come notato prima, viene creato sul sistema un file HTML che contiene un resoconto dei risultati di preupg. E’ possibile visualizzare questo file in un browser web qualsiasi.

Se non è presente un ambiente desktop installato sul server, si può usare il comando links /root/preupgrade/result.html o copiare il file su un sistema dove è possibile utilizzare un browser grafico (ad esempio Firefox) per consultarlo, aprendolo come nel seguente esempio:

# firefox file:///root/preupgrade/result.html

Per ciascuno dei titoli che compaiono nella pagina web, si può selezionare l’entrata nella colonna dei risultati. A questo punto verrà mostrata una descrizione del problema riscontrato e la spiegazione su come risolverlo.

IMPORTANTE: Nella cartella che contiene i risultati, è presente il file README. Qui sono descritti più nel dettaglio scopo, utilizzo, struttura delle cartelle, codici di uscita e spiegazioni dei rischi associati a preupg.

Dopo averli individuati con preupg, correggi tutti gli eventuali errori ed esegui nuovamente il comando di controllo. Una volta che si è certi che tutto sia in regola, è possibile passare allo step successivo di aggiornamento.

Seconda scelta: Lanciare il Preupgrade Assistant per consultazione in remoto

Se si è installato il pacchetto preupgrade-assistant-ui, allora è possibile interagire con l’interfaccia web del Preupgrade Assistant da remoto. Questa permette di cconsultare e filtrare agevolmente i risultati delle analisi fatte sul sistema. Dal momento che la procedura di aggiornamento non prevede gli aggiornamenti dei pacchetti desktop GNOME, la procedura descritta in seguito fornisce un metodo per visualizzare in remoto i risultati del Preupgrade Assistant.

ATTENZIONE: Installare la web UI del Preupgrade Assistant, contrariamente ad altri utilizzi del comando preupg, cambia il contenuto del sistema che si sta aggiornando aggiungendo file nella cartella /etc/httpd/conf.d e facendo partire il servizio httpd sul sistema in modo da poter fornire il contenuto desiderato. Non bisogna eseguire questa procedura in un ambiente dove si è preoccupati di esporre informazioni sul sistema in rete o se si vuole evitare di aggiungere qualsiasi forma di contenuto al sistema che si vuole aggiornare. In quest’ultimo caso, si consiglia di utilizzare un metodo più semplice di visualizzare graficamente l’esito di preupg copiando su un sistema remoto il file result.html ed aprendolo con un browser web.

La procedura seguente serve a utilizzare la web UI del Preupgrade Assistant per accedere alle informazioni di preupgrade da un browser sulla rete.

  1. Installa httpd: se non è già installato sul sistema RHEL 6 che si sta aggiornando, installa il pacchetto httpd:
    # yum -y install httpd
  2. Configura il file conf.d: di default, il servizio di UI del preupgrade è reso disponibile solamente al sistema locale (127.0.0.1). Per renderlo disponibile sulla rete (TCP porta 8099) esegui i seguenti comandi:
    # cd /etc/httpd/conf.d
    # mv 99-preup-httpd.conf 99-preup-httpd.conf.private
    # cp 99-preup-httpd.conf.public 99-preup-httpd.conf
  3. Edita il nuovo file .conf: il file 99-preup-httpd.conf copiato nel punto precedente, rende la UI di preupgrade disponibile sull’indirizzo IP dell’host. Se si vuole accedere al servizio utilizzando un hostname invece che un indirizzo IP, si può modificare la specifica "NameVirtualHost" presente in questo file.
  4. Apri il firewall e SELinux: se sul sistema è attivo un firewall e SELinux è attivo in modalità enforcing, puoi usare i seguenti comandi per permettere l’accesso alla porta necessaria dal servizio della UI di preupgrade:
    # setsebool httpd_run_preupgrade on
    # iptables -I INPUT -m state --state NEW -p tcp --dport 8099 -j ACCEPT
  5. Fai ripartire il servizio httpd: esegui il seguente comando per far ripartire il servizio httpd con la nuova configurazione:
    # service httpd restart
  6. Accedi alla UI da un browser web: da un browser presente su un sistema differente (sono raccomandate le ultime versioni di Firefox e di Chrome), accedi alla web UI del preupgrade utilizzando l’indirizzo IP (e.g. http://192.168.99.1:8099) o l’hostname (e.g. http://preupg-ui.example.com:8099) qualora configurato.
  7. Aggiungi le informazioni di autenticazione: è possibile sia aggiungere un utente che disabilitare del tutto l’autenticazione nella UI web.
  8. Autenticati: la prima volta che si accede alla UI web del preupgrade, viene data la scelta tra creare un utente caratterizzato da indirizzo e-mail e password che permettono di accedere al servizio e disabilitare l’autenticazione. Se si seleziona “Submit” per creare un nuovo utente, questo abilita automaticamente il sistema di autenticazione anche se era stato precedentemente disabilitato.Se invece non si vuole rendere possibile l’autenticazione, seleziona “Disable Authentication”.
  9. Lancia il comando preupg: per lanciare il preupgrade in modo che i risultati siano caricati nella web UI, lancialo con le seguenti opzioni:
    # preupg -u http://localhost:8099/submit/
    Preup tool doesn't do the actual upgrade.
    Please ensure you have backed up your system ...
    Do you want to continue? y/n y
    Gathering logs used by preupgrade assistant:
    All installed packages : 01/10 ...finished ...
    ...
    Report submitted successfully. You can inspect it at http://localhost:8099/1/detail/
  10. Controlla i report del preupgrade: una volta che è stato eseguito il comando preupg, torna al browser sul secondo sistema e accedi nuovamente alla UI web — o esegui un semplice reload della pagina. Seleziona la data del preupgrade per visualizzare i risultati corrispondenti. Analizza ognuno degli elementi selezionandoli.
  11. Esegui le correzioni: correggi gli errori riscontrati dal comando preupg seguendo i suggerimenti descritti nella UI e poi lancialo nuovamente. Una volta che si è certi di aver rimediato ad ogni problema in cui si è incorso, è possibile procedere al passo dell’aggiornamento.

Step 4: Aggiornamento

Dopo aver completato il processo di Preupgrade Assistant ed aver risolto tutti i problemi, il passo successivo è quello di installare il pacchetto redhat-upgrade-tool sul sistema da aggiornare, far partire l’aggiornamento e riavviare.

IMPORTANTE: l’esecuzione degli strumenti di aggiornamento Red Hat, richiedono come prerequisito indispensabile di aver eseguito la procedura descritta nel punto precedente del Preupgrade Assistant. Se si cerca di eseguire l’aggiornamento senza rispettare questa condizione, il processo uscirà con il seguente errore: preupgrade-assistant has not been run;

In seguito è descritta la procedura da seguire per l’aggiornamento:

  1. Installa redhat-upgrade-tool: esegui il seguente comando per installare il pacchetto redhat-upgrade-tool:
    # yum install redhat-upgrade-tool
  2. Disabilita i repository (solo per Satellite): se è presente una subscription Red Hat Satellite, il plugin Red Hat Network di yum abiliterà di default alcuni repository che devono essere disabilitati prima di eseguire il comando redhat-upgrade-tool. Per disabilitare questo plugin, modifica la specifica “enabled” nel file /etc/yum/pluginconf.d/rhnplugin.conf come segue: enabled = 0
  3. Lancia redhat-upgrade-tool: per scaricare i pacchetti necessari all’aggiornamento e preparare il sistema all’installazione, si possono utilizzare diverse opzioni per indicare dove sono localizzati i pacchetti necessari.Per indicare la posizione di un repository che contiene i pacchetti Red Hat Enterprise Linux 7, usa l’opzione --instrepo. E’ importante notare che questo repository va creato manualmente e non viene fornito da Red Hat.Nell’esempio che segue, sono stati copiati i contenuti del DVD RHEL 7 in una cartella chiamata rhel7 su un server FTP che viene utilizzato come repository FTP. E’ anche possibile utilizzare protocolli http o https per questa operazione.
# redhat-upgrade-tool --network 7.0 --instrepo ftp://ftp.example.com/pub/rhel7

La versione può essere una qualsiasi versione successiva a quella corrente del sistema. Nel caso si specifichi una versione invalida, l’aggiornamento fallisce dopo aver cercato di contattare un repository non esistente.

Per aggiornare il sistema da un dispositivo montato in locale, per esempio un DVD o un USB che compaiono come device /dev/sdb, esegui il seguente comando come root:

# redhat-upgrade-tool --device /dev/sdb

Se questa opzione viene specificata senza un dispositivo, lo strumento controlla tutti i dispositivi rimuovibili.

Per aggiornare il sistema usando un’immagine ISO, va specificato il percorso fino all’immagine dopo l’opzione –iso. Per esempio, se il DVD di installazione di RHEL 7 è presente in locale in /var/isos/rhel7dvd.iso, il comando sarà:

# redhat-upgrade-tool --iso /var/isos/rhel7dvd.iso
  • Riavvio: per completare l’installazione, è necessario riavviare il sistema. Dopo aver riavviato, a seconda di quanti pacchetti sono stati aggiornati, potrebbe passare del tempo perchè la procedura sia ultimata. Se tutto è andato bene, il sistema eseguirà in boot come Red Hat Enterprise Linux 7 e si potrà controllare che tutto sia pienamente funzionale.
  • Eseguire le operazioni post-aggiornamento: gli script che sono stati creati dal Preupgrade Assistant per i punti marchiati come FIXED, partiranno in automatico dopo l’aggiornamento. Ogni altra mansione post-aggiornamento che l’amministratore deve eseguire manualmente è descritta nei risultati del Preupgrade Assistant.
  • Controllare il sistema: se il sistema originale era stato registrato ed era stata completata la subscription per RHEL 6, il processo di aggiornamento avrà correttamente adeguato queste informazioni a RHEL 7. Per esser certi che il sistema sia stato correttamente aggiornato e ci sia la corretta subscription per RHEL 7, si possono eseguire il seguenti comandi:
    # yum repolist 
    Loaded plugins: product-id, subscription-manager repo id repo name status rhel-7-rpms 
    Red Hat Enterprise Linux 7 Server (RPMs) 4,323 
    # cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.0 (Maipo)
  • Aggiorna la lista dei repository: se la lista dei repository non è stata aggiornata correttamente a quelli di RHEL 7, va cancellata la subscription, rieseguita per un sistema RHEL 7 e vanno aggiunti i repository necessari come segue:
    # subscription-manager remove --all 
    # subscription-manager unregister
    # subscription-manager register 
    # subscription-manager attach --pool=poolID 
    # subscription-manager repos --enable=repoID

    Nota che tutti i repository disponibili sono elencati nel file /etc/yum.repos.d/redhat.repo.

  • Esecuzione di yum update: se l’aggiornamento sembra essere andato a buon fine, aggiorna tutti i nuovi pacchetti RHEL 7 alle ultime versioni con i seguenti comandi:
    # yum update -y
    # reboot

Step 5: Conclusioni e Feedback

E’ sempre bene contribuire alla community ed al supporto Red Hat inviando dei feedback nel caso si siano riscontrati problemi durante l’aggiornamento. Laddove possibile, è consigliato aprire report dei bug o support cases in modo che si possano analizzare e risolvere correttamente le eventuali problematiche. Il file di debug da fornire in questi casi è presente sul sistema su cui è stata eseguita la procedura di aggiornamento in /var/log/upgrade.log.

Info about author

Extraordy