Wéi Setup Local HTTP Yum Repository op CentOS 7


E Software Repository (repo kuerz) ass eng zentral Dateiespäicherplaz fir Software Packagen ze halen an z'erhalen, vun deenen d'Benotzer Pakete kënnen erofhuelen an se op hire Computer installéieren.

Repositories ginn dacks op Serveren an engem Netz gespäichert, zum Beispill en Internet, dee vu ville Benotzer zougänglech ka ginn. Wéi och ëmmer, Dir kënnt e lokale Repository op Ärem Computer erstellen an konfiguréieren an et als eenzege Benotzer zougräifen oder Zougang zu anere Maschinnen op Ärem LAN (Local Area Network) erlaben.

Ee Virdeel fir e lokale Repository opzestellen ass datt Dir keng Internetverbindung braucht fir Software Packagen z'installéieren.

YUM (Yellowdog Updater Modified) ass e wäit benotzte Package Management Tool fir RPM (RedHat Package Manager) baséiert op Linux Systemer, wat Softwareinstallatioun einfach op Red Hat/CentOS Linux mécht.

An dësem Artikel erkläre mir wéi Dir e lokalen YUM Repository iwwer HTTP (Nginx) Webserver op CentOS 7 VPS opstellt an Iech och weisen wéi Dir Software Packagen op Client CentOS 7 Maschinnen fannt an installéiere wëllt.

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

Schrëtt 1: Installéieren Nginx Web Server

1. Start fir d'éischt mam Nginx HTTP-Server aus dem EPEL-Repository mat dem YUM Package Manager ze installéieren wéi folgend.

# yum install epel-release
# yum install nginx 

2. Wann Dir den Nginx Webserver installéiert hutt, kënnt Dir et fir d'éischte Kéier starten an et aktivéieren fir automatesch beim Systemboot ze starten.

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

3. Als nächst musst Dir den Hafen 80 an 443 opmaachen fir de Webverkéier op den Nginx Service z'erméiglechen, d'System Firewall Regelen aktualiséieren fir inbound Päckchen op HTTP an HTTPS z'erméiglechen mat de Kommandoen hei drënner.

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

4. Elo kënnt Dir bestätegen datt Ären Nginx-Server op a lafen ass, mat der folgender URL; wann Dir d'Standard Nginx Websäit gesitt, ass alles gutt.

http://SERVER_DOMAIN_NAME_OR_IP 

Schrëtt 2: Erstellt e Yum Local Repository

5. An dësem Schrëtt musst Dir déi erfuerderlech Packagen installéieren fir Äert lokalt Repository ze kreéieren, ze konfiguréieren an ze managen.

# yum install createrepo  yum-utils

6. Als nächst erstellt déi néideg Verzeichnisser (Yum Repositories) déi Packagen an all verbonne Informatioun späicheren.

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

7. Benotzt dann d'Reposync-Tool fir CentOS YUM Repositories op d'lokal Verzeichnisser ze synchroniséieren wéi se gewisen.

# 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     

An den uewe genannte Kommandoen ass d'Optioun:

  • -g - erméiglecht d'Ewechhuele vu Paketen, déi d'GPG Ënnerschrëft iwwerpréiwen nom Download.
  • -l – aktivéiert Yum Plugin Support.
  • -d - erméiglecht d'Läschen vu lokalen Packagen déi net méi am Repository präsent sinn.
  • -m – erméiglecht den Download vun comps.xml Dateien.
  • --repoid – spezifizéiert d'Repository ID.
  • --neest-nëmmen - sot dem reposync nëmmen déi lescht Versioun vun all Package am Repos ze zéien.
  • --download-Metadaten - erlaabt all net-Standard Metadaten erofzelueden.
  • --download_path – spezifizéiert de Wee fir Packagen erofzelueden.

8. Als nächst, kontrolléiert den Inhalt vun Äre lokalen Verzeichnisser fir sécherzestellen datt all d'Packagen lokal synchroniséiert goufen.

# 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. Erstellt elo eng nei Repodaten fir déi lokal Repositories andeems Dir déi folgend Kommandoen ausféiert, wou de Fändel -g benotzt gëtt fir d'Informatioun vun der Paketgrupp mat der spezifizéierter .xml Datei ze aktualiséieren .

# 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. Fir d'Visioun vu Repositories a Packagen an hinnen z'erméiglechen, iwwer e Webbrowser, erstellt en Nginx Serverblock deen op d'Wurzel vun Äre Repositories weist wéi gewisen.

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

Füügt déi folgend Konfiguratioun vun der Datei 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
        }
}

Späichert d'Datei a maach se zou.

11. Da restart Ären Nginx Server a kuckt d'Repositories aus engem Webbrowser mat der folgender URL.

http://repos.test.lab

Schrëtt 3: Erstellt e Cron Job fir Repositories ze synchroniséieren an ze kreéieren

12. Als nächst füügt e Cron Job un, deen automatesch Är lokal Repos mat den offiziellen CentOS Repos synchroniséiert fir d'Aktualiséierungen a Sécherheetspatches ze gräifen.

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

Füügt dës Kommandoen am Skript.

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

Späichert de Skript a maach et zou a setzt déi entspriechend Permissiounen drop.

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

Schrëtt 4: Setup Local Yum Repository op Client Maschinnen

13. Elo op Är CentOS Client Maschinnen, füügt Är lokal Repos un d'YUM Konfiguratioun.

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

Kopéiert a paste d'Konfiguratioun hei ënnen an der Datei local-repos.repo (ännert Ännerunge wann néideg).

[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

Späichert d'Datei a fänkt un Är lokal YUM Spigelen ze benotzen.

14. Nächst, fuert de folgende Kommando fir Är lokal Repos an der Lëscht vun verfügbaren YUM Repos ze gesinn, op de Client Maschinnen.

#  yum repolist
OR
# yum repolist all

Dat ass alles! An dësem Artikel hu mir erkläert wéi Dir e lokalen YUM Repository op CentOS 7. Mir hoffen datt Dir dëse Guide nëtzlech fonnt hutt. Wann Dir Froen hutt, oder all aner Gedanken ze deelen, benotzt de Kommentarformular hei drënner.