Kako postaviti lokalno HTTP Yum spremište na CentOS 7


Repozitorij softvera (ukratko “repo”) središnja je lokacija za pohranu datoteka za čuvanje i održavanje softverskih paketa, iz koje korisnici mogu dohvatiti pakete i instalirati ih na svoja računala.

Repozitoriji su često pohranjeni na poslužiteljima na mreži, na primjer internetu, kojima može pristupiti više korisnika. Međutim, možete stvoriti i konfigurirati lokalno spremište na svom računalu i pristupiti mu kao jedan korisnik ili dopustiti pristup drugim strojevima na vašem LAN-u (Lokalna mreža).

Jedna od prednosti postavljanja lokalnog repozitorija je ta što vam nije potrebna internetska veza za instaliranje softverskih paketa.

YUM (Yellowdog Updater Modified) široko je korišten alat za upravljanje paketima za RPM (RedHat Package Manager) temeljen na Linux sustavima, što olakšava instalaciju softvera na Red Hat /CentOS Linux.

U ovom ćemo članku objasniti kako postaviti lokalno YUM spremište preko HTTP (Nginx) web poslužitelja na CentOS 7 VPS i pokazati vam kako pronaći i instalirati softverske pakete na klijentske CentOS 7 strojeve.

Naše okruženje za testiranje

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

Korak 1: Instalirajte Nginx web poslužitelj

1. Prvo započnite instaliranjem Nginx HTTP poslužitelja iz EPEL repozitorija pomoću upravitelja paketa YUM na sljedeći način.

yum install epel-release
yum install nginx 

2. Nakon što ste instalirali Nginx web poslužitelj, možete ga pokrenuti po prvi put i omogućiti da se automatski pokrene pri dizanju sustava.

 
systemctl start nginx
systemctl enable nginx
systemctl status nginx

3. Zatim trebate otvoriti port 80 i 443 kako biste omogućili web promet prema Nginx servisu, ažurirajte pravila vatrozida sustava kako biste dozvolili ulazne pakete na HTTP i HTTPS koristeći donje naredbe.

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

4. Sada možete potvrditi da je vaš Nginx poslužitelj pokrenut i radi, koristeći sljedeći URL; ako vidite zadanu Nginx web stranicu, sve je u redu.

http://SERVER_DOMAIN_NAME_OR_IP 

Korak 2: Stvorite Yum lokalno spremište

5. U ovom koraku trebate instalirati potrebne pakete za stvaranje, konfiguriranje i upravljanje vašim lokalnim spremištem.

yum install createrepo  yum-utils

6. Zatim stvorite potrebne direktorije (yum repozitorije) koji će pohranjivati pakete i sve povezane informacije.

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

7. Zatim upotrijebite alat reposync za sinkronizaciju CentOS YUM repozitorija s lokalnim direktorijima kao što 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/
Uzorak izlaza
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     

U gornjim naredbama opcija:

  • -g – omogućuje uklanjanje paketa koji ne prolaze provjeru GPG potpisa nakon preuzimanja.
  • -l – omogućuje podršku za dodatak za yum.
  • -d – omogućuje brisanje lokalnih paketa koji više nisu prisutni u repozitoriju.
  • -m – omogućuje preuzimanje datoteka comps.xml.
  • --repoid – navodi ID repozitorija.
  • --newest-only – recite reposync-u da povuče samo najnoviju verziju svakog paketa u reposu.
  • --download-metadata – omogućuje preuzimanje svih metapodataka koji nisu zadani.
  • --download_path – navodi put za preuzimanje paketa.

8. Zatim provjerite sadržaj svojih lokalnih imenika kako biste bili sigurni da su svi paketi lokalno sinkronizirani.

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. Sada stvorite nove repodatke za lokalna spremišta izvođenjem sljedećih naredbi, gdje se oznaka -g koristi za ažuriranje informacija o grupi paketa pomoću navedenog .xml datoteku.

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. Da biste omogućili pregled repozitorija i paketa u njima, putem web preglednika, izradite blok poslužitelja Nginx koji pokazuje na korijen vaših repozitorija kao što je prikazano.

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

Dodajte sljedeću konfiguraciju u datoteku 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
        }
}

Spremite datoteku i zatvorite je.

11. Zatim ponovno pokrenite svoj Nginx poslužitelj i pregledajte spremišta iz web preglednika koristeći sljedeći URL.

http://repos.test.lab

Korak 3: Napravite Cron posao za sinkronizaciju i stvaranje spremišta

12. Zatim dodajte cron posao koji će automatski sinkronizirati vaša lokalna spremišta sa službenim CentOS spremištima kako biste preuzeli ažuriranja i sigurnosne zakrpe.

vim /etc/cron.daily/update-localrepos

Dodajte ove naredbe u skriptu.

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

Spremite skriptu i zatvorite je te postavite odgovarajuće dozvole za nju.

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

Korak 4: Postavite lokalno Yum spremište na klijentskim računalima

13. Sada na vašim CentOS klijentskim strojevima dodajte svoja lokalna spremišta u YUM konfiguraciju.

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

Kopirajte i zalijepite konfiguraciju u nastavku u datoteku local-repos.repo (napravite promjene gdje je potrebno).

[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

Spremite datoteku i počnite koristiti svoja lokalna YUM ogledala.

14. Zatim pokrenite sljedeću naredbu da vidite svoja lokalna spremišta na popisu dostupnih YUM spremišta na klijentskim računalima.

 yum repolist
OR
yum repolist all

To je sve! U ovom smo članku objasnili kako postaviti lokalno YUM spremište na CentOS 7. Nadamo se da vam je ovaj vodič bio koristan. Ako imate bilo kakvih pitanja ili drugih misli koje želite podijeliti, upotrijebite obrazac za komentare u nastavku.