Búsqueda de sitios web

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


Un repositorio de software o “repo” es una ubicación central para guardar y mantener paquetes de software RPM para la distribución Redhat Linux, desde donde 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 varios 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 (red de área local) local mediante 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.

YUM (Yellowdog Updater Modified) o DNF (Dandified YUM) es una utilidad de administración de paquetes de software ampliamente utilizada para sistemas Linux basados en RPM (RedHat Package Manager), que facilita la instalación de 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 buscar e instalar paquetes de software en máquinas cliente RHEL 8 utilizando el servidor Nginx HTTP.

Nuestro entorno de pruebas

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

Paso 1: instalar el servidor web Nginx

1. Primero, instale el servidor Nginx HTTP 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 mediante 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é funcionando yendo a la siguiente URL en su navegador web; se mostrará una página web predeterminada de Nginx.

http://SERVER_DOMAIN_NAME_OR_IP

Paso 2: Montar el archivo DVD/ISO de instalación de RHEL 8

5. Cree un punto de montaje del repositorio local en el directorio raíz del documento Nginx /var/www/html/ y monte el RHEL 8 descargado. Imagen ISO del DVD 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. A continuación, 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. Debe 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. Luego abra el archivo para editarlo usando su editor de texto de línea de comando 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: Probar el repositorio local

11. En este paso, debe ejecutar una limpieza de los archivos temporales guardados en los repositorios utilizando 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 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 configuración a continuació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 si tiene alguna pregunta o comentario.