Kaip nustatyti vietinę HTTP Yum saugyklą „CentOS 7“.


Programinės įrangos saugykla (trumpiau repo) yra centrinė failų saugykla, kurioje saugomi ir prižiūrimi programinės įrangos paketai, iš kurių vartotojai gali nuskaityti paketus ir įdiegti juos savo kompiuteriuose.

Saugyklos dažnai saugomos tinklo serveriuose, pavyzdžiui, internete, prie kurio gali prisijungti keli vartotojai. Tačiau galite sukurti ir konfigūruoti vietinę saugyklą savo kompiuteryje ir pasiekti ją kaip vienas vartotojas arba leisti pasiekti kitus įrenginius savo LAN (vietiniame tinkle).

Vienas iš vietinės saugyklos nustatymo pranašumų yra tai, kad norint įdiegti programinės įrangos paketus nereikia interneto ryšio.

YUM („Yellowdog Updater Modified“) yra plačiai naudojamas paketų valdymo įrankis, skirtas RPM (RedHat Package Manager), pagrįstas „Linux“ sistemomis, kuris palengvina programinės įrangos įdiegimą Red Hat. /CentOS Linux.

Šiame straipsnyje paaiškinsime, kaip nustatyti vietinę YUM saugyklą naudojant HTTP (Nginx) žiniatinklio serverį CentOS 7 VPS taip pat parodys, kaip rasti ir įdiegti programinės įrangos paketus klientų CentOS 7 įrenginiuose.

Mūsų bandymų aplinka

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

1 veiksmas: įdiekite „Nginx“ žiniatinklio serverį

1. Pirmiausia pradėkite įdiegdami Nginx HTTP serverį iš EPEL saugyklos naudodami YUM paketų tvarkyklę, kaip nurodyta toliau.

yum install epel-release
yum install nginx 

2. Įdiegę „Nginx“ žiniatinklio serverį galite jį paleisti pirmą kartą ir įgalinti jį automatiškai paleisti sistemos paleidimo metu.

 
systemctl start nginx
systemctl enable nginx
systemctl status nginx

3. Tada turite atidaryti prievadus 80 ir 443, kad galėtumėte leisti žiniatinklio srautą į Nginx paslaugą, atnaujinti sistemos užkardos taisykles, kad leistų įeinančius paketus HTTP ir HTTPS naudodami toliau pateiktas komandas.

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

4. Dabar galite patvirtinti, kad „Nginx“ serveris yra parengtas ir veikia, naudodami šį URL; jei matote numatytąjį Nginx tinklalapį, viskas gerai.

http://SERVER_DOMAIN_NAME_OR_IP 

2 veiksmas: sukurkite „Yum“ vietinę saugyklą

5. Šiame veiksme turite įdiegti reikiamus paketus vietinei saugyklai kurti, konfigūruoti ir tvarkyti.

yum install createrepo  yum-utils

6. Tada sukurkite reikiamus katalogus (yum saugyklas), kuriuose bus saugomi paketai ir visa susijusi informacija.

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

7. Tada naudokite reposync įrankį, kad sinchronizuotumėte CentOS YUM saugyklas su vietiniais katalogais, kaip parodyta.

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/
Pavyzdžio išvestis
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     

Aukščiau pateiktose komandose parinktis:

  • -g – leidžia pašalinti paketus, kuriems nepavyksta patikrinti GPG parašo po atsisiuntimo.
  • -l – įgalina „yum“ papildinio palaikymą.
  • -d – leidžia ištrinti vietinius paketus, kurių saugykloje nebėra.
  • -m – leidžia atsisiųsti comps.xml failus.
  • --repoid – nurodo saugyklos ID.
  • --only-newest-only – nurodykite „reposync“ ištraukti tik naujausią kiekvieno paketo versiją saugykloje.
  • --download-metadata – leidžia atsisiųsti visus nenumatytuosius metaduomenis.
  • --download_path – nurodo paketų atsisiuntimo kelią.

8. Tada patikrinkite vietinių katalogų turinį, kad įsitikintumėte, jog visi paketai buvo sinchronizuoti vietoje.

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. Dabar sukurkite naują vietinių saugyklų repodatą vykdydami šias komandas, kur vėliavėlė -g naudojama paketų grupės informacijai atnaujinti naudojant nurodytą .xml failą.

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. Kad galėtumėte peržiūrėti saugyklas ir jose esančius paketus naudodami žiniatinklio naršyklę, sukurkite „Nginx“ serverio bloką, nukreipiantį į jūsų saugyklų šaknį, kaip parodyta.

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

Pridėkite šią konfigūraciją prie failo 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
        }
}

Išsaugokite failą ir uždarykite jį.

11. Tada iš naujo paleiskite „Nginx“ serverį ir peržiūrėkite saugyklas žiniatinklio naršyklėje naudodami šį URL.

http://repos.test.lab

3 veiksmas: sukurkite „Cron“ užduotį, kad galėtumėte sinchronizuoti ir kurti saugyklas

12. Tada pridėkite cron užduotį, kuri automatiškai sinchronizuos jūsų vietinius atpirkimus su oficialiais CentOS atpirkimo sandoriais, kad gautumėte naujinimus ir saugos pataisas.

vim /etc/cron.daily/update-localrepos

Įtraukite šias komandas į scenarijų.

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

Išsaugokite scenarijų ir uždarykite jį bei nustatykite atitinkamus leidimus.

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

4 veiksmas: kliento įrenginiuose nustatykite vietinę Yum saugyklą

13. Dabar savo CentOS klientų įrenginiuose pridėkite vietinius atpirkimus prie YUM konfigūracijos.

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

Nukopijuokite ir įklijuokite toliau pateiktą konfigūraciją į failą local-repos.repo (jei reikia, atlikite pakeitimus).

[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

Išsaugokite failą ir pradėkite naudoti vietinius YUM veidrodžius.

14. Tada paleiskite šią komandą, kad peržiūrėtumėte vietinius atpirkimo sandorius galimų YUM atpirkimų sąraše kliento įrenginiuose.

 yum repolist
OR
yum repolist all

Tai viskas! Šiame straipsnyje paaiškinome, kaip CentOS 7 nustatyti vietinę YUM saugyklą. Tikimės, kad šis vadovas jums buvo naudingas. Jei turite klausimų ar kitų minčių, kuriomis norite pasidalinti, naudokite toliau pateiktą komentarų formą.