Nota del redattore:questo articolo è stato scritto mentre James Brigman era membro del programma Red Hat Accelerator.
Red Hat Satellite fornisce un mezzo per aggiornare i sistemi Red Hat Linux con RPM nuovi o aggiornati. Satellite ospita i repository in locale in modo da poter ottenere quegli aggiornamenti più velocemente e per un numero maggiore di client. Questa caratteristica diventa importante per il nostro processo di sviluppo software, perché abbiamo bisogno di creare e distruggere rapidamente macchine virtuali a servizio del processo di sviluppo.
Il nostro server Satellite viene spesso utilizzato durante il ciclo di sviluppo, quindi dobbiamo sapere che funziona correttamente. Se si verificano problemi, dobbiamo individuarli e risolverli rapidamente in modo che gli sviluppatori possano continuare il loro lavoro senza interruzioni.
Questo articolo descrive i punti salienti del processo e include le lezioni apprese dall'aggiornamento e dall'aggiornamento del mio server Red Hat Satellite.
Un avvertimento importante
Se esegui Satellite come macchina virtuale (in qualunque sistema VM utilizzi), esegui un backup o uno snapshot. Se esegui Satellite su Red Hat Enterprise Linux in esecuzione bare metal, esegui un backup completo. Vuoi essere in grado di tornare allo stato originale in caso di problemi.
[Vuoi provare Red Hat Enterprise Linux? Scaricalo ora gratuitamente.]
Aggiornamento e aggiornamento
Il tempo scorre. Questo fatto significa che per quelli di noi nella professione di amministratore di sistema, l'aggiornamento del software è un'attività costante. Eseguiamo l'aggiornamento per vari motivi, sia per poter ottenere supporto per i prodotti che eseguiamo, ottenere (e mantenere) le funzionalità necessarie o migliorare le prestazioni.
Per Satellite, i termini aggiornamento e aggiornamento hanno significati molto specifici. Aggiornamento è quando esegui un aggiornamento punto al software esistente. Per questa discussione, aggiornamento ci ha portato da Red Hat Satellite 6.4.2 a 6.4.4. Entrambi sono ancora Satellite 6.4 (versione principale), ma il secondo è cambiato da .2 a .4 (versione secondaria).
Aggiornamento è quando si porta il server Satellite da una versione principale precedente a una versione principale più recente. Dopo l'aggiornamento, ho lavorato per aggiornare il server dalla versione principale 6.4 alla versione principale 6.5.
Alla fine del processo, il nostro server satellite è stato spostato dalla 6.4.2 alla 6.5.2.1.
Aggiornamento e aggiornamento
Il processo di aggiornamento o aggiornamento prevede quattro passaggi principali. Diamo un'occhiata a ciascuno.
Un satellite ordinato
Prima dell'aggiornamento o dell'aggiornamento, disponi di un'utilità in grado di controllare lo stato corrente del tuo satellite e consigliarti su quanto sei pronto per eseguire l'aggiornamento o l'aggiornamento. Tale utilità è foreman-maintain
ed è descritto nella documentazione di Satellite.
Puoi cercare su access.redhat.com con il termine "upgrade satellite 6.5" per trovare questo link. In Filtri del tipo di contenuto , seleziona Documentazione per limitare la tua ricerca. Troverai importanti definizioni, prerequisiti e percorsi di aggiornamento a questo URL.
I passaggi elencati in questo documento culminano nell'esecuzione di foreman-maintain
comando in modalità aggiornamento. Questo comando passa attraverso il tuo server Satellite, verificandone l'idoneità ad essere aggiornato prima tu fai l'aggiornamento vero e proprio. Il comando che ho usato per entrambi aggiornamento e aggiornare era lo stesso, con diverse versioni di destinazione:
# /usr/bin/foreman-maintain upgrade check --target-version 6.4.z
Naturalmente, la sintassi corretta per il tuo Satellite varierà.
Essere incaricato dalle attività
Il mio controllo di aggiornamento non è riuscito più volte. Il motivo più importante è che per la versione che stavo utilizzando, avevo attività avanzate da molto tempo che non si concludevano nello stato necessario. Sono stato in grado di cancellare queste attività usando un foreman-rake
comando:
# /usr/bin/foreman-rake foreman_tasks:cleanup TASK_SEARCH='label = Actions::Katello::Repository::MetadataGenerate' STATES='running,pending,stopped' VERBOSE=true
Come il foreman-maintain
comando sopra, il tuo foreman-rake
il comando può variare a seconda dell'output del controllo di aggiornamento.
Il punto di non ritorno
Alla fine, ho raggiunto il punto in cui ero pronto per eseguire l'aggiornamento stesso. Con una mossa saggia, utilizzerai lo stesso comando per eseguire l'aggiornamento effettivo, ma con una modifica. La parola check
diventa run
:
# /usr/bin/foreman-maintain upgrade run --target-version 6.4.z
Il mio aggiornamento ha avuto successo. Questo risultato è dovuto in gran parte al test e al controllo prima dell'aggiornamento a disposizione dell'amministratore di sistema. Questo passaggio è una considerazione importante per un sistema mission-critical come Satellite.
Verifica post-aggiornamento
Il upgrade
il comando stesso ti dà un output utile. Questo output si trova nel registro prodotto da foreman-maintain
:
=============================================
Upgrade Step 3/10: katello:clean_backend_objects. This may take a long while.
0 orphaned consumer id(s) found in candlepin.
Candlepin orphaned consumers: []
0 orphaned consumer id(s) found in pulp.
.....
=============================================
Upgrade Step 10/10: katello:upgrades:3.11:clear_checksum_type.
foreman-rake upgrade:run finished successfully!
Upgrade completed!
Il log è importante e utile, ma ci sono altri controlli che puoi fare per verificare lo stato del tuo server Satellite, come ad esempio:
# /usr/bin/foreman-maintain health check
L'output di questo comando è simile a (modificato per adattarsi):
Running ForemanMaintain::Scenario::FilteredScenario
Check for verifying syntax for ISP DHCP configurations: [SKIPPED]
DHCP feature is not enabled
----------------------------------------------------------------
Check whether all services are running: [OK]
----------------------------------------------------------------
Check whether all services are running using hammer ping: [OK]
----------------------------------------------------------------
Check for paused tasks: [OK]
----------------------------------------------------------------
Più controlli sanitari post-aggiornamento
Ecco altri tre controlli aggiuntivi per verificare lo stato di post-aggiornamento del tuo server Satellite. I primi controlli per vedere se le API Satellite sono disponibili e rispondono:
# /usr/bin/hammer ping
candlepin:
Status: ok
Server Response: Duration: 19ms
candlepin_auth:
Status: ok
Server Response: Duration: 21ms
pulp:
Status: ok
Server Response: Duration: 72ms
pulp_auth:
Status: ok
Server Response: Duration: 36ms
foreman_tasks:
Status: ok
Server Response: Duration: 5ms
Il secondo controlla lo stato del servizio con il foreman-maintain
comando, che controlla i servizi principali usando systemctl
comandi:
# /usr/bin/foreman-maintain service status
L'output è troppo dettagliato per essere incluso qui, ma lo riconoscerai dall'uso di systemctl
.
Il terzo comando verifica che tu possa sincronizzare un repository:
Content --> Product --> Repository --> <choose repo to sync>
Conclusione
L'aggiornamento di un server Red Hat Satellite è già abbastanza impegnativo quando è un componente mission-critical della tua azienda. Sfrutta tutte le opportunità possibili per verificare che il server sia in condizione di aggiornarsi e disporre di backup in modo da poter eseguire il rollback se necessario. Nel mio caso, ho persino aperto casi con supporto per discutere l'output dei controlli pre e post e ho ricevuto un grande aiuto.
Il mio aggiornamento si è rivelato utile. Il carico sul mio server Satellite è stato leggermente ridotto, le prestazioni sono state leggermente migliorate e molte vecchie attività bloccate sono state cancellate. Forse il vantaggio più importante è stato acquisire maggiore familiarità con Satellite e gli importanti comandi necessari per portare a termine l'attività.