So erstellen Sie ein lokales Red Hat Repository
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 lieber kein Geld für Lizenzen ausgeben würden, die aber trotzdem aktualisiert werden muss. Was auch immer Ihr Grund ist, dieses Tutorial führt Sie durch den Prozess der Einrichtung Ihres lokalen Repositories.
Hinweis: Der Server, der als Ihr Repository dient, sollte nur als Repository dienen.
Installieren Sie die für die Repositories benötigten Pakete.
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 Repos auf Ihrem Server auf, die sowohl aktiviert als auch deaktiviert sind.
yum repolist all
Liste der Repos, die in Ihrem Abonnement verfügbar sind.
subscription-manager repos --list
Einen Repo auf Ihrem System aktivieren
subscription-manager repos --enable=rhel-6-server-optional-rpms
Deaktivieren Sie einen Repo auf Ihrem System.
subscription-manager repos --disble=rhel-6-server-optional-rpms
Wir möchten, dass die Repositorys Server, dts und rhsc (Softwarekollektionen) im Repository aktiviert sind.
Repos synchronisieren
Sobald alle diese Repos aktiviert sind, führen Sie den folgenden Befehl aus, damit alle den download_path für jeden ändern, um den download_path für diesen Repo anzupassen.
reposync --gpgcheck -l --repoid=repoid --download_path=/var/www/html/rhel6/repo_name --downloadcomps --download-metadata
Hinweis: Der Server-Repo dauert am längsten. Wie die ganze Nacht lang. 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 den Server-Repo benötigt.
Einrichten von Client-Servern
Jetzt haben Sie ein lokales Repository, aber Sie müssen einige Änderungen an Ihren Red Hat-Servern vornehmen, die diese Repositories für Updates verwenden werden.
Stellen Sie zuerst sicher, dass alle anderen Repos das enabled Flag auf 0 (Null) in der Repo-Datei in /etc/yum.repos.d gesetzt haben. Ich würde die Repos vorerst nicht löschen, da Sie sie später benötigen könnten. Ein einfaches Ändern des aktivierten Flags genügt.
Jetzt müssen Sie eine.repo-Datei erstellen, die auf jedem Server, der die Repositories verwendet, dem Verzeichnis /etc/yum.repos.d hinzugefügt wird. Diese Datei sollte ähnlich wie die folgende Datei aussehen.
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 Skripte und Cron-Jobs, um Ihre Repositories zu aktualisieren.
Erstelle ein Skript namens update-repository.sh und füge es in /usr/local/bin mit folgendem Inhalt ein:
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 fallen gelassen 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 Überlegungen
Es gibt viele verschiedene Möglichkeiten, ein lokales Repository einzurichten, und ich habe das Rad bei diesem Projekt sicherlich nicht erfunden. Konsultieren Sie meine Quellen unten für weitere Informationen und Einblicke in Ihr Setup.