Me gustaría reflejar los siguientes repositorios Yum / RPM en 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/
El repositorio de Puppet contiene todos los productos de Puppet que se han lanzado y es bastante grande con aproximadamente 8 GB. Solo necesito reflejar las versiones más recientes de los archivos.
He intentado duplicar el repositorio usando reposync --newest-only
:
reposync --config=puppetlabs.repo.el6 --repoid=puppetlabs-products --repoid=puppetlabs-deps --newest-only --download_path=el/6 --quiet --downloadcomps
y esto descarga los paquetes más nuevos que necesito. Sin embargo, reposync no crea automáticamente la estructura de directorios normal ( x86_64
, noarch
, SRPMS
, etc.) y no lo hace de espejo repodata.xml
. Como resultado, mis clientes yum obtienen errores como este:
[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 ~]#
¿Hay alguna manera de duplicar programáticamente solo los archivos nuevos de un repositorio de Yum y seguir la estructura de directorios del repositorio estándar?
Respuestas:
reposync es la única forma confiable de hacer esto. Deberá crear un pequeño script bash y usar los parámetros de reposync (-a) para descargar cada arquitectura en una carpeta separada y luego ejecutar createrepo para generar los metadatos.
Aquí hay una pequeña secuencia de comandos que tengo (se está ejecutando en Ubuntu pero no importa, entiendes la idea):
cat sync-repos
fuente
reposync
insiste en agregar elrepoid
a la estructura del directorio. Esto significa un comando comoreposync --config=puppetlabs.repo.el6 --repoid=puppetlabs-products --newest-only --arch=x86_64' creates a bizarrely named directory like 'x86_64/puppetlabs-products
cuando simplemente necesito 'x86_64 /'.Puede hacer esto con pulpa y el complemento distribuidor de yum rpm.
Al configurar un nuevo repositorio, para obtener solo una versión de cada rpm, establezca el parámetro reten_old_count allow_old_count
Entonces algo en la línea de:
Debes lograr lo que quieres. Hay una guía de inicio rápido que debería darle una idea de cómo funciona, en caso de que no lo haya probado antes.
fuente
Otra opción fácil de usar para lo que desea hacer es la caminata espacial, es fácil de usar, puede establecer una conexión segura entre el administrador de repositorios y sus hosts, administrar qué paquetes desea sincronizar y proporcionar a sus hosts, programar las sincronizaciones actualizaciones y parches y muchas más funciones interesantes.
fuente
Editar / etc / sysconfig / uln-yum-mirror Cambiar ALL_PKGS = 0
0 -> descargar solo la última, 1 -> descargar todas las versiones
fuente