IL BLOG DEGLI RHCE ITALIANI

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

Extraordy

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:

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:

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

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:

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

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

Prenota subito il tuo corso ufficiale Red Hat

GUARDA I CORSI