Kako postaviti lokalno HTTP Yum spremište na CentOS 7


Softversko spremište (ukratko „repo ”) je centralna lokacija za skladištenje datoteka za čuvanje i održavanje softverskih paketa, iz koje korisnici mogu preuzeti pakete i instalirati ih na svoje računare.

Spremišta se često pohranjuju na serverima na mreži, na primjer na internetu, kojoj može pristupiti više korisnika. Međutim, možete kreirati i konfigurirati lokalno spremište na svom računaru i pristupiti mu kao jedan korisnik ili dozvoliti pristup drugim mašinama na vašem LAN (Local Area Network).

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

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

U ovom članku ćemo objasniti kako postaviti lokalno YUM spremište preko HTTP (Nginx) web servera na CentOS 7 VPS i takođe vam pokazati kako da pronađete i instalirate softverske pakete na klijentskim CentOS 7 mašinama.

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 server

1. Prvo počnite instaliranjem Nginx HTTP servera iz EPEL spremišta koristeći YUM menadžer paketa na sljedeći način.

yum install epel-release
yum install nginx 

2. Nakon što instalirate Nginx web server, možete ga pokrenuti po prvi put i omogućiti da se automatski pokreće pri pokretanju sistema.

 
systemctl start nginx
systemctl enable nginx
systemctl status nginx

3. Zatim morate otvoriti portove 80 i 443 da dozvolite web promet na Nginx uslugu, ažurirati pravila sistemskog firewall-a da dozvolite ulazne pakete na HTTP i HTTPS koristeći naredbe ispod.

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 server 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: Kreirajte Yum lokalno spremište

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

yum install createrepo  yum-utils

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

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

7. Zatim koristite alat reposync da sinhronizujete CentOS YUM spremišta sa lokalnim direktorijumima 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/
Sample Output
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ćava uklanjanje paketa koji nisu uspjeli provjeriti GPG potpis nakon preuzimanja.
  • -l – omogućava podršku za yum plugin.
  • -d – omogućava brisanje lokalnih paketa koji više nisu prisutni u spremištu.
  • -m – omogućava preuzimanje datoteka comps.xml.
  • --repoid – specificira ID spremišta.
  • --newest-only – recite reposync-u da povuče samo najnoviju verziju svakog paketa u repo.
  • --download-metadata – omogućava preuzimanje svih metapodataka koji nisu zadani.
  • --download_path – specificira putanju za preuzimanje paketa.

8. Zatim provjerite sadržaj vaših lokalnih direktorija 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 kreirajte nove repodate za lokalna spremišta pokretanjem sljedećih naredbi, gdje se zastavica -g koristi za ažuriranje informacija o grupi paketa korištenjem specificiranog .xml fajl.

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 spremišta i paketa u njima, putem web pretraživača, kreirajte blok Nginx servera koji ukazuje na korijen vaših spremišta 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
        }
}

Sačuvajte datoteku i zatvorite je.

11. Zatim ponovo pokrenite svoj Nginx server i pregledajte spremišta iz web pretraživača koristeći sljedeći URL.

http://repos.test.lab

Korak 3: Kreirajte Cron posao za sinkronizaciju i kreiranje spremišta

12. Zatim dodajte cron posao koji će automatski sinkronizirati vaše lokalne repozitorije sa zvaničnim CentOS repozitorijama da biste preuzeli ažuriranja i sigurnosne zakrpe.

vim /etc/cron.daily/update-localrepos

Dodajte ove komande 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

Sačuvajte skriptu i zatvorite je i postavite odgovarajuće dozvole za nju.

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

Korak 4: Podešavanje lokalnog Yum repozitorija na klijentskim mašinama

13. Sada na vašim CentOS klijentskim mašinama, dodajte svoje lokalne repo-ove u YUM konfiguraciju.

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

Kopirajte i zalijepite donju konfiguraciju u datoteku local-repos.repo (unesite 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

Sačuvajte datoteku i počnite koristiti svoje lokalne YUM ogledala.

14. Zatim pokrenite sljedeću naredbu da vidite svoje lokalne repozitorije na listi dostupnih YUM repo-ova, na klijentskim mašinama.

 yum repolist
OR
yum repolist all

To je sve! U ovom članku smo objasnili kako da postavite lokalno YUM spremište na CentOS 7. Nadamo se da vam je ovaj vodič bio koristan. Ako imate bilo kakvih pitanja ili bilo koje druge misli za podijeliti, koristite obrazac za komentare ispod.