Com configurar el repositori local HTTP Yum a CentOS 7


Un dipòsit de programari (repo en resum) és una ubicació central d'emmagatzematge de fitxers per mantenir i mantenir paquets de programari, des dels quals els usuaris poden recuperar paquets i instal·lar-los als seus ordinadors.

Els repositoris sovint s'emmagatzemen en servidors d'una xarxa, per exemple, una Internet, a la qual poden accedir diversos usuaris. Tanmateix, podeu crear i configurar un repositori local al vostre ordinador i accedir-hi com a usuari únic o permetre l'accés a altres màquines de la vostra LAN (Xarxa d'àrea local).

Un dels avantatges de configurar un dipòsit local és que no necessiteu connexió a Internet per instal·lar paquets de programari.

YUM (Yellowdog Updater Modified) és una eina de gestió de paquets àmpliament utilitzada per a RPM (RedHat Package Manager) basada en sistemes Linux, que facilita la instal·lació de programari a Red Hat/CentOS Linux.

En aquest article, explicarem com configurar un repositori YUM local mitjançant un servidor web HTTP (Nginx) a CentOS 7 VPS i també us mostrarem com trobar i instal·lar paquets de programari a les màquines client CentOS 7.

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

Pas 1: instal·leu el servidor web Nginx

1. Primer comenceu instal·lant el servidor HTTP Nginx des del dipòsit EPEL mitjançant el gestor de paquets YUM de la següent manera.

# yum install epel-release
# yum install nginx 

2. Un cop hàgiu instal·lat el servidor web Nginx, podeu iniciar-lo per primera vegada i habilitar-lo per iniciar-se automàticament a l'arrencada del sistema.

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

3. A continuació, heu d'obrir el port 80 i 443 per permetre el trànsit web al servei Nginx, actualitzar les regles del tallafoc del sistema per permetre els paquets entrants a HTTP i HTTPS mitjançant les ordres següents.

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

4. Ara podeu confirmar que el vostre servidor Nginx està en funcionament, utilitzant l'URL següent; si veieu la pàgina web predeterminada de Nginx, tot està bé.

http://SERVER_DOMAIN_NAME_OR_IP 

Pas 2: creeu un dipòsit local Yum

5. En aquest pas, heu d'instal·lar els paquets necessaris per crear, configurar i gestionar el vostre dipòsit local.

# yum install createrepo  yum-utils

6. A continuació, creeu els directoris necessaris (repositoris yum) que emmagatzemaran paquets i qualsevol informació relacionada.

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

7. A continuació, utilitzeu l'eina de resincronització per sincronitzar els dipòsits CentOS YUM amb els directoris locals, tal com es mostra.

# 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/
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     

A les ordres anteriors, l'opció:

  • -g: permet l'eliminació de paquets que no tenen comprovació de signatura GPG després de la baixada.
  • -l: activa el suport del connector yum.
  • -d: permet la supressió de paquets locals que ja no estan presents al dipòsit.
  • -m: permet baixar fitxers comps.xml.
  • --repoid: especifica l'ID del dipòsit.
  • --newest-only: digueu a reposync que només tregui la darrera versió de cada paquet dels repositoris.
  • --download-metadata: permet baixar totes les metadades no predeterminades.
  • --download_path: especifica el camí per descarregar els paquets.

8. A continuació, comproveu el contingut dels vostres directoris locals per assegurar-vos que tots els paquets s'han sincronitzat localment.

# 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. Ara creeu un nou repodata per als dipòsits locals executant les ordres següents, on el senyalador -g s'utilitza per actualitzar la informació del grup de paquets mitjançant el fitxer .xml especificat. .

# 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. Per permetre la visualització dels dipòsits i paquets que hi ha, mitjançant un navegador web, creeu un bloc de servidor Nginx que apunti a l'arrel dels vostres dipòsits tal com es mostra.

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

Afegiu la configuració següent al fitxer 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
        }
}

Deseu el fitxer i tanqueu-lo.

11. A continuació, reinicieu el vostre servidor Nginx i visualitzeu els dipòsits des d'un navegador web mitjançant l'URL següent.

http://repos.test.lab

Pas 3: creeu una tasca de Cron per sincronitzar i crear dipòsits

12. A continuació, afegiu un treball de cron que sincronitzarà automàticament els vostres repositoris locals amb els repositoris oficials de CentOS per agafar les actualitzacions i els pedaços de seguretat.

# vim /etc/cron.daily/update-localrepos

Afegiu aquestes ordres a l'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

Deseu l'script i tanqueu-lo i configureu-hi els permisos adequats.

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

Pas 4: configureu el repositori Yum local a les màquines client

13. Ara a les vostres màquines client CentOS, afegiu els vostres repositoris locals a la configuració de YUM.

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

Copieu i enganxeu la configuració següent al fitxer local-repos.repo (feu els canvis si cal).

[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

Deseu el fitxer i comenceu a utilitzar els vostres miralls YUM locals.

14. A continuació, executeu l'ordre següent per veure els vostres repositoris locals a la llista de repositoris YUM disponibles a les màquines client.

#  yum repolist
OR
# yum repolist all

Això és tot! En aquest article, hem explicat com configurar un repositori YUM local a CentOS 7. Esperem que aquesta guia us sigui útil. Si teniu cap pregunta o qualsevol altra reflexió per compartir, utilitzeu el formulari de comentaris a continuació.