Patchen von Linux-Computern in einer getrennten Umgebung

Falls Sie über Linux-Computer verfügen, die sich in einer getrennten Umgebung befinden, ist der Agent nicht in der Lage, über YUM die erforderlichen RPM-Pakete aus dem Internet herunterzuladen. Sie müssen daher folgendermaßen vorgehen:

  • Richten Sie ein oder mehrere lokale "on-premise"-Repositorys ein, in denen die gesamte Bibliothek der verfügbaren RPMs enthalten ist, und befüllen Sie diese.
  • Konfigurieren Sie Ihre Clientcomputer so, dass sie die fehlenden RPMs statt im Internet im richtigen lokalen Repository suchen.

Die folgenden Informationen sind als allgemeine Leitlinie für das Einrichten und Verwenden eines lokalen Repositorys zu verstehen. Falls Sie spezifische Fragen oder Probleme haben, wenden Sie sich an den Anbieter Ihres Linux-Betriebssystems.

Einrichten eines lokalen Repositorys

Anforderungen

Sie können jeden unterstützten Linux-Servercomputer als lokales Repository verwenden. Die einzige Voraussetzung ist genügend freier Festplattenspeicherplatz für die Unterbringung des gesamten Inventars an verfügbaren RPM-Paketen. Es gibt viele verschiedene öffentliche Repositorys, die RPM-Pakete enthalten. So gibt es beispielsweise ein öffentliches Repository für RHEL 9-Server-RPMs, ein weiteres für RHEL 8-RPMs usw. Generell sollte Ihr lokaler Repositorycomputer einen freien Festplattenspeicherplatz von mindestens 100 GB für jedes öffentliche Repository aufweisen, das Sie herunterladen möchten.

Vermutlich benötigen Sie für diesen Prozess zwei oder mehr weitere Linux-Servercomputer.

  • Szenario 1: Sie wählen einen Computer, der als lokales Repository für alle RPM-Versionen fungiert. In diesem Szenario kann der als Repository eingesetzte Computer RPMs derselben Version oder Distribution herunterladen, die auch auf dem Repositorycomputer verwendet wird. Sie benötigen jedoch einen separaten Computer, um die RPMs für jede unterschiedliche Version einer Distribution herunterzuladen, die innerhalb Ihres Unternehmens verwendet wird.
  • Beispiel: Wenn in Ihrem Unternehmen RHEL 9 x64-, RHEL 8 x64- und CentOS 7 x64-Clientcomputer vorhanden sind, können Sie einen RHEL 9 x64-Servercomputer als lokales Repository verwenden und damit alle RPMs für Ihre RHEL 9-Server, -Workstations, -Desktops usw. herunterladen. Sie benötigen jedoch einen separaten RHEL 8 x64- und CentOS 7 x64-Computer, um die RPMs für Ihre RHEL 8- und CentOS-Server, -Workstations, -Desktops usw. herunterzuladen. Anschließend müssen diese RPMs dann noch an den lokalen Repositorycomputer übertragen werden.

  • Szenario 2: Sie können auch drei unterschiedliche lokale Repository einsetzen: eines für die RHEL 9-RPMs, eines für die RHEL 8-RPMs und ein drittes für die CentOS 7-RPMs. Für dieses Szenario sind drei dedizierte Computer erforderlich, die als Repository fungieren. Der zusätzliche Schritt des Transferierens ist jedoch überflüssig und es muss auch kein gemeinsames Repository verwaltet werden.

Konfigurationsprozess

Da es vermutlich mehrere Stunden dauern wird, die gesamte Bibliothek an verfügbaren RPM-Paketen in das lokale Repository herunterzuladen, wird empfohlen, den Konfigurationsprozess in zwei Phasen zu unterteilen. Phase 1, in der alle verfügbaren RPMs heruntergeladen werden, sollte am Ende des Geschäftstags gestartet werden, sodass das Herunterladen über Nacht erfolgen kann. Phase 2 kann dann am Folgetag umgesetzt werden.

Zum Ausführen der folgenden Befehle benötigen Sie root-Berechtigungen.

