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.