Come applicare patch ai computer Linux che risiedono in un ambiente disconnesso

Se si dispone di computer client Linux che risiedono in un ambiente disconnesso, l'agente non sarà in grado di utilizzare YUM per scaricare i pacchetti RPM da internet. Sarà necessario eseguire le seguenti operazioni:

  • Configurare e popolare uno o più repository locali "in loco" contenenti l'intera libreria di RPM disponibili
  • Configurare i propri computer client in modo da ricercare nel repository locale corretto gli RPM mancanti, piuttosto che in internet

Le seguenti informazioni sono intese come linee guida generali per la creazione e l'utilizzo di un repository locale. In caso di domande o problemi specifici, contattare il proprio fornitore del sistema operativo Linux.

Come configurare un repository locale

Requisiti

È possibile utilizzare qualsiasi macchina server Linux supportata come repository locale. L'unico requisito è che contenga abbastanza spazio disponibile su disco per ospitare l'intero inventario di pacchetti RPM disponibili. Sono presenti molti repository pubblici diversi contenenti pacchetti RPM. Ad esempio, è presente un deposito pubblico per gli RPM RHEL 9, un altro deposito pubblico per gli RPM RHEL 8, ecc. Come regola generale, il proprio computer repository locale deve contenere almeno 100 GB di spazio su disco per ciascun repository pubblico che si scaricherà.

Probabilmente per questo processo saranno necessarie due o più macchine server Linux.

  • Scenario 1: è possibile scegliere di utilizzare un computer che verrà utilizzato come repository locale per tutte le versioni diverse di RPM. In questo scenario, il computer che si usa come deposito può scaricare gli RPM della stessa versione della distribuzione usata sul computer deposito. Tuttavia, sarà necessario un computer separato per scaricare gli RPM per ogni diversa versione di ciascuna distribuzione utilizzata all'interno dell'organizzazione.
  • Per esempio, se la propria organizzazione contiene computer client RHEL 9 x64, RHEL 8 x64 e CentOS 7 x64, sarebbe possibile usare un computer server RHEL 9 x64 come deposito locale e usarlo per scaricare tutti gli RPM per i propri server, workstation, desktop, ecc. di RHEL 9. È possibile utilizzare computer separati RHEL 8 x64 e CentOS 7 x64 per scaricare tutti gli RPM per i server RHEL 8 e CentOS, workstation, desktop, ecc. per poi trasferire tali RPM al computer repository locale.

  • Scenario 2: si può scegliere di mantenere tre diversi depositi locali: uno per tutti i RHEL 9 RPM, un altro per tutti i RHEL 8 RPM e un terzo per tutti i CentOS 7 RPM. Questo scenario richiede tre computer dedicati che fungano da deposito, ma elimina la fase di trasferimento aggiuntivo e il problema di mantenere il deposito comune.

Processo di configurazione

Dato che saranno richieste molte ore per scaricare l'intera libreria di pacchetti RPM disponibili nel proprio repository locale, il consiglio è di eseguire la procedura di configurazione in due fasi diverse. La Fase 1, in cui l'utente scaricherà tutti gli RPM disponibili, deve essere eseguita al termina della giornata lavorativa, in modo che la procedura di download possa avvenire nel corso della notte. La Fase 2 può quindi essere eseguita il giorno seguente.

È necessario disporre dei privilegi di root per eseguire i seguenti comandi.