Phase 1

  1. Legen Sie das Verzeichnis fest, das Sie als Repository verwenden möchten.
    Beispiel: Mit dem folgenden Befehl wird ein Verzeichnis erstellt, in dem später die Red Hat 9-RPMs enthalten sein sollen.
  2. mkdir –p /repos/redhat/9

  3. Zeigen Sie die Liste der verfügbaren öffentlichen Repositorys an, mit dem Sie Ihr lokales Repository befüllen können.
    Welche öffentlichen Repositorys für Sie verfügbar sind, ist davon abhängig, welches RHEL-Abonnement Sie abgeschlossen haben.
  4. yum repolist

  5. Installieren Sie über YUM das Paket, in dem "reposync" enthalten ist.
  6. yum install yum-utils

  7. Laden Sie alle verfügbaren Pakete aus dem öffentlichen Repository Ihrer Wahl herunter.
    Beispiel: Mit dem folgenden Befehl werden die RPMs aus dem öffentlichen Repository "rhel-9-for-x86_64-baseos-rpms" heruntergeladen.
  8. reposync –-gpgcheck –l –-repoid=rhel-9-for-x86_64-baseos-rpms –-download_path=/repos/redhat/9

    Das Herunterladen wird einige Zeit dauern, planen Sie dies bitte ein. Mit der Option "-gpgcheck" werden die Pakete entfernt, die während des Herunterladens die Signaturprüfung nicht bestanden haben.

  9. Wiederholen Sie Schritt 3 für jede erforderliche Variante eines öffentlichen Repositorys.
  10. Beispiel: Wenn Ihr Unternehmen RHEL 9 sowohl auf Intel als auch ARM verwendet, müssen Sie die RPMs von beiden zugehörigen öffentlichen Repositorys herunterladen. Es kann mehrere Tage dauern, bis alle Downloads abgeschlossen sind.

    Versuchen Sie nicht, RPMs für eine andere Version von Red Hat oder CentOS herunterzuladen. Beispiel: Es kann kein RHEL 9-Computer verwendet werden, um RPMs für RHEL 8 x64-Computer oder RHEL 7 x64-Computer herunterzuladen.

Phase 2

