Búsqueda de sitios web

Cómo configurar el repositorio HTTP Yum local en CentOS 7


Un repositorio de software ("repo " para abreviar) es una ubicación de almacenamiento de archivos central para guardar y mantener paquetes de software, desde donde los usuarios pueden recuperar paquetes e instalarlos en sus computadoras.

Los repositorios suelen almacenarse en servidores de una red, por ejemplo de Internet, a los que pueden acceder varios usuarios. Sin embargo, puede crear y configurar un repositorio local en su computadora y acceder a él como un solo usuario o permitir el acceso a otras máquinas en su LAN (red de área local).

Una ventaja de configurar un repositorio local es que no necesita una conexión a Internet para instalar paquetes de software.

YUM (Yellowdog Updater Modified) es una herramienta de administración de paquetes ampliamente utilizada para RPM (RedHat Package Manager) basada en sistemas Linux, que facilita la instalación de software en Red Hat. /CentOSLinux.

En este artículo, explicaremos cómo configurar un repositorio local YUM a través de un servidor web HTTP (Nginx) en CentOS 7 VPS. y también le mostraremos cómo buscar e instalar paquetes de software en máquinas cliente CentOS 7.

Nuestro entorno de pruebas

Yum HTTP Repository Server:	CentOS 7 [192.168.0.100]
Client Machine:		CentOS 7 [192.168.0.101]

Paso 1: instalar el servidor web Nginx

1. Primero comience instalando el servidor HTTP Nginx desde el repositorio EPEL usando el administrador de paquetes YUM de la siguiente manera.

yum install epel-release
yum install nginx 

2. Una vez que haya instalado el servidor web Nginx, puede iniciarlo por primera vez y permitir que se inicie automáticamente al iniciar el sistema.

 
systemctl start nginx
systemctl enable nginx
systemctl status nginx

3. A continuación, debe abrir el puerto 80 y 443 para permitir el tráfico web al servicio Nginx y actualizar las reglas del firewall del sistema para permitir los paquetes entrantes. en HTTP y HTTPS usando los siguientes comandos.

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

4. Ahora puede confirmar que su servidor Nginx está en funcionamiento, utilizando la siguiente URL; Si ve la página web predeterminada de Nginx, todo está bien.

http://SERVER_DOMAIN_NAME_OR_IP 

Paso 2: crear un repositorio local de Yum

5. En este paso, debe instalar los paquetes necesarios para crear, configurar y administrar su repositorio local.

yum install createrepo  yum-utils

6. A continuación, cree los directorios necesarios (repositorios yum) que almacenarán los paquetes y cualquier información relacionada.

mkdir -p /var/www/html/repos/{base,centosplus,extras,updates}

7. Luego use la herramienta reposync para sincronizar los repositorios CentOS YUM con los directorios locales como se muestra.

reposync -g -l -d -m --repoid=base --newest-only --download-metadata --download_path=/var/www/html/repos/
reposync -g -l -d -m --repoid=centosplus --newest-only --download-metadata --download_path=/var/www/html/repos/
reposync -g -l -d -m --repoid=extras --newest-only --download-metadata --download_path=/var/www/html/repos/
reposync -g -l -d -m --repoid=updates --newest-only --download-metadata --download_path=/var/www/html/repos/
Salida de muestra
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.fibergrid.in
 * epel: mirror.xeonbd.com
 * extras: mirrors.fibergrid.in
 * updates: mirrors.fibergrid.in
base/7/x86_64/group                                                    | 891 kB  00:00:02     
No Presto metadata available for base
(1/9911): 389-ds-base-snmp-1.3.7.5-18.el7.x86_64.rpm                   | 163 kB  00:00:02     
(2/9911): 389-ds-base-devel-1.3.7.5-18.el7.x86_64.rpm                  | 267 kB  00:00:02     
(3/9911): ElectricFence-2.2.2-39.el7.i686.rpm                          |  35 kB  00:00:00     
(4/9911): ElectricFence-2.2.2-39.el7.x86_64.rpm                        |  35 kB  00:00:00     
(5/9911): 389-ds-base-libs-1.3.7.5-18.el7.x86_64.rpm                   | 695 kB  00:00:04     
(6/9911): GConf2-devel-3.2.6-8.el7.i686.rpm                            | 110 kB  00:00:00     
(7/9911): GConf2-devel-3.2.6-8.el7.x86_64.rpm                          | 110 kB  00:00:00     
(8/9911): GConf2-3.2.6-8.el7.i686.rpm                                  | 1.0 MB  00:00:06     

