Kako nastaviti lokalno skladišče HTTP Yum na CentOS 7


Skladišče programske opreme (na kratko\"repo") je osrednje mesto za shranjevanje datotek za shranjevanje in vzdrževanje programskih paketov, iz katerih lahko uporabniki pridobivajo pakete in jih namestijo v svoje računalnike.

Skladišča so pogosto shranjena na strežnikih v omrežju, na primer v internetu, do katerega lahko dostopa več uporabnikov. Lahko pa ustvarite in konfigurirate lokalno skladišče v svojem računalniku in do njega dostopate kot en sam uporabnik ali pa dovolite dostop do drugih strojev v vašem lokalnem omrežju (lokalno omrežje).

Ena prednost nastavitve lokalnega skladišča je, da za namestitev programskih paketov ne potrebujete internetne povezave.

YUM (Yellowdog Updater Modified) je pogosto uporabljeno orodje za upravljanje paketov za RPM (RedHat Package Manager), ki temelji na sistemih Linux, kar olajša namestitev programske opreme na Red Hat/CentOS Linux.

V tem članku bomo razložili, kako nastavite lokalno skladišče YUM prek spletnega strežnika HTTP (Nginx) na CentOS 7 VPS, prav tako pa vam bomo pokazali, kako poiščete in namestite programske pakete na odjemalce CentOS 7 odjemalcev.

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

Korak: Namestite spletni strežnik Nginx

1. Najprej začnite z namestitvijo strežnika HTTP Nginx iz skladišča EPEL z upraviteljem paketov YUM, kot sledi.

# yum install epel-release
# yum install nginx 

2. Ko namestite spletni strežnik Nginx, ga lahko prvič zaženete in omogočite samodejni zagon ob zagonu sistema.

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

3. Nato morate odpreti vrata 80 in 443, da omogočite spletni promet storitvi Nginx, posodobite pravila požarnega zidu sistema, da dovolite dohodne pakete na HTTP in HTTPS z uporabo spodnjih ukazov.

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

4. Zdaj lahko potrdite, da je vaš strežnik Nginx zagnan in deluje z naslednjim URL -jem; če vidite privzeto spletno stran Nginx, je vse v redu.

http://SERVER_DOMAIN_NAME_OR_IP 

Korak: Ustvarite lokalno skladišče Yum

5. V tem koraku morate namestiti potrebne pakete za ustvarjanje, konfiguriranje in upravljanje vašega lokalnega skladišča.

# yum install createrepo  yum-utils

6. Nato ustvarite potrebne imenike (skladišča yum), v katerih bodo shranjeni paketi in vse povezane informacije.

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

7. Nato uporabite orodje za ponovno sinhronizacijo, da sinhronizirate skladišča CentOS YUM z lokalnimi imeniki, kot je prikazano.

# 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     

V zgornjih ukazih je možnost:

  • -g -omogoča odstranjevanje paketov, ki po nalaganju ne uspejo preveriti podpisov GPG.
  • -l -omogoča podporo vtičnikov yum.
  • -d -omogoča brisanje lokalnih paketov, ki niso več prisotni v skladišču.
  • -m -omogoča prenos datotek comps.xml.
  • --repoid -podaja ID skladišča.
  • -samo najnovejše -povejte reposync, naj v reposih potegne samo najnovejšo različico vsakega paketa.
  • --download-metadata -omogoča prenos vseh privzetih metapodatkov.
  • --download_path -podaja pot do prenosa paketov.

8. Nato preverite vsebino lokalnih imenikov in se prepričajte, da so bili vsi paketi lokalno sinhronizirani.

# 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. Zdaj ustvarite nove podpodatke za lokalna skladišča z izvajanjem naslednjih ukazov, kjer se zastavica -g uporablja za posodobitev podatkov o skupini paketov z uporabo podane datoteke .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. Če želite omogočiti ogled skladišč in paketov v njih, prek spletnega brskalnika ustvarite strežniški blok Nginx, ki kaže na koren vaših skladišč, kot je prikazano.

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

Dodajte naslednjo konfiguracijo datoteke 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
        }
}

Shranite datoteko in jo zaprite.

11. Nato znova zaženite strežnik Nginx in si oglejte skladišča iz spletnega brskalnika z naslednjim URL -jem.

http://repos.test.lab

3. korak: Ustvarite Cron Job za sinhronizacijo in ustvarjanje skladišč

12. Nato dodajte opravilo cron, ki bo samodejno sinhroniziralo vaše lokalne repo z uradnimi repo CentOS, da pobere posodobitve in varnostne popravke.

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

Te ukaze dodajte v skript.

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

Shranite skript in ga zaprite ter mu nastavite ustrezna dovoljenja.

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

4. korak: Nastavite lokalno skladišče Yum na odjemalskih strojih

13. Zdaj na odjemalskih strojih CentOS v konfiguracijo YUM dodajte svoje lokalne repo.

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

Kopirajte in prilepite spodnjo konfiguracijo v datoteko local-repos.repo (po potrebi spremenite).

[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

Shranite datoteko in začnite uporabljati lokalna ogledala YUM.

14. Nato zaženite naslednji ukaz, če si želite ogledati svoje lokalne repo na seznamu razpoložljivih repovih YUM na odjemalskih strojih.

#  yum repolist
OR
# yum repolist all

To je vse! V tem članku smo razložili, kako nastaviti lokalno skladišče YUM na CentOS 7. Upamo, da vam je bil ta vodnik koristen. Če imate kakršna koli vprašanja ali druge misli, ki jih želite deliti, uporabite spodnji obrazec za komentar.