LinuxMirror

Uit FOK!wiki
Ga naar: navigatie, zoeken

Introductie

Bij de meeste Linux distributies heb je de mogelijkheid om de installatie via het netwerk te laten verlopen. Je downloadt een minimale CD waarmee je je machine boot en de installer haalt vervolgens de benodigde packages op via het netwerk (HTTP, FTP, NFS etc). Hiermee bespaar je bandbreedte, packages die je niet gebruikt hoef je immers ook niet te downloaden. Ook hoef je met deze methode maar 1 CD te branden, of je kan zelfs via het netwerk of USB booten.

In sommige gevallen is het echter makkelijk om op je eigen LAN een mirror op te zetten, je kan dan de installatiebestanden van een eigen server halen, dit gaat in de meeste gevallen vele malen sneller dan een publieke server. Het gebruik van een lokale mirror is ook aan te raden als je een groot aantal hosts hebt die deze bestanden nodig hebben.

Op deze pagina wordt verteld hoe je je eigen Linux Installatie Mirror opzet.

Debian Based distributies

In het Debian project wordt in veel gevallen gebruik gemaakt van de tool debmirror, dit is een programma dat speciaal geschreven is een Debian mirror aan te maken.

debmirror installeren

Ten eerste moet je de package debmirror installeren. Dit kan bijvoorbeeld met het onderstaande commando:

# apt-get install debmirror

of (onder Ubuntu)

$ sudo apt-get install debmirror

Debian

Maak een plek aan waar de mirror komt te staan:

mkdir -p /opt/mirror/debian

Gebruik vervolgens dit commando om de mirror aan te maken:

debmirror -a i386 --nosource -s main -h ftp.nl.debian.org -d etch -r /debian --progress -e ftp --ignore-release-gpg /opt/mirror/debian

Ubuntu

Maak een plek aan waar de mirror komt te staan:

mkdir -p /opt/mirror/debian

Gebruik vervolgens dit commando om de mirror aan te maken:

debmirror -a i386 --nosource -s main -h de.archive.ubuntu.com -d feisty -r /ubuntu --progress -e http --ignore-release-gpg /opt/mirror/ubuntu

Debmirror automatiseren

Bovenstaande commando's komen uit het volgende script, en dat script kan je gebruiken om automatisch de mirror te laten updaten:

etch.sh

Maak een bestand aan met de naam etch.sh"

vi /opt/mirror/etch.sh

Plak daarin de volgende tekst:

#!/bin/bash
arch=i386
section=main
release=etch
proto=http
server=ftp.nl.debian.org
inPath=/debian
outPath=/opt/mirror/debian
# Start script
#
debmirror       -a $arch \
                --nosource \
                -s $section \
                -h $server \
                -d $release \
                -r $inPath \
                --progress \
                -e $proto \
                --ignore-release-gpg \
                $outPath

Zorg er voor dat het script executable is:

chmod +x /opt/mirror/etch.sh

Als je nu het volgende command draait zal je je mirror updaten:

/opt/mirror/etch.sh

Dit kan je vervolgens via een cron job automatisch laten doen... :)

feisty.sh

Maak een bestand aan met de naam feisty.sh"

vi /opt/mirror/feisty.sh

Plak daarin de volgende tekst:

#!/bin/bash
arch=i386
section=main
release=feisty
server=de.archive.ubuntu.com
inPath=/ubuntu
proto=http
outPath=/opt/mirror/ubuntu
debmirror       -a $arch \
                --nosource \
                -s $section \
                -h $server \
                -d $release \
                -r $inPath \
                --progress \
                -e $proto \
                --ignore-release-gpg \
                $outPath

Zorg er voor dat het script executable is:

chmod +x /opt/mirror/feisty.sh

Als je nu het volgende command draait zal je je mirror updaten:

/opt/mirror/feisty.sh

Dit kan je vervolgens via een cron job automatisch laten doen... :)

RPM Based Distributies

Met het volgende commando haal je een RPM Mirror naar je toe, in dit geval van CentOS 5.0 ...

cd /tmp
wget  -r -c -t0 -l0 --retr-symlinks -np ftp://ftp.belnet.be/packages/centos/5.0/os/i386/
mv ftp.belnet.be/packages/centos /opt/mirror

De mirror is 3.7GB groot en het binnenhalen duurde bij mij een uur of twee.

FINISHED --02:00:10--
Downloaded: 3,715,127,198 bytes in 2411 files

Het aanbieden van je mirror

Om je mirror te kunnen gebruiken moet hij wel worden aangeboden via een van de protocollen die de Linux installers gebruiken. De keuze voor het HTTP protocol ligt daarbij voor de hand, het is een bekend protocol, veel gebruikt voor deze toepassing, heeft minder problemen met firewalls dan bijvoorbeeld FTP en is stukken veiliger dan NFS.

We gaan dus een HTTP server opzetten die deze pagina's serveert:

# apt-get install -y apache2
# cd /var/www
# ln -s /opt/mirror/ mirror

Je mirrors zijn nu via HTTP beschikbaar op http://<ip-of-hostname>/mirror/ , als je er met je browser naartoe surft zie je als het goed is alle directories die in /opt/mirror staan. :)