En los comandos anteriores, la opción:

  • -g: permite eliminar paquetes que no superan la verificación de firma GPG después de la descarga.
  • -l: habilita la compatibilidad con el complemento yum.
  • -d: permite eliminar paquetes locales que ya no están presentes en el repositorio.
  • -m: permite la descarga de archivos comps.xml.
  • --repoid: especifica el ID del repositorio.
  • --newest-only: indique a reposync que solo extraiga la última versión de cada paquete en los repositorios.
  • --download-metadata: permite descargar todos los metadatos no predeterminados.
  • --download_path: especifica la ruta para descargar paquetes.

8. A continuación, verifique el contenido de sus directorios locales para asegurarse de que todos los paquetes se hayan sincronizado localmente.

ls -l /var/www/html/repos/base/
ls -l /var/www/html/repos/base/Packages/
ls -l /var/www/html/repos/centosplus/
ls -l /var/www/html/repos/centosplus/Packages/
ls -l /var/www/html/repos/extras/
ls -l /var/www/html/repos/extras/Packages/
ls -l /var/www/html/repos/updates/
ls -l /var/www/html/repos/updates/Packages/

9. Ahora cree un nuevo repositorio para los repositorios locales ejecutando los siguientes comandos, donde el indicador -g se usa para actualizar la información del grupo de paquetes usando el especificado. Archivo .xml.

createrepo -g comps.xml /var/www/html/repos/base/  
createrepo -g comps.xml /var/www/html/repos/centosplus/	
createrepo -g comps.xml /var/www/html/repos/extras/  
createrepo -g comps.xml /var/www/html/repos/updates/  

10. Para habilitar la visualización de repositorios y paquetes en ellos, a través de un navegador web, cree un bloque de servidor Nginx que apunte a la raíz de sus repositorios como se muestra.

vim /etc/nginx/conf.d/repos.conf 

Agregue la siguiente configuración al archivo repos.conf.

server {
        listen   80;
        server_name  repos.test.lab;	#change  test.lab to your real domain 
        root   /var/www/html/repos;
        location / {
                index  index.php index.html index.htm;
                autoindex on;	#enable listing of directory index
        }
}

Guarde el archivo y ciérrelo.

11. Luego reinicie su servidor Nginx y vea los repositorios desde un navegador web usando la siguiente URL.

http://repos.test.lab

Paso 3: cree un trabajo cron para sincronizar y crear repositorios

12. A continuación, agregue una tarea cron que sincronizará automáticamente sus repositorios locales con los repositorios oficiales de CentOS para obtener las actualizaciones y parches de seguridad.

vim /etc/cron.daily/update-localrepos

Agregue estos comandos en el script.

#!/bin/bash
##specify all local repositories in a single variable
LOCAL_REPOS=”base centosplus extras updates”
##a loop to update repos one at a time 
for REPO in ${LOCAL_REPOS}; do
reposync -g -l -d -m --repoid=$REPO --newest-only --download-metadata --download_path=/var/www/html/repos/
createrepo -g comps.xml /var/www/html/repos/$REPO/  
done

Guarde el script, ciérrelo y establezca los permisos adecuados.

chmod 755 /etc/cron.daily/update-localrepos

Paso 4: Configurar el repositorio local de Yum en las máquinas cliente

13. Ahora, en sus máquinas cliente CentOS, agregue sus repositorios locales a la configuración de YUM.

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

Copie y pegue la configuración a continuación en el archivo local-repos.repo (realice cambios cuando sea necesario).

[local-base]
name=CentOS Base
baseurl=http://repos.test.lab/base/
gpgcheck=0
enabled=1

[local-centosplus]
name=CentOS CentOSPlus
baseurl=http://repos.test.lab/centosplus/
gpgcheck=0
enabled=1

[local-extras]
name=CentOS Extras
baseurl=http://repos.test.lab/extras/
gpgcheck=0
enabled=1

[local-updates]
name=CentOS Updates
baseurl=http://repos.test.lab/updates/
gpgcheck=0
enabled=1

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

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

 yum repolist
OR
yum repolist all

¡Eso es todo! En este artículo, explicamos cómo configurar un repositorio YUM local en CentOS 7. Esperamos que esta guía le haya resultado útil. Si tiene alguna pregunta o alguna otra idea para compartir, utilice el formulario de comentarios a continuación.