Je voudrais mettre en miroir les référentiels Yum / RPM suivants sur http://yum.puppetlabs.com/ :
- 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/
Le référentiel Puppet contient tous les produits Puppet jamais sortis et est assez volumineux à environ 8 Go. Je n'ai besoin que de mettre en miroir les dernières versions des fichiers.
J'ai essayé de mettre en miroir le référentiel en utilisant reposync --newest-only
:
reposync --config=puppetlabs.repo.el6 --repoid=puppetlabs-products --repoid=puppetlabs-deps --newest-only --download_path=el/6 --quiet --downloadcomps
et cela télécharge les nouveaux packages comme j'ai besoin. Cependant, reposync ne crée pas automatiquement la structure des répertoires régulière ( x86_64
, noarch
, SRPMS
, etc.) et ne reflète pas repodata.xml
. En conséquence, mes clients miam obtiennent des erreurs comme ceci:
[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 ~]#
Existe-t-il un moyen de mettre en miroir par programme uniquement les nouveaux fichiers d'un référentiel Yum et de suivre la structure de répertoire du référentiel standard?
Réponses:
reposync est le seul moyen fiable de le faire. Vous devrez créer un petit script bash et utiliser des paramètres de resynchronisation (-a) pour télécharger chaque architecture dans un dossier séparé, puis exécuter createrepo pour générer les métadonnées.
Voici un petit script que j'ai (il fonctionne sur Ubuntu mais peu importe, vous avez l'idée):
chat sync-repos
la source
reposync
insiste sur l'ajout de larepoid
à la structure de répertoires. Cela signifie une commande commereposync --config=puppetlabs.repo.el6 --repoid=puppetlabs-products --newest-only --arch=x86_64' creates a bizarrely named directory like 'x86_64/puppetlabs-products
quand j'ai simplement besoin de 'x86_64 /'.Vous pouvez le faire avec pulp et le plugin distributeur yum rpm.
Lors de la configuration d'un nouveau référentiel, pour obtenir une seule version de chaque tr / min, définissez le paramètre retenue_old_count retenue_old_count
Donc, quelque chose comme:
Devrait réaliser ce que vous voulez. Il existe un guide de démarrage rapide qui devrait vous donner une idée du fonctionnement de la chose, au cas où vous ne l'auriez pas essayé auparavant.
la source
Une autre option facile à utiliser pour ce que vous voulez faire est la sortie dans l'espace, est facile à utiliser, vous pouvez établir une connexion sécurisée entre le gestionnaire de référentiel et vos hôtes, gérer les packages que vous souhaitez synchroniser et fournir à vos hôtes, planifier les synchronisations mises à jour et correctifs et bien d'autres fonctionnalités intéressantes.
la source
Modifier / etc / sysconfig / uln-yum-mirror Changer ALL_PKGS = 0
0 -> télécharger la dernière version uniquement, 1 -> télécharger toutes les versions
la source