Cómo crear un repositorio HTTP Yum/DNF local en RHEL 8


Un repositorio de software o "repositorio" es una ubicación central para guardar y mantener los paquetes de software RPM para la distribución de Redhat Linux, desde el cual los usuarios pueden descargar e instalar paquetes en sus servidores Linux.

Los repositorios generalmente se almacenan en una red pública, a la que pueden acceder múltiples usuarios en Internet. Sin embargo, puede crear su propio repositorio local en su servidor y acceder a él como un solo usuario o permitir el acceso a otras máquinas en su LAN local (Red de área local) utilizando el servidor web HTTP.

La ventaja de crear un repositorio local es que no necesita una conexión a Internet para instalar paquetes de software o actualizaciones.

Sistemas Linux basados en RPM (RedHat Package Manager), que facilitan la instalación del software en Red Hat/CentOS Linux.

En este artículo, explicaremos cómo configurar un repositorio YUM/DNF local en RHEL 8 utilizando el DVD de instalación o el archivo ISO. También le mostraremos cómo encontrar e instalar paquetes de software en máquinas cliente RHEL 8 utilizando el servidor HTTP Nginx.

Local Repository Server: RHEL 8 [192.168.0.106]
Local Client Machine: RHEL 8 [192.168.0.200]

Paso 1: Instale el servidor web Nginx

1. Primero, instale el servidor HTTP Nginx usando el administrador de paquetes DNF de la siguiente manera.

# dnf install nginx

2. Una vez instalado Nginx, puede iniciar, habilitar el servicio para que se inicie automáticamente en el momento del arranque y verificar el estado con los siguientes comandos.

# systemctl start nginx
# systemctl enable nginx
# systemctl status nginx

3. A continuación, debe abrir los puertos Nginx 80 y 443 en su firewall.

# firewall-cmd --zone=public --permanent --add-service=http
# firewall-cmd --zone=public --permanent --add-service=https
# firewall-cmd --reload

4. Ahora puede verificar que su servidor Nginx está en funcionamiento yendo a la siguiente URL en su navegador web, se mostrará una página web Nginx predeterminada.

http://SERVER_DOMAIN_NAME_OR_IP

Paso 2: Montaje del archivo ISO/DVD de instalación de RHEL 8

5. Cree un punto de montaje de repositorio local en el directorio raíz de documentos de Nginx /var/www/html/ y monte la imagen ISO del DVD RHEL 8 descargada en el directorio /mnt .

# mkdir /var/www/html/local_repo
# mount -o loop rhel-8.0-x86_64-dvd.iso /mnt  [Mount Download ISO File]
# mount /dev/cdrom /mnt                       [Mount DVD ISO File from DVD ROM]

6. Luego, copie los archivos ISO localmente en el directorio /var/www/html/local_repo y verifique el contenido usando el comando ls.

# cd /mnt
# tar cvf - . | (cd /var/www/html/local_repo/; tar xvf -)
# ls -l /var/www/html/local_repo/

Paso 3: configurar el repositorio local

7. Ahora es el momento de configurar el repositorio local. Necesita crear el archivo de configuración del repositorio local en el directorio /etc/yum.repos.d/ y establecer los permisos apropiados en el archivo como se muestra.

# touch /etc/yum.repos.d/local-rhel8.repo
# chmod  u+rw,g+r,o+r  /etc/yum.repos.d/local-rhel8.

8. A continuación, abra el archivo para editarlo con su editor de texto de línea de comandos favorito.

# vim /etc/yum.repos.d/local.repo

9. Copie y pegue el siguiente contenido en el archivo.

[LocalRepo_BaseOS]
name=LocalRepo_BaseOS
metadata_expire=-1
enabled=1
gpgcheck=1
baseurl=file:///var/www/html/local_repo/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[LocalRepo_AppStream]
name=LocalRepo_AppStream
metadata_expire=-1
enabled=1
gpgcheck=1
baseurl=file:///var/www/html/local_repo/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

Guarde los cambios y salga del archivo.

10. Ahora necesita instalar los paquetes necesarios para crear, configurar y administrar su repositorio local ejecutando el siguiente comando.

# yum install createrepo  yum-utils
# createrepo /var/www/html/local_repo/

Paso 4: prueba del repositorio local

11. En este paso, debe ejecutar una limpieza de los archivos temporales guardados para los repositorios mediante el siguiente comando.

# yum clean all
OR
# dnf clean all

12. Luego, verifique que los repositorios creados aparezcan en la lista de repositorios habilitados.

# dnf repolist
OR
# dnf repolist  -v  #shows more detailed information 

13. Ahora intente instalar un paquete desde los repositorios locales, por ejemplo, instale la herramienta de línea de comandos de Git de la siguiente manera:

# dnf install git

Al observar el resultado del comando anterior, el paquete git se está instalando desde el repositorio LocalRepo_AppStream como se muestra en la captura de pantalla. Esto prueba que los repositorios locales están habilitados y funcionan bien.

Paso 5: configurar el repositorio local de Yum en las máquinas cliente

14. Ahora, en sus máquinas cliente RHEL 8, agregue sus repositorios locales a la configuración de YUM.

# vi /etc/yum.repos.d/local-rhel8.repo 

Copie y pegue la siguiente configuración en el archivo. Asegúrese de reemplazar baseurl con la dirección IP o el dominio de su servidor.

[LocalRepo_BaseOS]
name=LocalRepo_BaseOS
enabled=1
gpgcheck=0
baseurl=http://192.168.0.106

[LocalRepo_AppStream]
name=LocalRepo_AppStream
enabled=1
gpgcheck=0
baseurl=http://192.168.0.106

Guarde el archivo y comience a usar sus espejos YUM locales.

15. A continuación, ejecute el siguiente comando para ver sus repositorios locales en la lista de repositorios YUM disponibles, en las máquinas cliente.

# dnf repolist

¡Eso es todo! En este artículo, hemos mostrado cómo crear un repositorio YUM/DNF local en RHEL 8, utilizando el DVD de instalación o el archivo ISO. No olvide comunicarse con nosotros a través del formulario de comentarios a continuación para cualquier pregunta o comentario.