Saya ingin mencerminkan repositori Yum / RPM berikut di 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/
Repositori Puppet berisi setiap produk Puppet yang pernah dirilis dan cukup besar sekitar 8GB. Saya hanya perlu mirror versi terbaru dari file.
Saya telah mencoba untuk mencerminkan repositori menggunakan reposync --newest-only
:
reposync --config=puppetlabs.repo.el6 --repoid=puppetlabs-products --repoid=puppetlabs-deps --newest-only --download_path=el/6 --quiet --downloadcomps
dan ini mengunduh paket-paket terbaru seperti yang saya butuhkan. Namun, reposync tidak secara otomatis membuat struktur direktori reguler ( x86_64
, noarch
, SRPMS
, dll) dan tidak cermin repodata.xml
. Akibatnya, klien yum saya mendapatkan kesalahan seperti ini:
[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 ~]#
Apakah ada cara untuk secara program hanya memantulkan file baru dari repo Yum dan mengikuti struktur direktori repositori standar?
Jawaban:
reposync adalah satu-satunya cara yang dapat diandalkan untuk melakukan ini. Anda harus membuat skrip bash kecil dan menggunakan parameter reposync (-a) untuk mengunduh setiap arsitektur dalam folder terpisah dan kemudian menjalankan createrepo untuk menghasilkan metadata.
Berikut ini adalah skrip kecil yang saya miliki (skrip ini berjalan di Ubuntu tetapi tidak masalah, Anda dapat idenya):
sync-repos kucing
sumber
reposync
bersikeras menambahkanrepoid
ke struktur direktori. Ini berarti perintah sepertireposync --config=puppetlabs.repo.el6 --repoid=puppetlabs-products --newest-only --arch=x86_64' creates a bizarrely named directory like 'x86_64/puppetlabs-products
ketika saya hanya perlu 'x86_64 /'.Anda dapat melakukan ini dengan pulp dan plugin distributor yum rpm.
Saat mengonfigurasi repo baru, untuk mendapatkan hanya satu verison dari setiap rpm, tetapkan parameter retain_old_count retain_old_count
Jadi sesuatu di sepanjang garis:
Harus mencapai apa yang Anda inginkan. Ada panduan mulai cepat yang akan memberi Anda gambaran tentang bagaimana hal itu bekerja, jika Anda belum mencobanya.
sumber
Pilihan lain yang mudah digunakan untuk apa yang ingin Anda lakukan, adalah spacewalk, mudah digunakan, Anda dapat membuat koneksi yang aman antara manajer repo dan host Anda, mengelola paket mana yang ingin Anda sinkronkan dan berikan kepada host Anda, jadwalkan sinkronisasi pembaruan dan tambalan dan banyak lagi fitur keren lainnya.
sumber
Edit / etc / sysconfig / uln-yum-mirror Ubah ALL_PKGS = 0
0 -> unduh terbaru saja, 1 -> unduh semua versi
sumber