Tato příručka ukáže, jak nakonfigurovat server místního úložiště založený na Ubuntu Bionic, ale lze jej přizpůsobit předchozí verzi Ubuntu nebo dokonce jakékoli distribuci používající Aptitude jako hlavní systém správy balíčků, jako je Debian nebo Mint. Obvykle budete chtít nastavit místní úložiště, abyste ušetřili šířku pásma internetu.
V tomto tutoriálu se naučíte:
- Jak nainstalovat požadovaný software na server
- Jak vybrat, která úložiště se mají zrcadlit na serveru
- Jak zrcadlit výběr úložišť lokálně na serveru
- Jak nakonfigurovat klienta Linux pro použití serveru místního úložiště
Jak je uvedeno výše, neuvažujeme o veřejném nebo národním zrcadle pro tento tutoriál, ale pokud jej chcete implementovat, zvažte následující:
- Šířka pásma vaší sítě se stává velmi důležitou
- Musíte zaregistrovat úložiště do seznamu zrcadel Ubuntu
- Zrcadlo musíte synchronizovat alespoň čtyřikrát denně
- Protože musíte zrcadlit všechny předchozí verze, možná budete potřebovat 2 TB nebo více místa na disku
Aktualizace seznamu balíčků z místního úložiště.
Požadavky na software a použité konvence
Kategorie | Požadavky, konvence nebo použitá verze softwaru |
---|---|
Systém | Ubuntu 18.04.2 (Bionic Beaver) LTS |
Software | Apache http 2.x, apt-mirror |
Jiné | Privilegovaný přístup k vašemu systému Linux jako root nebo prostřednictvím sudo příkaz, Minimálně 200 GB místa na disku pro úložiště |
Konvence | # – vyžaduje, aby dané linuxové příkazy byly spouštěny s právy root buď přímo jako uživatel root, nebo pomocí sudo příkaz$ – vyžaduje, aby dané linuxové příkazy byly spouštěny jako běžný neprivilegovaný uživatel |
Jak vytvořit server úložiště Ubuntu krok za krokem
- Instalace požadovaného softwaru na server.
Jako první krok potřebujeme nainstalovat Apache HTTP Server, který je součástí balíčku s názvem
apache2
, pomocí příkazu:$ sudo apt install apache2
Instalace Apache HTTPPoté se ujistěte, že služba běží při spuštění:
$ sudo systemctl enable apache2
Pokud je vše v pořádku, přesuneme se do výchozího adresáře DocumentRoot (což je /var/www/html).
Tam pak můžeme vytvořit podadresář/var/www/html/ubuntu
a přiřadit jej příslušnému vlastníkovi, v tomto případěwww-data
(uživatel, pod kterým běží Apache HTTP).$ sudo mkdir -p /var/www/html/ubuntu $ sudo chown www-data:www-data /var/www/html/ubuntu
Důrazně se doporučuje, aby DocumentRoot nebo alespoň podsložka ubuntu byla na souborovém systému, který patří k logickému svazku; tímto způsobem jej můžeme zvětšit online bez prostojů.
V době mého testování je 171,5 GiB absolutně minimální prostor potřebný pro zrcadlení balíčků src; takže pro plánování do budoucna se doporučuje mít na disku alespoň 300 GiB.Toto je hlavně odhad při výběru jedné verze Ubuntu; pokud je potřeba zrcadlit balíčky pro různé verze, požadavky na prostor se značně zvýší.
- Hlavním nástrojem, který nám umožňuje vytvořit místní úložiště, je
apt-mirror
, pro instalaci spusťte:$ sudo apt install apt-mirror
V případě, že balíček není nalezen, nezapomeňte nejprve aktualizovat seznam balíčků pomocí:
$ sudo apt update
- Výběr repozitářů k zrcadlení na serveru.
Jakmile je apt-mirror nainstalován, můžeme vytvořit záložní kopii jeho konfiguračního souboru
/etc/apt/mirror.list
, poté se ujistěte, že řádek obsahuje volbuset base_path
ukazuje na správnou cestu k našemu úložišti (ve výchozím nastavení je /var/spool/apt-mirror ).$ sudo cp /etc/apt/mirror.list /etc/apt/mirror.list.org
Nyní tedy můžete pomocí svého oblíbeného editoru (například vi nebo nano) změnit volbu base_path v souboru mirror.list na
konfigurační soubor mirror.list/var/www/html/ubuntu
; musíte také určit, že zrcadlíte bionické distro (změňte příslušně, pokud máte jinou verzi Ubuntu) repozitáře, vždy v konfiguračním souboru mirror.list.V případě, že na disku nemáte mnoho místa, můžete se rozhodnout nezrcadlit balíčky src; takže zakomentujete relativní řádky:
konfigurační soubor mirror.listDále zkopírujete důležitý skript do
/var/www/html/ubuntu/var/
$ sudo mkdir -p /var/www/html/ubuntu/var $ sudo cp /var/spool/apt-mirror/var/postmirror.sh /var/www/html/ubuntu/var/
- Zrcadlení vybraných úložišť lokálně na serveru.
Nyní je čas vytvořit místní zrcadlo, mějte na paměti, že počáteční zrcadlení (z
archive.ubuntu.com
pouze pro tento tutoriál) může zabrat spoustu času a zpomalit vaše připojení, takže bych vám doporučil začít tuto úlohu v noci.
Chcete-li začít zrcadlit vzdálené repozitářské balíčky na místní server, jednoduše spusťte příkaz:$ sudo apt-mirror
Pokud potřebujete, můžete tento proces přerušit (klasickou kombinací CTRL+C) a restartovat později; bude pokračovat od místa, kde bylo přerušeno.
Nakonec se dostaneme do bodu, kdy jsou provedeny skripty clean.sh a postmirror.sh, což je znamením, že proces zrcadlení byl dokončen.
Konec procesu zrcadlení. - Konfigurace procesu automatické synchronizace pomocí plánovače cron.
Po dokončení naší první synchronizace musíme vytvořit úlohu cron, abychom se ujistili, že máme automaticky aktuální místní úložiště; například chceme, aby se tato úloha spouštěla každou noc ve 2:00, a proto:
$ sudo crontab -e
Poté upravíme crontab a přidáme následující řádek:
00 02 * * * /usr/bin/apt-mirror
A uložte a ukončete (pomocí vi, nano nebo jiného nastaveného editoru).
Konfigurace klienta Linux pro použití serveru místního úložiště
- Konfigurace seznamu místního úložiště.
V každém klientovi, který bude používat naše lokální úložiště, musíme upravit konfigurační soubor
/etc/apt/sources.list
zadáním našeho místního úložiště a zakázáním jakéhokoli vzdáleného.V našem případě byly staženy následující repozitáře:
Místní úložiště serveruPOZNÁMKA
Doporučuje se zakomentovat jakýkoli řádek v
/etc/apt/sources.list
soubor odkazující na úložiště, která nejsou zrcadlena na našem serveru, například v tomto případě libovolný řádek začínajícídeb-src
a obsahujícíbionic-backports
byly okomentovány.Pokud tak neučiníte, může se zobrazit chyba
Release file has not been found
při spuštění příkazu apt update na klientovi.Nejprve nahradíme jakýkoli řetězec archive.ubuntu.com naší místní zrcadlovou IP, v tomto případě 10.0.0.42. Vaše místní IP adresa se samozřejmě může lišit.
$ sudo sed -i.bak0 "s/archive\.ubuntu\.com/10\.0\.0\.\42/g" /etc/apt/sources.list
Tento příkaz vytvoří záložní soubor
/etc/apt/sources.list.bak0
a nahraďte všechnyarchive.ubuntu.com
řetězec s10.0.0.42
.Další úprava probíhá opět takto:
$ sudo sed -i.bak1 "s/ubuntu/ubuntu\/mirror\/archive\.ubuntu\.com\/ubuntu/g" \ /etc/apt/sources.list
To je nutné, protože apt-mirror připojí cestu
mirror/archive.ubuntu.com/ubuntu
k naší základní cestě. Zde bude vytvořen další záložní soubor/etc/apt/sources.list.bak1.
Pro účely tohoto tutoriálu pouze zrcadlíme balíčky nebo úložiště z archive.ubuntu.com; samozřejmě můžete přidat další neoficiální úložiště do souboru mirror.list na serveru, ale pak tam musíte znovu spustit apt-mirror a podle toho upravit na libovolném klientovi soubor sources.list.
- Aktualizujte index místního úložiště.
Nyní se musíte ujistit, že port 80 není blokován klientským firewallem, a poté můžete spustit:$ sudo apt update
A jste připraveni vyrazit.
Aktualizace seznamu balíčků z místního úložiště.
Závěr
Nastavení místního úložiště v Ubuntu není obtížné, jak by se mohlo zdát, a může se hodit za předpokladu, že máte dostatečné zdroje místní sítě a disku.