Ich möchte die folgenden Yum / RPM-Repositorys unter http://yum.puppetlabs.com/ spiegeln :
- http://yum.puppetlabs.com/el/6/products/
- http://yum.puppetlabs.com/el/6/dependencies/
- http://yum.puppetlabs.com/el/5/products
- http://yum.puppetlabs.com/el/5/dependencies/
Das Puppet-Repository enthält jedes Puppet-Produkt, das jemals veröffentlicht wurde, und ist mit etwa 8 GB recht groß. Ich muss nur die neuesten Versionen der Dateien spiegeln.
Ich habe versucht, das Repository mit reposync --newest-only
folgenden Spiegeln zu spiegeln :
reposync --config=puppetlabs.repo.el6 --repoid=puppetlabs-products --repoid=puppetlabs-deps --newest-only --download_path=el/6 --quiet --downloadcomps
und dies lädt die neuesten Pakete herunter, wie ich brauche. Allerdings ist reposync nicht automatisch die normale Verzeichnisstruktur erstellen ( x86_64
, noarch
, SRPMS
, usw.) und nicht Spiegel repodata.xml
. Infolgedessen erhalten meine Kunden folgende Fehler:
[root@web1 ~]# yum --quiet install puppet
http://mirrors.example.org/pub/puppet/el/6/puppetlabs-deps/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: puppetlabs-deps. Please verify its path and try again
[root@web1 ~]#
Gibt es eine Möglichkeit, nur die neuen Dateien aus einem Yum-Repo programmgesteuert zu spiegeln und der Standard-Repository-Verzeichnisstruktur zu folgen?
Antworten:
Reposync ist der einzig zuverlässige Weg, dies zu tun. Sie müssen ein kleines Bash-Skript erstellen und die Reposync-Parameter (-a) verwenden, um jede Architektur in einen separaten Ordner herunterzuladen, und dann createrepo ausführen , um die Metadaten zu generieren.
Hier ist ein kleines Skript, das ich habe (es läuft unter Ubuntu, spielt aber keine Rolle, Sie haben die Idee):
Katzensynchronisations-Repos
quelle
reposync
darauf besteht, dierepoid
an die Verzeichnisstruktur anzuhängen. Dies bedeutet einen Befehl wiereposync --config=puppetlabs.repo.el6 --repoid=puppetlabs-products --newest-only --arch=x86_64' creates a bizarrely named directory like 'x86_64/puppetlabs-products
wenn ich einfach 'x86_64 /' brauche.Sie können dies mit Pulp und dem Yum RPM Distributor Plugin tun .
Wenn Sie ein neues Repo konfigurieren, um nur eine Version jeder Drehzahl zu erhalten, setzen Sie den Parameter Retain_old_count Retain_old_count
Also etwas in der Art von:
Sollte erreichen, was Sie wollen. Es gibt eine Kurzanleitung, die Ihnen eine Vorstellung davon geben soll, wie das Ding funktioniert, falls Sie es noch nicht ausprobiert haben.
quelle
Eine weitere einfache Option, die Sie für Ihre Aufgaben verwenden können, ist Spacewalk. Sie ist einfach zu verwenden. Sie können eine sichere Verbindung zwischen dem Repo-Manager und Ihren Hosts herstellen, verwalten, welche Pakete Sie synchronisieren und Ihren Hosts zur Verfügung stellen möchten, und die Synchronisierungen planen Updates und Patches und viele weitere coole Funktionen.
quelle
Bearbeiten Sie / etc / sysconfig / uln-yum-mirror Ändern Sie ALL_PKGS = 0
0 -> nur spätestens herunterladen, 1 -> alle Versionen herunterladen
quelle