Fase 1

  1. Creare la directory che si intende utilizzare come deposito.
    Ad esempio, il comando seguente crea una directory che verrà utilizzata per contenere RPM Red Hat 9 RPM.
  2. mkdir –p /repos/redhat/9

  3. Visualizzare l'elenco di depositi pubblici disponibili per l'utente da utilizzare per popolare il proprio deposito locale.
    I depositi pubblici disponibili per l'utente si basano sulla propria sottoscrizione RHEL.
  4. yum repolist

  5. Utilizzando YUM, installare il pacchetto che include reposync.
  6. yum install yum-utils

  7. Scaricare tutti i pacchetti disponibili dal repository pubblico prescelto.
    Ad esempio, il seguente comando scarica gli RPM dal deposito pubblico rhel-9-for-x86_64-baseos-rpms.
  8. reposync –-gpgcheck –l –-repoid=rhel-9-for-x86_64-baseos-rpms –-download_path=/repos/redhat/9

    Il processo di download richiederà molto tempo, pertanto pianificare le operazioni di conseguenza. L'opzione -gpgcheck rimuove i pacchetti che non superano il controllo firma durante il processo di download.

  9. Ripetere il Punto 3 per ciascuna variante di repository pubblico richiesta.
  10. Ad esempio, se la propria organizzazione contiene RHEL 9 sia su Intel che su ARM, sarà necessario scaricare gli RPM da entrambi i depositi pubblici associati. Potrebbero essere richiesti diversi giorni per eseguire tutti i necessari download.

    Non tentare di scaricare RPM per una versione diversa di Red Hat o CentOS. Ad esempio, un computer RHEL 9 non può essere utilizzato per scaricare RPM per computer RHEL 8 x64 o per computer RHEL 7 x64.

Fase 2

