Я хотел бы отразить следующие репозитории Yum / RPM на 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/
Репозиторий Puppet содержит все когда-либо выпущенные продукты Puppet и имеет довольно большой размер - около 8 ГБ. Мне нужно только отразить самые новые версии файлов.
Я попытался отразить хранилище с помощью reposync --newest-only
:
reposync --config=puppetlabs.repo.el6 --repoid=puppetlabs-products --repoid=puppetlabs-deps --newest-only --download_path=el/6 --quiet --downloadcomps
и это загружает новейшие пакеты, как мне нужно. Однако reposync автоматически не создает регулярную структуру каталогов ( x86_64
, noarch
, SRPMS
и т.д.) и не зеркало repodata.xml
. В результате мои клиенты получают такие ошибки:
[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 ~]#
Есть ли способ программно зеркалировать только новые файлы из репозитория Yum и следовать стандартной структуре каталогов репозитория?
Ответы:
reposync - единственный надежный способ сделать это. Вам нужно будет создать небольшой скрипт bash и использовать параметры reposync (-a) для загрузки каждой архитектуры в отдельную папку, а затем запустить createrepo для генерации метаданных.
Вот небольшой скрипт, который у меня есть (он работает на Ubuntu, но не имеет значения, вы поняли):
кошачьи репо
источник
reposync
настаивает на добавленииrepoid
в структуру каталогов. Это означает команду, например,reposync --config=puppetlabs.repo.el6 --repoid=puppetlabs-products --newest-only --arch=x86_64' creates a bizarrely named directory like 'x86_64/puppetlabs-products
когда мне просто нужен x86_64 /.Вы можете сделать это с целлюлозой и плагином yum rpm.
При настройке нового репо, чтобы получить только одну версию каждого оборота в минуту, установите параметр retain_old_count retain_old_count
Так что-то по линии:
Должен достичь того, что вы хотите. Существует краткое руководство по началу работы, которое должно дать вам представление о том, как это работает, если вы еще не пробовали его раньше.
источник
Еще одним простым вариантом использования того, что вы хотите сделать, является spacewalk, он прост в использовании, вы можете установить безопасное соединение между менеджером репо и вашими хостами, управлять тем, какие пакеты вы хотите синхронизировать и предоставлять вашим хостам, планировать синхронизацию обновления и патчи и многие другие интересные функции.
источник
Изменить / etc / sysconfig / uln-yum-mirror Изменить ALL_PKGS = 0
0 -> скачать только последние версии, 1 -> скачать все версии
источник