Es gibt viele Gründe, warum Sie ein lokales Red Hat Enterprise Linux-Repository wünschen. Die Bandbreite ist ein wichtiger Faktor, da das Herunterladen von Updates aus dem Internet zeit- und bandbreitenintensiv sein kann. Ein weiterer Grund kann sein, dass Ihre Server nicht mit dem Internet verbunden sind und daher ihre Updates von einer lokalen Quelle beziehen müssen. Möglicherweise haben Sie eine Entwicklungsumgebung, für die Sie kein Geld für Lizenzen ausgeben möchten, aber dennoch aktualisieren müssen. Was auch immer Ihr Grund ist, dieses Tutorial führt Sie durch den Prozess der Einrichtung Ihres lokalen Repositorys.
Hinweis:Der Server, der als Ihr Repository dient, sollte nur als Repository dienen.
Installieren Sie Pakete, die für die Repositories benötigt werden
yum install yum-utils createrepo httpd
Erstellen Sie die Verzeichnisse für Ihre Repositories
mkdir /var/www/html/rhel6
mkdir /var/www/html/rhel6/server
mkdir /var/www/html/rhel6/dts
mkdir /var/www/html/rhel6/dts2
mkdir /var/www/html/rhel6/rhsc
Hilfreiche Befehle
Listen Sie die aktivierten und deaktivierten Repos auf Ihrem Server auf.
yum repolist all
Listen Sie die Repos auf, die für Ihr Abonnement verfügbar sind
subscription-manager repos --list
Aktivieren Sie ein Repo auf Ihrem System
subscription-manager repos --enable=rhel-6-server-optional-rpms
Deaktivieren Sie ein Repo auf Ihrem System
subscription-manager repos --disble=rhel-6-server-optional-rpms
Wir möchten, dass die Repositories für Server, dts und rhsc (Softwaresammlungen) im Repository aktiviert sind
Repos synchronisieren
Sobald alle diese Repos aktiviert wurden, führen Sie den folgenden Befehl für alle aus und ändern Sie den download_path für jeden, damit er mit dem download_path für dieses Repo übereinstimmt.
reposync --gpgcheck -l --repoid=repoid --download_path=/var/www/html/rhel6/repo_name --downloadcomps --download-metadata
Hinweis:Das Server-Repo dauert am längsten. Wie die ganze Nacht. Die anderen sollten viel kürzer sein.
Createrepo-Befehl
Sobald die Pakete heruntergeladen wurden, ist alles, was benötigt wird, der Befehl createrepo unten für jedes Repo
createrepo -v /var/www/html/rhel6/repo_name/ -g comps.xml
Hinweis:Die -g comps.xml wird nur für das Server-Repository benötigt.
Client-Server einrichten
Jetzt haben Sie ein lokales Repository, aber Sie müssen einige Änderungen auf Ihren Red Hat-Servern vornehmen, die diese Repositorys für Updates verwenden werden.
Stellen Sie zunächst sicher, dass bei allen anderen Repos das Enabled-Flag in der Repo-Datei in /etc/yum.repos.d auf 0 (Null) gesetzt ist. Ich würde die Repos vorerst nicht löschen, da Sie sie möglicherweise später benötigen. Es reicht aus, einfach das Enabled-Flag zu ändern.
Jetzt müssen Sie eine .repo-Datei erstellen, die auf jedem Server, der die Repositorys verwendet, zum Verzeichnis /etc/yum.repos.d hinzugefügt wird. Diese Datei sollte der folgenden Datei ähneln.
vi /etc/yum.repos.d/name_of_repo_file.repo
[server] name = rhel-6-server-rpms baseurl = http://hostname_or_ip_address_of_repository/rhel6/server gpgcheck = 0 enabled = 1 [dts] name = rhel-server-dts-6-rpms baseurl = http://hostname_or_ip_address_of_repository/rhel6/dts gpgcheck = 0 enabled = 1 [dts2] name = rhel-server-dts2-6-rpms baseurl = http://hostname_or_ip_address_of_repository/rhel6/dts2 gpgcheck = 0 enabled = 1 [rhsc] name = rhel-server-dts2-6-rpms baseurl = http://hostname_or_ip_address_of_repository/rhel6/dts2 gpgcheck = 0 enabled = 1
Erstellen Sie ein Skript und einen Cron-Job, um Ihre Repositories zu aktualisieren
Erstellen Sie ein Skript namens update-repository.sh und legen Sie es mit folgendem Inhalt in /usr/local/bin ab:
vi /usr/local/bin/update-repository.sh
echo Update script started at $(date) >> /var/log/update-repository.log reposync --gpgcheck -l --repoid=rhel-6-server-rpms --download_path=/var/www/html/rhel6/server --downloadcomps --download-metadata createrepo --update /var/www/html/rhel6/server/ reposync --gpgcheck -l --repoid=rhel-server-dts-6-rpms --download_path=/var/www/html/rhel6/dts --downloadcomps --download-metadata createrepo --update /var/www/html/rhel6/dts/ \\ reposync --gpgcheck -l --repoid=rhel-server-dts2-6-rpms --download_path=/var/www/html/rhel6/dts2 --downloadcomps --download-metadata createrepo --update /var/www/html/rhel6/dts2/ echo Update script ended at $(date) >> /var/log/update-repository.log
chmod 600 /usr/local/bin/update-repository.sh
Beachten Sie, dass ich es in ein Protokoll eingefügt habe, das ich so eingerichtet habe, dass es monatlich rotiert.
Erstellen Sie eine Datei in /etc/cron.d und nennen Sie sie update-repository mit folgendem Inhalt.
vi /etc/cron.d/update-repository
@weekly root /usr/local/bin/update-repository.sh
Abschließende Gedanken
Es gibt viele verschiedene Möglichkeiten, ein lokales Repository einzurichten, und ich habe das Rad bei diesem sicher nicht erfunden. Konsultieren Sie meine Quellen unten, um weitere Informationen und Einblicke in Ihr Setup zu erhalten.
Quellen
- https://access.redhat.com/solutions/23016
- http://www.oracle.com/technetwork/articles/servers-storage-admin/yum-repo-setup-1659167.html
- https://www.howtoforge.com/creating_a_local_yum_repository_centos