Il processo qui descritto crea un repository accessibile via HTTP. Vi sono anche altri metodi utilizzabili per creare un repository. È possibile utilizzare qualsiasi metodo con cui si abbia familiarità.

  1. Utilizzando YUM, installare il programma che fornisce la capacità di creare un repository.
  2. yum install createrepo

  3. Creare il deposito.
  4. createrepo /repos/redhat/9

    Se si riceve un errore in cui si afferma che non è possibile aprire un file *.rpm, verificare di non aver esaurito lo spazio su disco. Se non vi sono problemi di spazio, è possibile ripetere il passaggio di download (Passaggio 3 nella Fase 1). È possibile che alcuni file non fossero presenti la prima volta in cui è stato eseguito il download

  5. Installare il servizio web Apache.
    Ciò fornirà la capacità di accedere al proprio repository locale usando il protocollo HTTP.
  6. yum install httpd

  7. Aprire la Porta 80 nel proprio firewall locale.
    Ciò si verifica perché stiamo configurando il repository per utilizzare HTTP. Anche HTTPS è un'opzione ma qui HTTP è utilizzato per semplificare l'esempio.
  8. Modificare il file httpd.conf e aggiungere una qualsiasi delle seguenti voci mancanti.
  9. vi /etc/httpd/conf/httpd.conf

     

    ServerAdmin root@localhost

    DocumentRoot /var/www/html

    ServerName <machinename>

  10. Collegare il proprio nuovo repository alla posizione sito web predefinito.
  11. ln -s /repos/redhat /var/www/html/redhat

  12. Verificare la sintassi del servizio web Apache.
  13. httpd -t

  14. Avviare il servizio web Apache.
  15. systemctl start httpd

    Potrebbe essere necessario ripetere questo comando ogni volta in cui il server viene riavviato. È possibile utilizzare i comandi seguenti per avviare automaticamente il servizio ogni volta in cui il server viene riavviato:
    systemctl enable httpd.

  16. Ottenere il file zip updateinfo.xml.gz.
  17. I passaggi 9 - 13 si applicano solo alle macchine Red Hat.

    yum list-sec

  18. Copiare i file *updateinfo.xml.gz dalla posizione predefinita alla cartella /repodata.
  19. cp /var/cache/yum/x86_64/9rhServer/rhel-9-for-x86_64-baseos-rpms/*updateinfo.xml.gz /repos/redhat/9/repodata/

  20. Decomprimere il file *updateinfo.xml.gz.
  21. gzip –d /repos/redhat/9/repodata/*updateinfo.xml.gz

  22. Rinominare il file *updateinfo.xml per eliminare caratteri iniziali non necessari.
  23. mv /repos/redhat/9/repodata/*updateinfo.xml /repos/redhat/9/repodata/updateinfo.xml

  24. Modificare il repository per confermare che contiene il file updateinfo.xml.
  25. modifyrepo /repos/redhat/9/repodata/updateinfo.xml /repos/redhat/9/repodata/

  26. (Si applica solo ai computer che presentano SELinux abilitato). Fornire autorizzazione per www/html/redhat per accedere a /repos/redhat.
  27. cd /var/www/html

    chcon -R -t httpd_sys_content_t redhat/

Ripetere la procedura di configurazione per altre versioni e distribuzioni di Linux

Sarà necessario ripetere in tutto o in parte la procedura di configurazione per ogni diversa versione di ciascuna distribuzione di Linux supportata nella propria organizzazione. Ad esempio, è necessario utilizzare un computer RHEL 9 per scaricare RHEL 9 RPM, un computer CentOS 7 x64 per scaricare CentOS 7 x64 RPM, un computer RHEL 8 x64 per scaricare RHEL 8 x64 RPM, ecc. Modificare i comandi secondo necessità per ogni versione unica di Linux.

Scenario 1: se si utilizza un solo repository per tutte le diverse versioni di Linux

Ipotizzando di stare utilizzando un computer Red Hat 9 come deposito, ecco cosa sarà necessario ripetere al fine di recuperare gli RPM Red Hat 8:

  1. Sul computer deposito Red Hat 9, ripetere la Fase 1, Passaggio 1 ma specificare /repos/redhat/8.
  2. Su un computer Red Hat 8, eseguire la Fase 1, Passaggi 3 e 4.
    Nel Passaggio 3, la directory repos/redhat/9 non esisterà sul computer Red Hat 8, pertanto rimuovere l'opzione -download_path e ripristinare la posizione predefinita oppure specificare una posizione diversa.
  3. Una volta terminato il download degli RPM, trasferirli nella directory repos/redhat/8 del proprio deposito locale.
    Al termine si avrà un repository su un computer contenente i pacchetti RPM per tutte le versioni supportate di Red Hat.

Scenario 2: se si mantengono depositi separati per ogni diversa versione di Linux

Ripetere l'intera procedura di configurazione per ogni diversa versione di Linux supportata dalla propria organizzazione.

Puntare i propri computer client Linux al repository locale

È necessario modificare YUM su ciascun client Linux in modo che cerchi il repository locale per RPM piuttosto che su internet.

Se si sceglie di mantenere un repository locale diverso per ogni versione di Linux, assicurarsi di puntare ogni client al repository locale corretto.

  1. Accedere al computer client.
  2. Passare alla directory che elenca dove si trovano i depositi.
  3. cd /etc/yum.repos.d

  4. Creare un file denominato local.repo, quindi configurarlo per puntare al proprio nuovo deposito locale.
  5. nano local.repo

    [mylocalrepo]

    name=Local Rhel9 Server Repo

    baseurl=http://es-nxt-rhel9-repo.example.com/redhat/9

    gpgcheck=0

  6. Specificare che se un RPM risulta mancante dal repository locale, il cliente non deve cercare di trovarlo su internet (disconnette il computer client).
  7. È

    vi qualsiasi file diverso da local.repo (esempio redhat.repo)

    Cercare il proprio repoid (ad esempio rhel-9-for-x86_64-baseos-rpms)

    Impostare abilitato = 0

Manutenzione periodica del proprio repository

Sarà necessario mantenere il proprio repository locale aggiornato effettuando periodicamente nuove sincronizzazioni con il repository pubblico. Quando si esegue il comando seguente, solo i nuovi pacchetti RPM verranno scaricati nel proprio deposito locale.

reposync –gpgcheck –l –repoid=rhel-9-for-x86_64-baseos-rpms –download_path=/repos/redhat/9

createrepo --update /repos/redhat/9

Reti a tenuta stagna

Se la propria organizzazione mantiene una rete "a tenuta stagna", cioè una rete in cui nessun computer client può connettersi ad alcun computer con accesso internet, sarà necessario configurare e mantenere un secondo repository. Ciò viene illustrato nel seguente diagramma.

In questo caso, dopo aver impostato e configurato il proprio repository connesso come descritto sopra, si configurerà un secondo repository su un computer disconnesso per poi utilizzare un supporto removibile per trasferire manualmente i file dal repository connesso al repository disconnesso. I propri computer client Linux devono quindi essere configurati in modo da puntare al repository disconnesso piuttosto che al repository connesso.

Informazioni correlate

https://access.redhat.com/solutions/23016