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ó.