Cum să configurați depozitul local HTTP Yum pe CentOS 7


Un depozit de software („repo ” pe scurt) este o locație centrală de stocare a fișierelor pentru păstrarea și întreținerea pachetelor software, din care utilizatorii pot prelua pachete și le pot instala pe computerele lor.

Arhivele sunt adesea stocate pe servere dintr-o rețea, de exemplu un internet, care poate fi accesat de mai mulți utilizatori. Cu toate acestea, puteți crea și configura un depozit local pe computer și să îl accesați ca utilizator unic sau să permiteți accesul la alte mașini din LAN (Rețea locală).

Un avantaj al configurarii unui depozit local este că nu aveți nevoie de o conexiune la internet pentru a instala pachete software.

YUM (Yellowdog Updater Modified) este un instrument de gestionare a pachetelor utilizat pe scară largă pentru RPM (RedHat Package Manager) bazat pe sistemele Linux, ceea ce facilitează instalarea software-ului pe Red Hat. /CentOS Linux.

În acest articol, vom explica cum să configurați un depozit local YUM pe un server web HTTP (Nginx) pe CentOS 7 VPS și, de asemenea, vă arată cum să găsiți și să instalați pachete software pe computerele client CentOS 7.

Mediul nostru de testare

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

Pasul 1: Instalați serverul web Nginx

1. Începeți mai întâi prin a instala serverul HTTP Nginx din depozitul EPEL utilizând managerul de pachete YUM, după cum urmează.

yum install epel-release
yum install nginx 

2. După ce ați instalat serverul web Nginx, îl puteți porni pentru prima dată și îl puteți activa să pornească automat la pornirea sistemului.

 
systemctl start nginx
systemctl enable nginx
systemctl status nginx

3. Apoi, trebuie să deschideți porturile 80 și 443 pentru a permite traficul web către serviciul Nginx, actualizați regulile de firewall de sistem pentru a permite pachetele de intrare. pe HTTP și HTTPS folosind comenzile de mai jos.

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

4. Acum puteți confirma că serverul dvs. Nginx este activ și rulează, folosind următoarea adresă URL; dacă vedeți pagina web Nginx implicită, totul este bine.

http://SERVER_DOMAIN_NAME_OR_IP 

Pasul 2: Creați un depozit local Yum

5. În acest pas, trebuie să instalați pachetele necesare pentru crearea, configurarea și gestionarea depozitului dvs. local.

yum install createrepo  yum-utils

6. Apoi, creați directoarele necesare (arhive yum) care vor stoca pachetele și orice informații aferente.

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

7. Apoi utilizați instrumentul reposync pentru a sincroniza depozitele CentOS YUM cu directoarele locale, așa cum se arată.

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/
Ieșire eșantion
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     

În comenzile de mai sus, opțiunea:

  • -g – permite eliminarea pachetelor care nu verifică semnătura GPG după descărcare.
  • -l – activează suportul pentru pluginul yum.
  • -d – permite ștergerea pachetelor locale care nu mai sunt prezente în depozit.
  • -m – permite descărcarea fișierelor comps.xml.
  • --repoid – specifică ID-ul depozitului.
  • --newest-only – spuneți resincronizării să extragă numai cea mai recentă versiune a fiecărui pachet din depozit.
  • --download-metadata – permite descărcarea tuturor metadatelor care nu sunt implicite.
  • --download_path – specifică calea pentru descărcarea pachetelor.

8. Apoi, verificați conținutul directoarelor dvs. locale pentru a vă asigura că toate pachetele au fost sincronizate local.

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. Acum creați o nouă repodata pentru depozitele locale, rulând următoarele comenzi, unde marcajul -g este folosit pentru a actualiza informațiile grupului de pachete folosind specificat. fișier .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. Pentru a permite vizualizarea depozitelor și a pachetelor din acestea, printr-un browser web, creați un bloc de server Nginx care indică rădăcina depozitelor dvs., așa cum se arată.

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

Adăugați următoarea configurație în fișierul 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
        }
}

Salvați fișierul și închideți-l.

11. Apoi reporniți serverul Nginx și vizualizați depozitele dintr-un browser web folosind următoarea adresă URL.

http://repos.test.lab

Pasul 3: Creați o lucrare Cron pentru a sincroniza și a crea depozite

12. Apoi, adăugați o lucrare cron care va sincroniza automat depozitele dvs. locale cu depozitele oficiale CentOS pentru a prelua actualizările și corecțiile de securitate.

vim /etc/cron.daily/update-localrepos

Adăugați aceste comenzi în 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

Salvați scriptul și închideți-l și setați permisiunile corespunzătoare pentru el.

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

Pasul 4: Configurați depozitul Yum local pe mașinile client

13. Acum, pe computerele dvs. client CentOS, adăugați depozitele locale la configurația YUM.

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

Copiați și inserați configurația de mai jos în fișierul local-repos.repo (faceți modificări acolo unde este necesar).

[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

Salvați fișierul și începeți să utilizați oglinzile locale YUM.

14. Apoi, executați următoarea comandă pentru a vizualiza depozitele dvs. locale în lista de depozite YUM disponibile, pe mașinile client.

 yum repolist
OR
yum repolist all

Asta e tot! În acest articol, am explicat cum să configurați un depozit YUM local pe CentOS 7. Sperăm că ați găsit acest ghid util. Dacă aveți întrebări sau orice alte gânduri de împărtășit, utilizați formularul de comentarii de mai jos.