Crear repositorio EPEL
Crear repositorio EPEL

Crear un repositorio Epel, es realmente sencillo siempre y cuando tengas salida a internet. Pero si tienes que realizar la instalación en servidores que están aislados, sin salida a internet.

Hace poco tuve que enfrentarme a esta casuística. Tenía que instalar unos paquetes en unos servidores con distro redhat que por políticas de seguridad era imposible que se habilitara la salida a internet.

Solo con acceso mediante SSH, había que idear un manera de instalar todos los paquetes solicitados más las dependencias que tenían cada uno de ellos, sin internet.

Bueno, sin mas preambulos, dejo los pasos que seguí pasar acometer este reto.

Necesitamos una máquina local con Centos o RHEL, obviamente debe de tener salida a internet con suficiente almacenamiento. En mi caso usé virtual box y creé una maquina virtual con 50GB de almacenamiento para el SO y añadí un disco de 100GB (sino sabes usar LVM te dejo este tutorial).

[simterm]
[root@todolinux ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 892M 0 892M 0% /dev
tmpfs 909M 0 909M 0% /dev/shm
tmpfs 909M 8.6M 901M 1% /run
tmpfs 909M 0 909M 0% /sys/fs/cgroup
/dev/mapper/rhel-root 47G 4.0G 43G 9% /
/dev/mapper/aplic_vg-apps_sasr 100G 50G 51G 50% /apps_sasr
/dev/sda1 1014M 247M 768M 25% /boot
tmpfs 182M 0 182M 0% /run/user/0
[root@todolinux ~]#
[/simterm]

Creamos un directorio donde alojaremos nuestro repositorio de Epel.

[simterm]
[root@todolinux ~]# df -h /apps_sasr/epel_new
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/aplic_vg-apps_sasr 100G 50G 51G 50% /apps_sasr
[root@todolinux ~]#
[/simterm]

Ahora hay que elegir un mirror de EPEL, el que más cerca tengas a tu ubicación.

rsync -avrt --progress --exclude debug  rsync://fr2.rpmfind.net/linux/epel/8/Everything/SRPMS/Packages/ /apps_sasr/epel_new/

Una vez que termine el comando anteriormente ejecutado, tendremos los directorios Packages, drpms y repodata.

[simterm]
[root@todolinux epel_new]# ls -rtl
total 72
drwxr-xr-x. 29 500 500 249 Nov 23 21:21 Packages
drwxr-xr-x. 2 500 500 53248 Nov 23 21:27 drpms
drwxr-xr-x. 2 500 500 4096 Nov 23 21:28 repodata
[root@todolinux epel_new]#
[/simterm]

Para crear el repositorio Epel, necesitarás crear una ISO, lo harás con el siguiente comando.

mkisofs -iso-level 3 -J -joliet-long -rock -input-charset utf-8 -o path/to/project.iso /path/to/files

Una vez creado el .ISO, solo nos queda montar la imagen y configurar el repositorio EPEL.

[simterm][root@todolinux ~]# mkdir /mnt/epel
[root@todolinux ~]# mount /apps_sasr/epel.iso /mnt/epel
mount: /mnt/epel: WARNING: device write-protected, mounted read-only.
[root@todolinux ~]# cd /mnt/epel/
[root@todolinux epel]# ls -lrt
total 148
drwxr-xr-x. 29 500 500 4096 Nov 23 21:21 Packages
drwxr-xr-x. 2 500 500 143360 Nov 23 21:27 drpms
drwxr-xr-x. 2 500 500 4096 Nov 23 21:28 repodata
[root@todolinux epel]#
[/simterm]

Configurando Epel respositorio.

[simterm]
[root@todolinux epel]# cat /etc/yum.repos.d/epel.repo
[LocalRepo_Epel] name=LocalRepository_Epel
baseurl=file:///mnt/epel/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[root@todolinux epel]#
[/simterm]

Comprobando el repositorio EPEL.

[simterm]
[root@todolinux ~]# dnf repolist all
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

repo id repo name status
LocalRepo_AppStream_rhel8.4 LocalRepository_AppStream_rhl8.4 enabled
LocalRepo_BaseOS_rhel8.4 LocalRepository_BaseOS_rhel8.4 enabled
LocalRepo_Epel LocalRepository_Epel enabled
google-cloud-monitoring Google Cloud Monitoring Agent Repository enabled
[root@todolinux ~]#

[/simterm]

Comprobando que el repositorio EPEL funciona.

[simterm]
[root@todolinux ~]# dnf provides nagios
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

Last metadata expiration check: 5 days, 21:05:05 ago on Tue 28 Dec 2021 10:40:01 AM EST.
nagios-4.4.6-4.el8.x86_64 : Host/service/network monitoring program
Repo : LocalRepo_Epel
Matched from:
Provide : nagios = 4.4.6-4.el8

[root@todolinux ~]#

[/simterm]

[simterm]
[root@todolinux ~]# dnf install nagios
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

LocalRepository_AppStream_rhl8.4 12 kB/s | 3.2 kB 00:00
LocalRepository_BaseOS_rhel8.4 478 kB/s | 2.8 kB 00:00
LocalRepository_Epel 4.6 MB/s | 4.7 kB 00:00
Google Cloud Monitoring Agent Repository 2.4 kB/s | 1.4 kB 00:00
Google Cloud Monitoring Agent Repository 45 kB/s | 88 kB 00:01
Dependencies resolved.
=============================================================================================================================================================
Package Architecture Version Repository Size
=============================================================================================================================================================
Installing:
nagios x86_64 4.4.6-4.el8 LocalRepo_Epel 1.9 M
Installing dependencies:
apr x86_64 1.6.3-11.el8 LocalRepo_AppStream_rhel8.4 125 k
apr-util x86_64 1.6.1-6.el8 LocalRepo_AppStream_rhel8.4 105 k
gd x86_64 2.2.5-7.el8 LocalRepo_AppStream_rhel8.4 144 k
httpd x86_64 2.4.37-39.module+el8.4.0+9658+b87b2deb LocalRepo_AppStream_rhel8.4 1.4 M
httpd-filesystem noarch 2.4.37-39.module+el8.4.0+9658+b87b2deb LocalRepo_AppStream_rhel8.4 38 k
httpd-tools x86_64 2.4.37-39.module+el8.4.0+9658+b87b2deb LocalRepo_AppStream_rhel8.4 106 k
libXpm x86_64 3.5.12-8.el8 LocalRepo_AppStream_rhel8.4 58 k
mailx x86_64 12.5-29.el8 LocalRepo_BaseOS_rhel8.4 257 k
mod_http2 x86_64 1.15.7-3.module+el8.4.0+8625+d397f3da LocalRepo_AppStream_rhel8.4 154 k
nagios-common x86_64 4.4.6-4.el8 LocalRepo_Epel 31 k
nagios-plugins x86_64 2.3.3-5.el8 LocalRepo_Epel 118 k
nagios-plugins-disk x86_64 2.3.3-5.el8 LocalRepo_Epel 61 k
nagios-plugins-http x86_64 2.3.3-5.el8 LocalRepo_Epel 64 k
nagios-plugins-load x86_64 2.3.3-5.el8 LocalRepo_Epel 46 k
nagios-plugins-ping x86_64 2.3.3-5.el8 LocalRepo_Epel 49 k
nagios-plugins-procs x86_64 2.3.3-5.el8 LocalRepo_Epel 49 k
nagios-plugins-ssh x86_64 2.3.3-5.el8 LocalRepo_Epel 44 k
nagios-plugins-swap x86_64 2.3.3-5.el8 LocalRepo_Epel 43 k
nagios-plugins-users x86_64 2.3.3-5.el8 LocalRepo_Epel 41 k
nginx-filesystem noarch 1:1.14.1-9.module+el8.0.0+4108+af250afe LocalRepo_AppStream_rhel8.4 24 k
php x86_64 7.2.24-1.module+el8.2.0+4601+7c76a223 LocalRepo_AppStream_rhel8.4 1.5 M
php-cli x86_64 7.2.24-1.module+el8.2.0+4601+7c76a223 LocalRepo_AppStream_rhel8.4 3.1 M
php-common x86_64 7.2.24-1.module+el8.2.0+4601+7c76a223 LocalRepo_AppStream_rhel8.4 662 k
redhat-logos-httpd noarch 84.4-1.el8 LocalRepo_BaseOS_rhel8.4 29 k
Installing weak dependencies:
apr-util-bdb x86_64 1.6.1-6.el8 LocalRepo_AppStream_rhel8.4 25 k
apr-util-openssl x86_64 1.6.1-6.el8 LocalRepo_AppStream_rhel8.4 27 k
php-fpm x86_64 7.2.24-1.module+el8.2.0+4601+7c76a223 LocalRepo_AppStream_rhel8.4 1.6 M
Enabling module streams:
httpd 2.4
nginx 1.14
php 7.2

Transaction Summary
=============================================================================================================================================================
Install 28 Packages

Total size: 12 M
Installed size: 42 M
Is this ok [y/N]:
[/simterm]

En conclusion, como se puede ver, ya se podría realizar la instalación y trabajar completamente con yum o dnf. Por tanto con todo este proceso serás capaz de realizar una instalación en cualquier sistema que no disponga de internet, ya que esta ISO la puedes llevar contigo a cualquier parte solamente copiandola a cualquier usb con mas de 15GB libres de espacio.

Si te ha servido el articulo, compartelo para que ayude a mas sysadmins.

Comparte

Categorías: Sistemas

Víctor Arauco

With over 15 years of experience in the IT industry, including roles in development, operations, networking, DevOps, and sales engineering. I’m a devoted husband and proud father. I'm here to simplify your journey into the DevOps world.

0 comentarios

Deja una respuesta

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *