Jinsi ya Kusanidi Hifadhi ya Yum ya HTTP kwenye CentOS 7


Hifadhi ya programu (\repo kwa ufupi) ni eneo kuu la kuhifadhi faili ili kuweka na kudumisha vifurushi vya programu, ambapo watumiaji wanaweza kupata vifurushi na kusakinisha kwenye kompyuta zao.

Hifadhi mara nyingi huhifadhiwa kwenye seva kwenye mtandao kwa mfano mtandao, ambao unaweza kufikiwa na watumiaji wengi. Hata hivyo, unaweza kuunda na kusanidi hazina ya ndani kwenye kompyuta yako na kuifikia kama mtumiaji mmoja au kuruhusu ufikiaji wa mashine nyingine kwenye LAN yako (Mtandao wa Eneo la Karibu).

Faida moja ya kusanidi hazina ya ndani ni kwamba hauitaji muunganisho wa intaneti ili kusakinisha vifurushi vya programu.

YUM (Yellowdog Updater Modified) ni zana inayotumika sana ya kudhibiti kifurushi cha RPM (Kidhibiti Kifurushi cha RedHat) kulingana na mifumo ya Linux, ambayo hurahisisha usakinishaji wa programu kwenye Red Hat/CentOS Linux.

Katika nakala hii, tutaelezea jinsi ya kusanidi hazina ya ndani ya YUM juu ya seva ya wavuti ya HTTP (Nginx) kwenye CentOS 7 VPS na pia kukuonyesha jinsi ya kupata na kusakinisha vifurushi vya programu kwenye mashine za mteja za CentOS 7.

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

Hatua ya 1: Sakinisha Seva ya Wavuti ya Nginx

1. Kwanza anza kwa kusakinisha seva ya Nginx HTTP kutoka hazina ya EPEL kwa kutumia kidhibiti cha kifurushi cha YUM kama ifuatavyo.

# yum install epel-release
# yum install nginx 

2. Mara baada ya kusakinisha seva ya wavuti ya Nginx, unaweza kuianzisha kwa mara ya kwanza na kuiwezesha kuanza kiotomatiki kwenye mfumo wa kuwasha.

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

3. Kisha, unahitaji kufungua mlango wa 80 na 443 ili kuruhusu trafiki ya wavuti kwa huduma ya Nginx, kusasisha sheria za mfumo wa ngome ili kuruhusu pakiti zinazoingia kwenye HTTP na HTTPS kwa kutumia amri zilizo hapa chini.

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

4. Sasa unaweza kuthibitisha kwamba seva yako ya Nginx iko na inafanya kazi, kwa kutumia URL ifuatayo; ikiwa utaona ukurasa wa wavuti wa Nginx, yote ni sawa.

http://SERVER_DOMAIN_NAME_OR_IP 

Hatua ya 2: Unda Hifadhi ya Karibu ya Yum

5. Katika hatua hii, unahitaji kusakinisha vifurushi vinavyohitajika kwa ajili ya kuunda, kusanidi, na kudhibiti hazina yako ya ndani.

# yum install createrepo  yum-utils

6. Kisha, tengeneza saraka zinazohitajika (yum repositories) ambazo zitahifadhi vifurushi na taarifa zozote zinazohusiana.

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

7. Kisha utumie zana ya upatanishi kusawazisha hazina za CentOS YUM kwa saraka za ndani kama inavyoonyeshwa.

# 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     

Katika amri zilizo hapo juu, chaguo:

  • -g - huwezesha uondoaji wa vifurushi ambavyo vinashindwa kuangalia sahihi ya GPG baada ya kupakua.
  • -l - huwezesha usaidizi wa programu-jalizi ya yum.
  • -d - huwezesha ufutaji wa vifurushi vya ndani ambavyo havipo tena kwenye hazina.
  • -m - huwezesha upakuaji wa faili za comps.xml.
  • --repoid - hubainisha kitambulisho cha hazina.
  • --mpya-pekee - sema reposync ivute tu toleo jipya zaidi la kila kifurushi kwenye repos.
  • --pakua-metadata - huwezesha kupakua metadata zote zisizo chaguomsingi.
  • --download_path - hubainisha njia ya kupakua vifurushi.

8. Kisha, angalia yaliyomo kwenye saraka za eneo lako ili kuhakikisha kuwa vifurushi vyote vimesawazishwa ndani ya nchi.

# 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. Sasa unda repodata mpya ya hazina za ndani kwa kutekeleza amri zifuatazo, ambapo alama -g inatumiwa kusasisha maelezo ya kikundi cha kifurushi kwa kutumia .xml faili iliyobainishwa. .

# 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. Ili kuwezesha utazamaji wa hazina na vifurushi vilivyomo, kupitia kivinjari cha wavuti, tengeneza kizuizi cha seva cha Nginx kinachoelekeza kwenye mzizi wa hazina zako kama inavyoonyeshwa.

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

Ongeza usanidi ufuatao wa faili 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
        }
}

Hifadhi faili na uifunge.

11. Kisha anzisha upya seva yako ya Nginx na uangalie hazina kutoka kwa kivinjari cha wavuti kwa kutumia URL ifuatayo.

http://repos.test.lab

Hatua ya 3: Unda Kazi ya Cron ili Kusawazisha na Kuunda Hifadhi

12. Kisha, ongeza kazi ya cron ambayo itasawazisha kiotomatiki repos zako za karibu na repo rasmi za CentOS ili kunyakua masasisho na alama za usalama.

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

Ongeza amri hizi kwenye hati.

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

Hifadhi hati na uifunge na uweke ruhusa zinazofaa juu yake.

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

Hatua ya 4: Sanidi Hazina ya Yum ya Ndani kwenye Mashine za Wateja

13. Sasa kwenye mashine za mteja wa CentOS, ongeza repos zako za karibu kwenye usanidi wa YUM.

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

Nakili na ubandike usanidi hapa chini kwenye faili local-repos.repo (fanya mabadiliko inapobidi).

[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

Hifadhi faili na anza kutumia vioo vya YUM vya karibu nawe.

14. Kisha, endesha amri ifuatayo ili kutazama repos za karibu nawe katika orodha ya repo za YUM zinazopatikana, kwenye mashine za mteja.

#  yum repolist
OR
# yum repolist all

Ni hayo tu! Katika makala haya, tumeelezea jinsi ya kusanidi hazina ya ndani ya YUM kwenye CentOS 7. Tunatumahi kuwa umepata mwongozo huu kuwa muhimu. Ikiwa una maswali yoyote, au mawazo mengine yoyote ya kushiriki, tumia fomu ya maoni hapa chini.