Kā iestatīt vietējo HTTP Yum repozitoriju CentOS 7


Programmatūras krātuve (īsāk sakot - “repo”) ir centrālā failu glabāšanas vieta programmatūras pakotņu glabāšanai un uzturēšanai, no kuras lietotāji var izgūt pakotnes un instalēt tās savos datoros.

Krātuves bieži tiek glabātas tīkla serveros, piemēram, internetā, kam var piekļūt vairāki lietotāji. Tomēr jūs varat izveidot un konfigurēt lokālo repozitoriju savā datorā un piekļūt tam kā vienam lietotājam vai atļaut piekļuvi citām jūsu LAN (lokālā tīkla) mašīnām.

Viena no vietējā repozitorija izveidošanas priekšrocībām ir tā, ka programmatūras pakotņu instalēšanai nav nepieciešams interneta savienojums.

YUM (Yellowdog Updater Modified) ir plaši izmantots pakotņu pārvaldības rīks RPM (RedHat Package Manager), kas balstīts uz Linux sistēmām, kas atvieglo programmatūras instalēšanu Red Hat/CentOS Linux.

Šajā rakstā mēs paskaidrosim, kā iestatīt vietējo YUM repozitoriju, izmantojot HTTP (Nginx) tīmekļa serveri CentOS 7 VPS, kā arī parādīsim, kā atrast un instalēt programmatūras pakotnes klienta CentOS 7 mašīnās.

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

1. darbība: instalējiet Nginx tīmekļa serveri

1. Vispirms sāciet instalēt Nginx HTTP serveri no EPEL krātuves, izmantojot YUM pakotņu pārvaldnieku šādi.

# yum install epel-release
# yum install nginx 

2. Kad esat instalējis Nginx tīmekļa serveri, varat to startēt pirmo reizi un ļaut tam automātiski startēt sistēmas sāknēšanas laikā.

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

3. Pēc tam jums jāatver 80. un 443. ports, lai atļautu tīmekļa trafiku uz Nginx pakalpojumu, atjauniniet sistēmas ugunsmūra noteikumus, lai atļautu ienākošās paketes HTTP un HTTPS, izmantojot tālāk norādītās komandas.

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

4. Tagad jūs varat apstiprināt, ka jūsu Nginx serveris darbojas un darbojas, izmantojot šādu URL; ja redzat noklusējuma Nginx tīmekļa lapu, viss ir kārtībā.

http://SERVER_DOMAIN_NAME_OR_IP 

2. darbība: izveidojiet Yum lokālo krātuvi

5. Šajā solī jāinstalē nepieciešamās pakotnes vietējā repozitorija izveidei, konfigurēšanai un pārvaldībai.

# yum install createrepo  yum-utils

6. Pēc tam izveidojiet nepieciešamos direktorijus (yum repozitorijus), kas glabās pakas un visu saistīto informāciju.

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

7. Pēc tam izmantojiet reposync rīku, lai sinhronizētu CentOS YUM krātuves ar vietējiem direktorijiem, kā parādīts.

# 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     

Iepriekš minētajās komandās opcija:

  • -g - ļauj noņemt paketes, kurām pēc lejupielādes neizdodas pārbaudīt GPG parakstu.
  • -l - iespējo yum spraudņa atbalstu.
  • -d - ļauj izdzēst lokālos iepakojumus, kas vairs nav repozitorijā.
  • -m - ļauj lejupielādēt failus comps.xml.
  • --repoid - norāda krātuves ID.
  • - tikai uz rietumiem - sakiet reposync, lai repos tikai katras pakotnes jaunāko versiju.
  • --download-metadata - ļauj lejupielādēt visus metadatus, kuriem nav noklusējuma.
  • --download_path - norāda paku lejupielādes ceļu.

8. Pēc tam pārbaudiet vietējo direktoriju saturu, lai pārliecinātos, vai visas paketes ir sinhronizētas lokāli.

# 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. Tagad izveidojiet jaunu repodatu vietējām krātuvēm, izpildot šādas komandas, kur karodziņu -g izmanto, lai atjauninātu pakotņu grupas informāciju, izmantojot norādīto failu .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. Lai iespējotu tajās esošo krātuvju un pakotņu apskati, izmantojot tīmekļa pārlūku, izveidojiet Nginx servera bloku, kas norāda uz jūsu krātuvju sakni, kā parādīts.

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

Pievienojiet šādu konfigurāciju failam 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
        }
}

Saglabājiet failu un aizveriet to.

11. Pēc tam restartējiet Nginx serveri un skatiet krātuves no tīmekļa pārlūkprogrammas, izmantojot šādu URL.

http://repos.test.lab

3. solis: izveidojiet Cron darbu, lai sinhronizētu un izveidotu krātuves

12. Pēc tam pievienojiet cron darbu, kas automātiski sinhronizēs jūsu vietējās repos ar oficiālajām CentOS repo, lai paķertu atjauninājumus un drošības ielāpus.

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

Pievienojiet šīs komandas skriptam.

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

Saglabājiet skriptu un aizveriet to un iestatiet tam atbilstošās atļaujas.

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

4. darbība: iestatiet lokālo Yum krātuvi klientu mašīnās

13. Tagad savās CentOS klientu mašīnās pievienojiet vietējās repo YUM konfigurācijai.

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

Nokopējiet un ielīmējiet zemāk esošo konfigurāciju failā local-repos.repo (vajadzības gadījumā veiciet izmaiņas).

[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

Saglabājiet failu un sāciet izmantot vietējos YUM spoguļus.

14. Pēc tam palaidiet šo komandu, lai klienta mašīnās pieejamo YUM repo sarakstu apskatītu vietējos repos.

#  yum repolist
OR
# yum repolist all

Tas ir viss! Šajā rakstā mēs esam izskaidrojuši, kā iestatīt vietējo YUM repozitoriju vietnē CentOS 7. Mēs ceram, ka šī rokasgrāmata jums šķita noderīga. Ja jums ir kādi jautājumi vai citas domas, ko dalīties, izmantojiet zemāk esošo komentāru veidlapu.