Vyhledávání na webu

Jak nastavit místní úložiště HTTP Yum na CentOS 7


Softwarové úložiště (zkráceně „repo “) je centrální úložiště souborů pro uchovávání a údržbu softwarových balíků, ze kterého mohou uživatelé získávat balíčky a instalovat je do svých počítačů.

Úložiště jsou často uložena na serverech v síti, například na internetu, ke kterému může přistupovat více uživatelů. Můžete však ve svém počítači vytvořit a nakonfigurovat místní úložiště a přistupovat k němu jako jeden uživatel nebo povolit přístup k dalším počítačům ve vaší LAN (Local Area Network).

Jednou z výhod nastavení místního úložiště je, že k instalaci softwarových balíčků nepotřebujete připojení k internetu.

YUM (Yellowdog Updater Modified) je široce používaný nástroj pro správu balíčků pro RPM (RedHat Package Manager) založený na systémech Linux, který usnadňuje instalaci softwaru na Red Hat /CentOS Linux.

V tomto článku vysvětlíme, jak nastavit místní úložiště YUM přes webový server HTTP (Nginx) na CentOS 7 VPS a také vám ukáže, jak najít a nainstalovat softwarové balíčky na klientských počítačích CentOS 7.

Naše testovací prostředí

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

Krok 1: Nainstalujte webový server Nginx

1. Nejprve začněte instalací serveru Nginx HTTP z úložiště EPEL pomocí správce balíčků YUM následovně.

yum install epel-release
yum install nginx 

2. Jakmile nainstalujete webový server Nginx, můžete jej poprvé spustit a povolit, aby se automaticky spouštěl při spouštění systému.

 
systemctl start nginx
systemctl enable nginx
systemctl status nginx

3. Dále musíte otevřít port 80 a 443, abyste povolili webový provoz na službu Nginx, aktualizovat pravidla brány firewall systému, aby povolovala příchozí pakety na HTTP a HTTPS pomocí níže uvedených příkazů.

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

4. Nyní můžete pomocí následující adresy URL potvrdit, že váš server Nginx je v provozu. pokud vidíte výchozí webovou stránku Nginx, je vše v pořádku.

http://SERVER_DOMAIN_NAME_OR_IP 

Krok 2: Vytvořte místní úložiště Yum

5. V tomto kroku musíte nainstalovat požadované balíčky pro vytváření, konfiguraci a správu vašeho místního úložiště.

yum install createrepo  yum-utils

6. Dále vytvořte potřebné adresáře (yum repozitáře), ve kterých budou uloženy balíčky a veškeré související informace.

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

7. Poté pomocí nástroje reposync synchronizujte úložiště CentOS YUM do místních adresářů, jak je znázorněno.

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/
Ukázkový výstup
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     

Ve výše uvedených příkazech je možnost:

  • -g – umožňuje odstranění balíčků, které po stažení neprojdou kontrolou podpisu GPG.
  • -l – umožňuje podporu pluginu yum.
  • -d – umožňuje mazání lokálních balíčků, které již nejsou v úložišti přítomny.
  • -m – umožňuje stahování souborů comps.xml.
  • --repoid – určuje ID úložiště.
  • --newest-only – řekne reposync, aby stáhl pouze nejnovější verzi každého balíčku v repozitářích.
  • --download-metadata – umožňuje stažení všech metadat, která nejsou výchozí.
  • --download_path – určuje cestu ke stažení balíčků.

8. Dále zkontrolujte obsah místních adresářů, abyste se ujistili, že všechny balíčky byly lokálně synchronizovány.

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. Nyní vytvořte nová repodata pro místní úložiště spuštěním následujících příkazů, kde se parametr -g používá k aktualizaci informací o skupině balíčků pomocí zadaného .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. Chcete-li povolit prohlížení úložišť a balíčků v nich prostřednictvím webového prohlížeče, vytvořte blok serveru Nginx, který ukazuje na kořen vašich úložišť, jak je znázorněno.

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

Přidejte následující konfigurační soubor 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
        }
}

Uložte soubor a zavřete jej.

11. Poté restartujte server Nginx a prohlédněte si úložiště z webového prohlížeče pomocí následující adresy URL.

http://repos.test.lab

Krok 3: Vytvořte úlohu Cron pro synchronizaci a vytváření úložišť

12. Dále přidejte úlohu cron, která automaticky synchronizuje vaše místní úložiště s oficiálními úložištěmi CentOS, abyste získali aktualizace a bezpečnostní záplaty.

vim /etc/cron.daily/update-localrepos

Přidejte tyto příkazy do skriptu.

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

Uložte skript a zavřete jej a nastavte pro něj příslušná oprávnění.

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

Krok 4: Nastavení místního úložiště Yum na klientských počítačích

13. Nyní na klientských počítačích CentOS přidejte místní úložiště do konfigurace YUM.

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

Zkopírujte a vložte konfiguraci níže do souboru local-repos.repo (v případě potřeby proveďte změny).

[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

Uložte soubor a začněte používat místní zrcadla YUM.

14. Dále spusťte následující příkaz a zobrazte místní úložiště v seznamu dostupných úložišť YUM na klientských počítačích.

 yum repolist
OR
yum repolist all

To je vše! V tomto článku jsme vysvětlili, jak nastavit místní úložiště YUM na CentOS 7. Doufáme, že vám tato příručka byla užitečná. Pokud máte nějaké dotazy nebo jiné myšlenky, o které se chcete podělit, použijte níže uvedený formulář pro komentáře.