Giunsa ang Pag-setup sa Lokal nga HTTP Yum Repository sa CentOS 7


Ang software repository (\repo sa laktud) maoy sentro nga lokasyon sa pagtipig sa file aron matipigan ug mamentinar ang mga software packages, diin ang mga tiggamit makakuha og mga pakete ug ma-install kini sa ilang mga kompyuter.

Ang mga repository kanunay nga gitipigan sa mga server sa usa ka network pananglitan usa ka internet, nga mahimong ma-access sa daghang mga tiggamit. Bisan pa, mahimo kang maghimo ug mag-configure sa usa ka lokal nga tipiganan sa imong kompyuter ug ma-access kini isip usa ka user o tugotan ang pag-access sa ubang mga makina sa imong LAN (Local Area Network).

Usa ka bentaha sa pag-set up sa usa ka lokal nga repository mao nga dili nimo kinahanglan ang koneksyon sa internet aron ma-install ang mga pakete sa software.

Ang YUM (Yellowdog Updater Modified) kay kaylap nga gigamit nga package management tool para sa RPM (RedHat Package Manager) base sa Linux system, nga naghimo sa software nga sayon sa Red Hat/CentOS Linux.

Sa kini nga artikulo, among ipasabut kung giunsa ang pag-set up sa usa ka lokal nga repositoryo sa YUM sa HTTP (Nginx) web server sa CentOS 7 VPS ug ipakita usab kanimo kung giunsa pagpangita ug pag-install ang mga pakete sa software sa mga makina sa CentOS 7 nga kliyente.

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

Lakang 1: I-install ang Nginx Web Server

1. Una magsugod pinaagi sa pag-instalar sa Nginx HTTP server gikan sa EPEL repository gamit ang YUM package manager sama sa mosunod.

# yum install epel-release
# yum install nginx 

2. Sa higayon nga imong na-install ang Nginx web server, mahimo nimo kini sugdan sa unang higayon ug mahimo kini nga awtomatikong magsugod sa system boot.

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

3. Sunod, kinahanglan nimo nga ablihan ang port 80 ug 443 aron tugutan ang trapiko sa web sa serbisyo sa Nginx, i-update ang mga lagda sa firewall sa system aron tugutan ang mga inbound packet sa HTTP ug HTTPS gamit ang mga sugo sa ubos.

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

4. Karon mahimo nimong kumpirmahon nga ang imong Nginx server nagdagan ug nagdagan, gamit ang mosunod nga URL; kung makita nimo ang default nga web page sa Nginx, maayo ang tanan.

http://SERVER_DOMAIN_NAME_OR_IP 

Lakang 2: Paghimo og Yum Local Repository

5. Niini nga lakang, kinahanglan nimo nga i-install ang gikinahanglan nga mga pakete alang sa paghimo, pag-configure, ug pagdumala sa imong lokal nga repository.

# yum install createrepo  yum-utils

6. Sunod, paghimo sa gikinahanglan nga mga direktoryo (yum repository) nga magtipig sa mga pakete ug bisan unsang may kalabutan nga impormasyon.

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

7. Dayon gamita ang himan nga reposync aron i-synchronize ang mga repositoryo sa CentOS YUM sa mga lokal nga direktoryo sama sa gipakita.

# 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     

Sa mga sugo sa ibabaw, ang kapilian:

  • -g – makapahimo sa pagtangtang sa mga pakete nga napakyas sa pagsusi sa pirma sa GPG human sa pag-download.
  • -l – makapahimo sa suporta sa yum plugin.
  • -d – makapahimo sa pagtangtang sa mga lokal nga pakete nga wala na sa repositoryo.
  • -m – makapahimo sa pag-download sa comps.xml files.
  • --repoid – nagtino sa repository ID.
  • --newest-only – sultihi ang reposync nga ibira lang ang pinakabag-o nga bersyon sa matag package sa repos.
  • --download-metadata – makapahimo sa pag-download sa tanang non-default nga metadata.
  • --download_path – nagtino sa dalan sa pag-download sa mga package.

8. Sunod, susiha ang mga sulod sa imong lokal nga mga direktoryo aron masiguro nga ang tanang mga pakete na-synchronize sa lokal.

# 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. Karon paghimo ug bag-ong repodata para sa lokal nga mga tipiganan pinaagi sa pagpadagan sa mosunod nga mga sugo, diin ang bandila -g gigamit sa pag-update sa impormasyon sa grupo sa pakete gamit ang gipiho nga .xml file .

# 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. Aron makahimo sa pagtan-aw sa mga repositoryo ug mga pakete niini, pinaagi sa web browser, paghimo og Nginx server block nga nagpunting sa gamut sa imong mga repository sama sa gipakita.

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

Idugang ang mosunod nga configuration ot file 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-save ang file ug isira kini.

11. Dayon i-restart ang imong Nginx server ug tan-awa ang mga repository gikan sa web browser gamit ang mosunod nga URL.

http://repos.test.lab

Lakang 3: Paghimo og Cron Job aron I-synchronize ug Paghimo og mga Repositori

12. Sunod, idugang ang usa ka cron job nga awtomatik nga mag-synchronize sa imong lokal nga repos sa opisyal nga CentOS repos aron makuha ang mga update ug security patch.

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

Idugang kini nga mga sugo sa script.

#!/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-save ang script ug isira kini ug ibutang ang angay nga pagtugot niini.

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

Lakang 4: I-setup ang Lokal nga Yum Repository sa mga Client Machines

13. Karon sa imong CentOS client machines, idugang ang imong lokal nga repos sa YUM configuration.

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

Kopyaha ug idikit ang configuration sa ubos sa file local-repos.repo (pagbag-o kung gikinahanglan).

[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-save ang file ug sugdi gamit ang imong lokal nga YUM nga mga salamin.

14. Sunod, padagana sa mosunod nga sugo sa pagtan-aw sa imong lokal nga repos sa listahan sa anaa YUM repos, sa mga makina sa kliyente.

#  yum repolist
OR
# yum repolist all

Kana lang! Niini nga artikulo, among gipatin-aw kon unsaon pag-set up ang lokal nga YUM repository sa CentOS 7. Kami nanghinaut nga imong nakaplagan nga mapuslanon kini nga giya. Kung naa kay pangutana, o uban pang mga hunahuna nga ipaambit, gamita ang comment form sa ubos.