Softwarová úložiště se obvykle používají přes internet a mohou k nim přistupovat více uživatelů po celém světě. Můžete si však vytvořit své vlastní lokální úložiště na svém lokálním serveru a používat jej jako jediný uživatel, nebo povolit přístup k dalším strojům ve vaší LAN pomocí webového serveru nebo FTP.
Výhodou vytvoření místního úložiště je, že k instalaci softwarových balíčků nebo aktualizací nepotřebujete připojení k internetu. Další výhodou je samozřejmě rychlost stahování. Protože se balíčky stahují přes místní síť, aktualizace probíhají rychle.
Yellowdog Updater, Modified (YUM) nebo Dandified YUM (DNF) jsou správci softwarových balíčků, kteří spravují linuxové distribuce založené na RPM. S YUM nebo DNF můžete instalovat a aktualizovat skupiny počítačů, aniž byste museli ručně aktualizovat každé RPM.
V tomto článku vysvětlím, jak nastavit místní webové úložiště YUM/DNF na Red Hat Enterprise Linux (RHEL) 8 pomocí instalačního DVD nebo souboru ISO. Také vám ukážu, jak najít a nainstalovat softwarové balíčky na klientských počítačích RHEL 8 pomocí serveru Nginx HTTP a webových serverů Apache. Pokyny pro Apache najdete v části Vytvoření vlastního úložiště YUM/DNF založené na Apache na Red Hat Enterprise Linux 8 a pokyny k FTP naleznete v tématu Vytvoření vlastního úložiště YUM/DNF založené na FTP v Red Hat Enterprise Linux 8.
[Chcete vyzkoušet Red Hat Enterprise Linux? Stáhněte si jej nyní zdarma.]
Předpoklady
Budete muset nastavit dva systémy Red Hat Enterprise Linux 8:jeden místní repo server a jeden klientský počítač, který bude používat místní úložiště z místního serveru. Výsledek bude vypadat nějak takto:
-
Server místního úložiště:RHEL 8 [10.0.0.10]
-
Místní klientský počítač:RHEL 8 [10.0.0.11]
-
Instalační DVD RHEL 8
-
Nginx HTTP server
Vytvořte si úložiště
Vytvoření vašeho úložiště zahrnuje řadu kroků. Provedu vás jimi.
Krok 1:Připojte médium Red Hat Enterprise Linux 8
Nejprve připojte místní médium (DVD, USB flash disk atd.), které obsahuje Red Hat Enterprise Linux 8. Použijte instalační DVD:
$ sudo mount /dev/cdrom /mnt
mount: /mnt: WARNING: device write-protected, mounted read-only.
Nebo připojte obraz ISO:
$ sudo mount -o loop rhel-8.0-x86_64-dvd.iso /mnt
Krok 2:Vytvořte místní úložiště YUM z připojeného média
Přesuňte existující repo soubory umístěné v /etc/yum.repos.d
:
$ sudo mv /etc/yum.repos.d/*.repo /tmp/
Od této chvíle je lepší, když budete pokračovat jako uživatel root. Přepněte na superuživatele pomocí su
příkaz.
Dále vytvořte adresář pro repo:
# mkdir /local_repo
Použijte tento adresář s Nginx nebo Apache pro poskytování souborů přes LAN.
Vytvořte konfigurační soubor nového místního úložiště local-dvdrom.repo
, pod /etc/yum.repos.d
adresář:
# touch /etc/yum.repos.d/local-dvdrom.repo
# chmod u+rw,g+r,o+r /etc/yum.repos.d/local-dvdrom.repo
Krok 3:Zkopírujte mediální obsah do místního adresáře
Zkopírujte soubory ISO lokálně pod /local_repo
adresář:
# cd /mnt
# tar cvf - . | (cd /local_repo/; tar xvf -)
Počkejte, dokud se soubory nezkopírují, a poté pomocí:
ověřte, zda byly soubory zkopírovány
# ls -l /local_repo/
total 56
dr-xr-xr-x. 4 root root 38 Apr 4 2019 AppStream
dr-xr-xr-x. 4 root root 38 Apr 4 2019 BaseOS
dr-xr-xr-x. 3 root root 18 Apr 4 2019 EFI
-r--r--r--. 1 root root 8266 Mar 1 2019 EULA
-r--r--r--. 1 root root 1455 Apr 4 2019 extra_files.json
-r--r--r--. 1 root root 18092 Mar 1 2019 GPL
dr-xr-xr-x. 3 root root 76 Apr 4 2019 images
dr-xr-xr-x. 2 root root 256 Apr 4 2019 isolinux
-r--r--r--. 1 root root 103 Apr 4 2019 media.repo
-r--r--r--. 1 root root 1669 Mar 1 2019 RPM-GPG-KEY-redhat-beta
-r--r--r--. 1 root root 5134 Mar 1 2019 RPM-GPG-KEY-redhat-release
-r--r--r--. 1 root root 1796 Apr 4 2019 TRANS.TBL
Krok 4:Konfigurace místního úložiště YUM/DNF
Upravte konfigurační soubor úložiště, který jste vytvořili dříve:
# vim /etc/yum.repos.d/local-dvdrom.repo
Vložte do něj tuto konfiguraci:
[LocalRepo_BaseOS]
name=LocalRepo_BaseOS
metadata_expire=-1
enabled=1
gpgcheck=1
baseurl=file:///local_repo/BaseOS/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[LocalRepo_AppStream]
name=LocalRepo_AppStream
metadata_expire=-1
enabled=1
gpgcheck=1
baseurl=file:///local_repo/AppStream/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
Nainstalujte požadované balíčky pro vytváření, konfiguraci a správu místního úložiště:
# yum repolist
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
LocalRepo_AppStream 94 MB/s | 5.3 MB 00:00
LocalRepo_BaseOS 97 MB/s | 2.2 MB 00:00
repo id repo name status
LocalRepo_AppStream LocalRepo_AppStream 4,672
LocalRepo_BaseOS LocalRepo_BaseOS 1,658
# yum install createrepo yum-utils
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Last metadata expiration check: 0:02:33 ago on Sat 05 Oct 2019 09:52:46 PM UTC.
Package dnf-utils-4.0.2.2-3.el8.noarch is already installed.
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
createrepo_c x86_64 0.11.0-1.el8 LocalRepo_AppStream 76 k
Installing dependencies:
createrepo_c-libs x86_64 0.11.0-1.el8 LocalRepo_AppStream 101 k
drpm x86_64 0.3.0-14.el8 LocalRepo_AppStream 71 k
Transaction Summary
================================================================================
Install 3 Packages
Total size: 249 k
Installed size: 556 k
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : drpm-0.3.0-14.el8.x86_64 1/3
Installing : createrepo_c-libs-0.11.0-1.el8.x86_64 2/3
Installing : createrepo_c-0.11.0-1.el8.x86_64 3/3
Running scriptlet: createrepo_c-0.11.0-1.el8.x86_64 3/3
Verifying : createrepo_c-0.11.0-1.el8.x86_64 1/3
Verifying : createrepo_c-libs-0.11.0-1.el8.x86_64 2/3
Verifying : drpm-0.3.0-14.el8.x86_64 3/3
Installed products updated.
Installed:
createrepo_c-0.11.0-1.el8.x86_64 createrepo_c-libs-0.11.0-1.el8.x86_64
drpm-0.3.0-14.el8.x86_64
Complete!
Nakonec spusťte createrepo
příkaz:
# createrepo /local_repo/
Directory walk started
Directory walk done - 6647 packages
Temporary output repo path: /local_repo/.repodata/
Preparing sqlite DBs
Pool started (with 5 workers)
Pool finished
Krok 5:Otestujte a ověřte své místní úložiště
V tomto kroku vyčistíte dočasné soubory úložiště a ověříte, že je místní úložiště povoleno:
# yum clean all
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
12 files removed
# yum repolist
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
LocalRepo_AppStream 120 MB/s | 5.3 MB 00:00
LocalRepo_BaseOS 103 MB/s | 2.2 MB 00:00
repo id repo name status
LocalRepo_AppStream LocalRepo_AppStream 4,672
LocalRepo_BaseOS LocalRepo_BaseOS 1,658
Ověřte, že bylo vytvořeno místní úložiště:
# ls /local_repo/repodata/
26617821a5263fb13c7a49cc5e2d0b979b926eb17b9b4ed0b7df624e04c272f2-other.sqlite.bz2
5626e6dd41648dc6395def6889f4cc0e7f1006bb7d7eca748c9abd4c67fa5b9b-other.xml.gz
6290a72e46a90f98896c14f7664440de10c798d158ce0afe5f15a9f3896b7824-primary.xml.gz
a5c265589796231ed91b8b25a0473d05915bf62496495a004d321d042b26360c-filelists.sqlite.bz2
c8b51f43bdaa4f14cd5b083851cef1068e9284fa6557eb4552ba2ae22e7f72d5-primary.sqlite.bz2
ed21f77d28e263df02739a4bd55eb7247ffd0531c871bfe677d4b205dbffd5e8-filelists.xml.gz
repomd.xml
Můžete vidět, že místní úložiště generovalo soubory, takže v tuto chvíli je vše v pořádku.
Pokud si pozorně přečtete výše uvedený výstup příkazu, zobrazí se vám varovná zpráva This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register
. Chcete-li tuto zprávu potlačit nebo zabránit při spuštění dnf
nebo yum
příkaz a poté upravte soubor /etc/yum/pluginconf.d/subscription-manager.conf
:
# vim /etc/yum/pluginconf.d/subscription-manager.conf
a změňte parametr enabled=1
na enabled=0
:
[main]
enabled=0
Nastavení serveru Nginx HTTP
Jak jsem již zmínil, tento článek se zabývá nastavením vlastního úložiště pomocí serveru Nginx HTTP. Provedu vás instalací a konfigurací Nginx pro poskytování vašeho úložiště.
Instalovat Nginx
Instalace serveru Nginx HTTP pomocí YUM:
# yum install nginx
Last metadata expiration check: 0:19:18 ago on Sun 06 Oct 2019 09:51:22 AM UTC.
Dependencies resolved.
=======================================================================================
Package Arch Version Repository Size
=======================================================================================
Installing:
nginx x86_64 1:1.14.1-8.module+el8+2505+fe936cef LocalRepo_AppStream 569 k
Installing dependencies:
gd x86_64 2.2.5-6.el8 LocalRepo_AppStream 144 k
jbigkit-libs x86_64 2.1-14.el8 LocalRepo_AppStream 55 k
libX11 x86_64 1.6.7-1.el8 LocalRepo_AppStream 612 k
libX11-common noarch 1.6.7-1.el8 LocalRepo_AppStream 157 k
libXau x86_64 1.0.8-13.el8 LocalRepo_AppStream 36 k
libXpm x86_64 3.5.12-7.el8 LocalRepo_AppStream 58 k
libjpeg-turbo x86_64 1.5.3-7.el8 LocalRepo_AppStream 155 k
libtiff x86_64 4.0.9-13.el8 LocalRepo_AppStream 188 k
libwebp x86_64 1.0.0-1.el8 LocalRepo_AppStream 273 k
libxcb x86_64 1.13-5.el8 LocalRepo_AppStream 230 k
nginx-all-modules
noarch 1:1.14.1-8.module+el8+2505+fe936cef LocalRepo_AppStream 23 k
nginx-filesystem noarch 1:1.14.1-8.module+el8+2505+fe936cef LocalRepo_AppStream 24 k
nginx-mod-http-image-filter
x86_64 1:1.14.1-8.module+el8+2505+fe936cef LocalRepo_AppStream 34 k
nginx-mod-http-perl
x86_64 1:1.14.1-8.module+el8+2505+fe936cef LocalRepo_AppStream 45 k
nginx-mod-http-xslt-filter
x86_64 1:1.14.1-8.module+el8+2505+fe936cef LocalRepo_AppStream 33 k
nginx-mod-mail x86_64 1:1.14.1-8.module+el8+2505+fe936cef LocalRepo_AppStream 64 k
nginx-mod-stream x86_64 1:1.14.1-8.module+el8+2505+fe936cef LocalRepo_AppStream 85 k
dejavu-fonts-common
noarch 2.35-6.el8 LocalRepo_BaseOS 74 k
dejavu-sans-fonts
noarch 2.35-6.el8 LocalRepo_BaseOS 1.5 M
fontconfig x86_64 2.13.1-3.el8 LocalRepo_BaseOS 275 k
fontpackages-filesystem
noarch 1.44-22.el8 LocalRepo_BaseOS 16 k
libxslt x86_64 1.1.32-3.el8 LocalRepo_BaseOS 249 k
Enabling module streams:
nginx 1.14
Transaction Summary
=======================================================================================
Install 23 Packages
Total size: 4.8 M
Installed size: 15 M
Is this ok [y/N]: y
Nakonfigurujte Nginx na automatické spouštění při startu
Po instalaci Nginx spusťte a povolte automatické spuštění služby při spuštění a ověřte její stav pomocí následujících příkazů:
# systemctl start nginx
# systemctl enable nginx
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.
# systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disa>
Active: active (running) since Sun 2019-10-06 10:15:47 UTC; 22s ago
Main PID: 3596 (nginx)
Tasks: 3 (limit: 11528)
Memory: 7.6M
CGroup: /system.slice/nginx.service
├─3596 nginx: master process /usr/sbin/nginx
├─3597 nginx: worker process
└─3598 nginx: worker process
Oct 06 10:15:47 server systemd[1]: Starting The nginx HTTP and reverse proxy server...
Oct 06 10:15:47 server nginx[3593]: nginx: the configuration file /etc/nginx/nginx.con>
Oct 06 10:15:47 server nginx[3593]: nginx: configuration file /etc/nginx/nginx.conf te>
Oct 06 10:15:47 server systemd[1]: Started The nginx HTTP and reverse proxy server.
Nakonfigurujte bránu firewall
Dále musíte nakonfigurovat firewall tak, aby byl Nginx dostupný:
# firewall-cmd --zone=public --permanent --add-service=http
success
# firewall-cmd --zone=public --permanent --add-service=https
success
# firewall-cmd --reload
success
Ověřte, zda je Nginx v provozu
Nyní můžete ověřit, že váš server Nginx je v provozu, přejděte na localhost
URL ve vašem webovém prohlížeči. Výchozí webová stránka Nginx http://localhost/
by měl být zobrazen.
Nakonfigurujte Nginx
Chcete-li nakonfigurovat Nginx, otevřete konfigurační soubor:
# vim /etc/nginx/nginx.conf
Nyní najděte server
části souboru a změňte ji tak, aby vypadala takto:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /local_repo/;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
allow all;
sendfile on;
sendfile_max_chunk 1m;
autoindex on;
autoindex_exact_size off;
autoindex_format html;
autoindex_localtime on;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
Otestujte a vyčistěte
Nyní znovu spusťte službu Nginx a otestujte její stav:
# systemctl restart nginx
# systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disa>
Active: active (running) since Sun 2019-10-06 10:15:47 UTC; 3 hours 51 min ago
Process: 24032 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
Process: 24033 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Process: 24034 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Main PID: 24035 (nginx)
Status: "Started, listening on: port 80"
Tasks: 3 (limit: 2438)
Memory: 3.9M
CGroup: /system.slice/nginx.service
├─24035 nginx: master process /usr/sbin/nginx
├─24036 nginx: worker process
└─24037 nginx: worker process
Oct 06 10:15:47 server systemd[1]: Starting The nginx HTTP and reverse proxy server...
Oct 06 10:15:47 server nginx[24033]: nginx: [warn] could not build optimal types_hash, you should increase either types_hash_max_si>
Oct 06 10:15:47 server nginx[24033]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Oct 06 10:15:47 server nginx[24033]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Oct 06 10:15:47 server nginx[24033]: nginx[24034]: nginx: [warn] could not build optimal types_hash, you should increase either types_hash_max_si
Oct 06 10:15:47 server systemd[1]: Started The nginx HTTP and reverse proxy server.
Všechno je dobré.
Změnit oprávnění a nastavit SELinux
Pokračujte v konfiguraci zabezpečení změnou oprávnění na local_repo
adresář a konfiguraci SELinuxu. Chcete-li změnit oprávnění:
# setfacl -R -m u:apache:rwx /local_repo/
Poté zkontrolujte, zda SELinux vynucuje:
# getenforce
Enforcing
Pokud je to Enforcing
, zadejte:
# chcon -Rt httpd_sys_content_t /local_repo/
Pokud SELinux není nastaven na Enforcing, pak soubory nebudou sloužit z úložiště.
# setenforce enforcing
A udělejte změnu trvalou úpravou souboru /etc/sysconfig/selinux a nastavte následující hodnotu:
SELINUX=enforcing
Nastavte klienta
Nyní ke konfiguraci úložiště klientského počítače Red Hat Enterprise Linux 8.
Přidat úložiště
Na klientském počítači přidejte místní úložiště ze serveru do konfigurace YUM klienta:
$ sudo vim /etc/yum.repos.d/local-rhel8.repo
Poté vložte následující konfiguraci (nezapomeňte změnit IP adresu serveru podle vašeho nastavení):
[LocalServerRepo]
name=LocalServerRepo
enabled=1
gpgcheck=0
baseurl=[http://](http://10.0.0.10/)[**10.0.0.10**](http://10.0.0.10/)[/](http://10.0.0.10/)
Otestujte úložiště
Otestujte LocalServerRepo
instalací balíčku. Například:
$ yum repolist
Not root, Subscription Management repositories not updated
LocalServerRepo 112 MB/s | 7.2 MB 00:00
Last metadata expiration check: 0:00:02 ago on Sun 06 Oct 2019 01:04:21 PM UTC.
repo id repo name status
LocalServerRepo LocalServerRepo 6,647
$ sudo yum install nano
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
LocalServerRepo 103 MB/s | 7.2 MB 00:00
Last metadata expiration check: 0:00:02 ago on Sun 06 Oct 2019 01:07:33 PM UTC.
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
nano x86_64 2.9.8-1.el8 LocalServerRepo 580 k
Transaction Summary
================================================================================
Install 1 Package
Total download size: 580 k
Installed size: 2.2 M
Is this ok [y/N]: y
Downloading Packages:
nano-2.9.8-1.el8.x86_64.rpm 19 MB/s | 580 kB 00:00
--------------------------------------------------------------------------------
Total 17 MB/s | 580 kB 00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : nano-2.9.8-1.el8.x86_64 1/1
Running scriptlet: nano-2.9.8-1.el8.x86_64 1/1
Verifying : nano-2.9.8-1.el8.x86_64 1/1
Installed products updated.
Installed:
nano-2.9.8-1.el8.x86_64
Complete!
To je skvělé! Vše funguje podle očekávání. Nyní máte místní úložiště YUM/DNF založené na Nginx v Red Hat Enterprise Linux 8 pomocí instalačního DVD nebo souboru ISO.