CentOS 8 Stream lokální repozitář

Pokud provozujete víc linuxových systémů (my se budeme věnovat distribuci CentOS 8 Stream), může se vám hodit mít zrcadlo lokálních repozitářů. Implementace je relativně snadná.

Nejprve vytvoříme samotné zrcadlo.

mkdir /local
mkdir /local/repos
mkdir /local/repos/centos

Vytvořte dávku, která bude provádět synchronizaci lokálního repozitáře z internetu. U nás je to /usr/local/bin/centos8-stream_reposync.sh

#!/bin/bash
repos_base_dir="/local/repos/centos/8/"

LOGFILE=/var/log/centos8-stream_reposync.log

# Start sync if base repo directory exist
if [[ -d "$repos_base_dir" ]] ; then
  # Start Sync
  rsync  -avSHP --delete rsync://mirror.liquidtelecom.com/centos/8-stream/  "$repos_base_dir" >> $LOGFILE 2>&1
  # Download CentOS 8 repository key
  wget -P $repos_base_dir wget https://www.centos.org/keys/RPM-GPG-KEY-CentOS-Official
fi

Ideálně vytvořte symlink této dávky do adresáře /etc/cron.daily, abyste zajistili každodenní aktualizaci repozitáře. Nyní vytvořte v rámci Apache http serveru virtuálního hosta (předpokládáme tedy instalovaný Apache http server v defaultní konfiguraci).

<VirtualHost repos.exterra.local:80>
    ServerName  repos.exterra.local
    DocumentRoot /local/repos
    ErrorLog /var/log/httpd/repos.exterra.local_80_error_log
    TransferLog /var/log/httpd/repos.exterra.local_80_access_log
    <Directory "/local/repos">
        Options All Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
</VirtualHost>

Nyní nakonfigurujte stranu klientských systémů, které budou repozitář používat. Nejprve odstraňte z adresáře /etc/yum.repos.d soubory:

-rw-r--r--. 1 root root  713 Mar 28 16:56 CentOS-Stream-AppStream.repo
-rw-r--r--. 1 root root  698 Mar 28 16:56 CentOS-Stream-BaseOS.repo
-rw-r--r--. 1 root root  316 Mar 28 16:56 CentOS-Stream-Debuginfo.repo
-rw-r--r--. 1 root root  744 Mar 28 16:56 CentOS-Stream-Extras-common.repo
-rw-r--r--. 1 root root  700 Mar 28 16:56 CentOS-Stream-Extras.repo
-rw-r--r--. 1 root root  734 Mar 28 16:56 CentOS-Stream-HighAvailability.repo
-rw-r--r--. 1 root root  696 Mar 28 16:56 CentOS-Stream-Media.repo
-rw-r--r--. 1 root root  683 Mar 28 16:56 CentOS-Stream-NFV.repo
-rw-r--r--. 1 root root  718 Mar 28 16:56 CentOS-Stream-PowerTools.repo
-rw-r--r--. 1 root root  690 Mar 28 16:56 CentOS-Stream-RealTime.repo
-rw-r--r--. 1 root root  748 Mar 28 16:56 CentOS-Stream-ResilientStorage.repo
-rw-r--r--. 1 root root 1771 Mar 28 16:56 CentOS-Stream-Sources.repo

Nyní vytvořte soubor local.repo s obsahem:

[BaseOS]
name=CentOS-$releasever - Base
baseurl=http://repos.exterra.local/centos/$releasever/BaseOS/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=http://repos.exterra.local/centos/$releasever/RPM-GPG-KEY-CentOS-Official

[AppStream]
name=CentOS-$releasever - AppStream
baseurl=http://repos.exterra.local/centos/$releasever/AppStream/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=http://repos.exterra.local/centos/$releasever/RPM-GPG-KEY-CentOS-Official

[centosplus]
name=CentOS-$releasever - Plus
baseurl=http://repos.exterra.local/centos/$releasever/centosplus/$basearch/os/
gpgcheck=1
enabled=0
gpgkey=http://repos.exterra.local/centos/$releasever/RPM-GPG-KEY-CentOS-Official

[extras]
name=CentOS-$releasever - Extras
baseurl=http://repos.exterra.local/centos/$releasever/extras/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=http://repos.exterra.local/centos/$releasever/RPM-GPG-KEY-CentOS-Official

[PowerTools]
name=CentOS-$releasever - PowerTools
baseurl=http://repos.exterra.local/centos/$releasever/PowerTools/$basearch/os/
gpgcheck=1
enabled=0
gpgkey=http://repos.exterra.local/centos/$releasever/RPM-GPG-KEY-CentOS-Official

[cr]
name=CentOS-$releasever - cr
baseurl=http://repos.exterra.local/centos/$releasever/cr/$basearch/os/
gpgcheck=1
enabled=0
gpgkey=http://repos.exterra.local/centos/$releasever/RPM-GPG-KEY-CentOS-Official

[fasttrack]
name=CentOS-$releasever - fasttrack
baseurl=http://repos.exterra.local/centos/$releasever/fasttrack/$basearch/os/
gpgcheck=1
enabled=0
gpgkey=http://repos.exterra.local/centos/$releasever/RPM-GPG-KEY-CentOS-Official

Nyní otestujte funkčnost příkazy:

dnf clean all
18 files removed

dnf makecache
CentOS-8 - Base         38  B/s | 3.9 kB     01:45
CentOS-8 - AppStream    346 kB/s | 4.4 kB     00:00
CentOS-8 - Extras       1.9 kB/s |  18 kB     00:09
Metadata cache created.

Nyní bude utilita dnf používat lokální repozitář z vaší LAN. Výhodou je kromě rychlosti stahování a úspory přenosového pásma vašeho připojení k internetu i kontrola nad obsahem.

K prostudování doporučuji ještě dokumentaci Red Hatu k vytvoření lokálního repozitáře z ISO médií.

Pro úplnost si ukažme ještě použití lokálního repozitáře v LAN při samotné instalaci CentOS 8 Stream systému. Nejprve je nutno zkonfigurovat síť a poté zvolit zdorj instalace.

Zde zadejte URL dříve zkonfigurovaného webserveru s cestou k repozitáři.

Pokud vám instalátor odmítá přijmout zadné URL, vyzkoušejte ho v prohlížeči podle tohoto vzorového příkladu.