Otu esi edozi ebe nchekwa HTTP Yum na CentOS 7


Ebe nchekwa sọftụwia (\repo na nkenke) bụ ebe nchekwa faịlụ dị n'etiti idowe ma jikwaa ngwungwu ngwanrọ, nke ndị ọrụ nwere ike weghachite ngwugwu ma tinye ha na kọmputa ha.

A na-echekwa ebe nchekwa na sava dị na netwọkụ dịka ọmụmaatụ ịntanetị, nke ọtụtụ ndị ọrụ nwere ike ịnweta. Agbanyeghị, ịnwere ike ịmepụta ma hazie ebe nchekwa mpaghara na kọmpụta gị wee nweta ya dị ka otu onye ọrụ ma ọ bụ kwe ka ịnweta igwe ndị ọzọ na LAN gị (Local Area Network).

Otu uru dị n'ịmepụta ebe nchekwa mpaghara bụ na ị chọghị njikọ ịntanetị iji wụnye ngwugwu ngwanrọ.

YUM (Yellowdog Updater Modified) bụ ngwa njikwa ngwugwu a na-ejikarị maka RPM (RedHat Package Manager) dabere na sistemụ Linux, nke na-eme ka nrụnye ngwanrọ dị mfe na Red Hat/CentOS Linux.

N'isiokwu a, anyị ga-akọwa otu esi edozi ebe nchekwa YUM dị na mpaghara HTTP (Nginx) sava weebụ na CentOS 7 VPS ma gosikwa gị otu esi achọta ma wụnye ngwugwu ngwanrọ na igwe CentOS 7 ndị ahịa.

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

Kwụpụ 1: Wụnye Nginx Web Server

1. Mbụ na-amalite site na ịwụnye Nginx HTTP nkesa site na EPEL repository iji YUM ngwugwu njikwa dị ka ndị a.

# yum install epel-release
# yum install nginx 

2. Ozugbo ị wụnye ihe nkesa weebụ Nginx, ị nwere ike ịmalite ya na nke mbụ ma mee ka ọ malite na-akpaghị aka na usoro buut.

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

3. Ọzọ, ịkwesịrị imepe ọdụ ụgbọ mmiri 80 na 443 iji kwe ka okporo ụzọ weebụ gaa na ọrụ Nginx, melite usoro iwu firewall iji kwe ka ngwugwu inbound na HTTP na HTTPS jiri iwu ndị dị n'okpuru ebe a.

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

4. Ugbu a ị nwere ike ikwenye na ihe nkesa Nginx gị na-arụ ọrụ, na-eji URL ndị a; Ọ bụrụ na ị hụ ibe weebụ Nginx ndabara, ihe niile dị mma.

http://SERVER_DOMAIN_NAME_OR_IP 

Kwụpụ 2: Mepụta ebe nchekwa mpaghara Yum

5. N'ime usoro a, ịkwesịrị ịwụnye ngwugwu achọrọ maka ịmepụta, ịhazi, na ijikwa ebe nchekwa mpaghara gị.

# yum install createrepo  yum-utils

6. Ọzọ, mepụta akwụkwọ ndekọ aha dị mkpa (yum repositories) nke ga-echekwa ngwugwu na ozi ọ bụla metụtara ya.

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

7. Mgbe ahụ, jiri ngwá ọrụ reposync ka ịmekọrịta ebe nchekwa CentOS YUM na akwụkwọ ndekọ aha mpaghara dịka egosiri.

# 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     

N'iwu ndị a dị n'elu, nhọrọ:

  • -g - na-enyere aka iwepụ ngwungwu na-adaba n'ịlele mbinye aka GPG ka emechara nbudata.
  • -l - na-enyere yum nkwado ngwa mgbakwunye.
  • -d - na-enyere aka ihichapụ ngwungwu mpaghara adịghịzi na ebe nchekwa.
  • -m - na-enyere nbudata faịlụ comps.xml.
  • --repoid - na-akọwapụta NJ ebe nchekwa.
  • --ọhụụ-naanị - gwa reposync ka ọ dọpụta naanị ụdị ngwungwu ọ bụla kachasị ọhụrụ na ebe nchekwa.
  • --download-metadata - na-enyere nbudata metadata niile na-abụghị nke ndabara.
  • --download_path - na-akọwapụta ụzọ isi budata ngwugwu.

8. Ọzọ, lelee ọdịnaya nke akwụkwọ ndekọ aha mpaghara gị iji hụ na emekọrịtala ngwugwu niile na mpaghara.

# 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. Ugbu a mepụta repodata ọhụrụ maka ebe nchekwa mpaghara site na iji iwu ndị a, ebe a na-eji ọkọlọtọ -g iji melite ozi otu ngwugwu site na iji faịlụ .xml akọwapụtara. .

# 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. Iji mee ka ikiri ebe nchekwa na ngwugwu dị n'ime ha, site na ihe nchọgharị weebụ, mepụta ngọngọ nkesa Nginx nke na-arụtụ aka na mgbọrọgwụ nke nchekwa gị dị ka egosiri.

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

Tinye nhazi ot faịlụ 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
        }
}

Chekwaa faịlụ ma mechie ya.

11. Mgbe ahụ malitegharịa ihe nkesa Nginx gị wee lelee ebe nchekwa site na ihe nchọgharị weebụ site na iji URL na-esonụ.

http://repos.test.lab

Kwụpụ 3: Mepụta ọrụ Cron iji mekọrịta ma mepụta ebe nchekwa

12. Na-esote, tinye ọrụ cron nke ga-emekọrịta na-akpaghị aka na mpaghara gị na ụlọ ọrụ CentOS repos iji jide mmelite na patches nche.

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

Tinye iwu ndị a na edemede.

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

Chekwaa edemede ahụ wee mechie ya ma tọọ ikike kwesịrị ekwesị na ya.

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

Kwụpụ 4: Tọọ ebe nchekwa Yum Mpaghara na igwe ndị ahịa

13. Ugbu a na igwe ndị ahịa CentOS gị, tinye ebe nchekwa mpaghara gị na nhazi YUM.

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

Detuo na mado nhazi n'okpuru na faịlụ local-repos.repo (mee mgbanwe ebe ọ dị mkpa).

[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

Chekwaa faịlụ wee malite iji enyo YUM mpaghara gị.

14. Na-esote, gbaa iwu na-esonụ ka ịlele ebe nchekwa mpaghara gị na ndepụta nke YUM repos dị, na igwe ndị ahịa.

#  yum repolist
OR
# yum repolist all

Ọ gwụla! N'isiokwu a, anyị akọwala otu esi edozi ebe nchekwa YUM dị na CentOS 7. Anyị na-atụ anya na ịchọtara ntuziaka a bara uru. Ọ bụrụ na ị nwere ajụjụ ọ bụla, ma ọ bụ echiche ọ bụla ọzọ ị ga-ekekọrịta, jiri ụdị nkọwa n'okpuru.