Mit dem hier beschriebenen Prozess wird ein Repository erstellt, auf das über HTTP zugegriffen werden kann. Es gibt noch weitere Methoden zum Erstellen eines Repositorys. Wählen Sie die Methode aus, mit der Sie am besten vertraut sind.

  1. Installieren Sie über YUM das Programm, mit dem sich ein Repository erstellen lässt.
  2. yum install createrepo

  3. Erstellen Sie das Repository.
  4. createrepo /repos/redhat/9

    Falls Sie eine Fehlermeldung erhalten, wonach keine .rpm-Datei geöffnet werden kann, überprüfen Sie, ob Sie über genügend freien Festplattenspeicherplatz verfügen. Falls es nicht am Speicherplatz liegt, wiederholen Sie den Herunterladevorgang (Schritt 3 aus Phase 1). Möglicherweise wurden beim ersten Versuch nicht alle Dateien heruntergeladen.

  5. Installieren Sie den Apache-Webdienst.
    Dadurch erhalten Sie die Möglichkeit, über das HTTP-Protokoll auf Ihr lokales Repository zuzugreifen.
  6. yum install httpd

  7. Öffnen Sie Port 80 in Ihrer lokalen Firewall.
    Dies ist erforderlich, damit das Repository HTTP verwenden kann. HTTPS kann ebenfalls verwendet werden, in unserem Beispiel verwenden wir jedoch der Einfachheit halber HTTP.
  8. Bearbeiten Sie die Datei "httpd.conf", indem Sie die folgenden eventuell fehlenden Einträge hinzufügen.
  9. vi /etc/httpd/conf/httpd.conf

     

    ServerAdmin root@localhost

    DocumentRoot /var/www/html

    ServerName <machinename>

  10. Verknüpfen Sie Ihr neues Repository mit dem Speicherort der Standardwebsite.
  11. ln -s /repos/redhat /var/www/html/redhat

  12. Überprüfen Sie die Syntax des Apache-Webdienstes.
  13. httpd -t

  14. Starten Sie den Apache-Webdienst.
  15. systemctl start httpd

    Möglicherweise müssen Sie diesen Befehl bei jedem Neustart des Servers wiederholen. Mit den folgenden Befehlen legen Sie fest, dass der Dienst bei jedem Serverneustart automatisch gestartet wird:
    systemctl enable httpd.

  16. Rufen Sie die ZIP-Datei "updateinfo.xml" ab.
  17. Die Schritte 9 bis 13 gelten nur für Red Hat-Computer.

    yum list-sec

  18. Kopieren Sie die Dateien "*updateinfo.xml.gz" vom Standardspeicherort in den Ordner "/repodata".
  19. cp /var/cache/yum/x86_64/9rhServer/rhel-9-for-x86_64-baseos-rpms/*updateinfo.xml.gz /repos/redhat/9/repodata/

  20. Entpacken Sie die Datei "*updateinfo.xml.gz".
  21. gzip –d /repos/redhat/9/repodata/*updateinfo.xml.gz

  22. Benennen Sie die Datei "*updateinfo.xml" so um, dass keine unnötigen führenden Zeichen vorhanden sind.
  23. mv /repos/redhat/9/repodata/*updateinfo.xml /repos/redhat/9/repodata/updateinfo.xml

  24. Ändern Sie das Repository, um zu bestätigen, dass es die Datei "updateinfo.xml" enthält.
  25. modifyrepo /repos/redhat/9/repodata/updateinfo.xml /repos/redhat/9/repodata/

  26. (gilt nur für Computer mit aktiviertem SELinux) Gewähren Sie Berechtigungen für "www/html/redhat" für den Zugriff auf "/repos/redhat".
  27. cd /var/www/html

    chcon -R -t httpd_sys_content_t redhat/

Wiederholen des Konfigurationsprozesses für weitere Linux-Versionen und -Distributionen

Sie müssen den Konfigurationsprozess für jede unterschiedliche Version einer Distribution von Linux, die in Ihrem Unternehmen unterstützt wird, ganz oder teilweise wiederholen. So benötigen Sie beispielsweise einen RHEL 9-Computer zum Herunterladen von RHEL 9-RPMs, einen CentOS 7 x64-Computer zum Herunterladen von CentOS 7 x64-RPMs und einen RHEL 8 x64-Computer zum Herunterladen von RHEL 8 x64-RPMs usw. Ändern Sie die Befehle nach Bedarf für die jeweilige Version von Linux ab.

Szenario 1: Verwendung eines einzigen Repositorys für alle unterschiedlichen Linux-Versionen

Wenn Sie beispielsweise einen Red Hat 9-Computer als Repository verwenden, müssen Sie Folgendes wiederholen, um Red Hat 8-RPMs abzurufen:

  1. Wiederholen Sie auf dem Red Hat 9-Repositorycomputer Phase 1, Schritt 1, wobei Sie jedoch "/repos/redhat/8" angeben.
  2. Bei Verwendung eines Red Hat 8-Computers führen Sie Phase 1 sowie die Schritte 3 und 4 durch.
    Bei Schritt 3 existiert das Verzeichnis "repos/redhat/9" jedoch nicht auf dem Red Hat 8-Computer. Entfernen Sie daher entweder die Option "-download_path", um den Standardspeicherort zu verwenden, oder geben Sie einen anderen Speicherort an.
  3. Wenn Sie mit dem Herunterladen der RPMs fertig sind, übertragen Sie sie in das Verzeichnis "repos/redhat/8" in Ihrem lokalen Repository.
    Wenn Sie fertig sind, verfügen Sie über ein Repository auf einem Computer, das alle RPM-Pakete für alle unterstützten Versionen von Red Hat enthält.

Szenario 2: Verwenden separater Repositorys für jede unterschiedliche Linux-Version

Wiederholen Sie den gesamten Konfigurationsprozess für jede Version von Linux, die in Ihrem Unternehmen unterstützt wird.

Verweisen der Linux-Clientcomputer auf das lokale Repository

Sie müssen YUM auf jedem Linux-Client so ändern, dass RPMs im lokalen Repository gesucht werden, statt im Internet.

Falls Sie sich für den Einsatz unterschiedlicher lokaler Repositories für die einzelnen Versionen von Linux entscheiden, achten Sie darauf, dass die Clients auf das richtige lokale Repository verweisen.

  1. Melden Sie sich am Clientcomputer an.
  2. Wechseln Sie zu dem Verzeichnis, in dem aufgeführt ist, wo sich die Repositorys befinden.
  3. cd /etc/yum.repos.d

  4. Erstellen Sie eine Datei mit dem Namen "local.repo" und konfigurieren Sie sie so, dass sie auf das neue lokale Repository zeigt.
  5. nano local.repo

    [mylocalrepo]

    name=Local Rhel9 Server Repo

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

    gpgcheck=0

  6. Legen Sie fest, dass der Client, für den fall, dass RPMs im lokalen Repository fehlen sollten, nicht versucht, diese im Internet zu finden (Clientcomputer wird getrennt).
  7. ls

    vi any file other than local.repo (example redhat.repo)

    Look for your repoid (example rhel-9-for-x86_64-baseos-rpms)

    Set enabled = 0

Regelmäßige Wartung des Repositorys

Das lokale Repository muss stets auf dem neuesten Stand sein. Synchronisieren Sie es daher regelmäßig mit dem öffentlichen Repository. Wenn Sie den folgenden Befehl ausgeben, werden nur die neuen RPM-Pakete in das lokale Repository heruntergeladen.

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

createrepo --update /repos/redhat/9

Air Gap-Netzwerke

Falls in Ihrem Unternehmen Air Gap-Netzwerke zum Einsatz kommen, d. h. wenn kein Clientcomputer berechtigt ist, sich mit einem Computer mit Internetzugang zu verbinden, müssen Sie ein zweites Repository konfigurieren und warten. Dies ist im folgenden Diagramm dargestellt.

Nachdem Sie das verbundene Repository wie oben beschrieben eingerichtet und konfiguriert haben, richten Sie ein zweites Repository auf einem getrennten Computer ein. Anschließend übertragen Sie die Dateien des verbundenen Repositorys manuell, unter Verwendung von Wechselmedien, auf das getrennte Repository. Ihre Linux-Clientcomputer sollten anschließend so konfiguriert werden, dass sie auf das getrennte Repository verweisen, und nicht auf das verbundene.

Zugehörige Informationen

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