Creación de un Espejo de Repositorio DNF
Un local DNF espejo de repositorio deja sirves actualizaciones de paquete de la Fedora de vuestra infraestructura propia. Esto es útil para las organizaciones que dirigen sistemas de Fedora del múltiplo, restringidos o metered entornos de red, o probando actualizaciones en un sistema de escenificar antes de rodarles fuera a producción.
Pre-requisitos
Espacio del disco
Utilice dnf repoinfo para comprobar el tamaño de cada repositorio que planeas para espejo:
$ dnf repoinfo fedora updates
Los campos Repodate Info: Size en la salida muestran el tamaño del paquete total para cada repositorio. Ejecute el mismo comando para cualesquiera repositorios adicionales desee espejar, utilizando dnf repolist para ver los ID de repositorio disponible.
Repository size grows throughout a release lifecycle as updates accumulate. The updates repository in particular grows steadily from release day until end-of-life. Budget additional headroom beyond the initial estimate. Repositories can grow by up to 30% or more over the lifecycle of a release, so plan accordingly.
|
Sincronizar el repositorio
Uso dnf reposync para descargar contenido de repositorio a un directorio local. El ejemplo siguiente sincroniza fedora y updates actualiza repositorios:
$ sudo dnf reposync --repo=fedora --repo=updates --download-path=/var/www/html/mirror
Para limitar la sincronización para unas arquitecturas concretas y evitar descargando paquetes no necesitados:
$ sudo dnf reposync --repo=fedora --repo=updates --download-path=/var/www/html/mirror --arch=x86_64 --arch=noarch
Para desinstalar paquetes desde el espejo local que es estén ya presentes en el repositorio remoto:
$ sudo dnf reposync --repo=fedora --repo=updates --download-path=/var/www/html/mirror --delete
El contenido sincronizado ahora es accesible en http://localhost/mirror/, o sea cual sea el nombre de host o la dirección IP de su servidor.
| El primer sync descarga el repositorio completo y puede tomar un tiempo largo dependiendo de su conexión. Más tarde syncs solo descarga paquetes nuevos o modificados. |
Configurar sistemas de cliente
En cada sistema que tendría que utilizar el espejo local, crear un archivo .repo en /etc/yum.repos.d/. Por ejemplo, /etc/yum.repos.d/local-mirror.repo:
[local-fedora]
name=Local Fedora mirror
baseurl=http://mirror-server/mirror/fedora/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
[local-updates]
name=Local Fedora updates mirror
baseurl=http://mirror-server/mirror/updates/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
Reemplaza mirror-server con el nombre‐host o dirección de IP de su servidor de espejo.
Para asegurar los clientes utilizan sólo el espejo local, inhabilita los repositorios Fedora por defecto mediante ajuste enabled=0 en /etc/yum.repos.d/fedora.repo y /etc/yum.repos.d/fedora-updates.repo.
Verificación de GPG
dnf reposync Descarga repositorio metadata y los paquetes que incluyen sus firmas. Los clientes utilizan las claves GPG de Fedora ya presentes en /etc/pki/rpm-gpg/ para verificar paquetes, por tanto no se requiere ninguna configuración de clave adicional.
Mantener el espejo actual
Configura el servicio y cronómetro de systemd para sincronizar el espejo automáticamente.
Crea un archivo de servicio como /etc/systemd/system/dnf-mirror.service:
[Unit]
Description=Sincronizar repositorio DNF espejo
[Service]
Type=oneshot
ExecStart=dnf reposync --repo=fedora --repo=updates --download-path=/var/www/html/espejo --delete
Crear el cronómetro en /etc/systemd/system/dnf-mirror.timer:
[Unit]
Descripción=Diariamente sincroniza espejo del repositorio DNF
[Timer]
OnCalendar=daily
Persistent=true
[Install]
WantedBy=timers.target
Habilita e inicia el cronómetro:
$ sudo systemctl enable --now dnf-mirror.timer
Verifique que el cronómetro esté activo:
$ systemctl status dnf-mirror.timer
Want to help? Learn how to contribute to Fedora Docs ›