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.

Quellen

Das könnte Dich auch interessieren …