Szóval, a egy reggel arra ébredsz, hogy mindenképp Debian tükörszerverre van szükséged, akkor a következőképp érdemes eljárnod:
- Tükrözöd az egész hóbelevancot
- Teszel elé egy webszervert
Itt persze akár abba is hagyhatnánk, mert végül is ennyi az egész, de mégis inkább elmondjuk részletesebben:
A Debian tároló tükrözése
A régi szép időkben ezt például az apt-mirror használatával végezte az ember. Már a linkelt cikkben is említettem, hogy néha nem annyira értettem, hogy mi a francot művel a drága, na de van ilyen.
Most meg itt a jó kis ftpsync szkriptegyüttes, vagy mifene. Ez a javasolt mód. És működni látszik. Hogy miért ftp? Nemtom, mert rsync-kel dolgozik.
Első dolog: készíteni egy jóóóóóóó naaaaaaaaagy helyet. Én csak az amd64-es Jessie-t tükrözöm és majd' 300 GB.
Ha elkészült, tölthetjük az ftpsync-cuccot:
wget https://ftp-master.debian.org/ftpsync.tar.gz
Csomagoljuk ki:
tar xzf ftpsync.tar.gz
Készítsünk új felhasználót neki:
adduser mirroruser
Készítsünk egy könyvtárat az archívumnak (nálam pl nem a helyi gépen lesz, ezért megy az /mnt alá, a csatolást itt nem írom le), és adjuk oda a júzerünknek. Én egy verseny miatt, ahol szimulálnunk kell az ftp.hu.debian.org-ot, de úgy, hogy igazi inertnet-elérés meg nincs, azt játszom, hogy az én szerverem az ftp.hu.debian.org - ezért a könyvtárnév.
mkdir -p /mnt/mirror/ftp.hu.debian.org chown mirroruser:mirroruser /mnt/mirror/ftp.hu.debian.org
Telepítsünk rsync-et, mert erre nem figyel az ftpsync:
apt-get install rsync
Készítsünk három könyvtárat az ftpsync-nek:
mkdir /home/mirroruser/{bin,etc,log} chown mirroruser:mirroruser /home/mirroruser/{bin,etc,log}
Tegyük a helyére azt a három fájlt, ami kell:
cp distrib/bin/ftpsync /home/mirroruser/bin/ cp distrib/etc/common /home/mirroruser/etc/ cp distrib/etc/ftpsync.conf.sample /home/mirroruser/etc/ftpsync.confJogokkal nem kell ügyeskedni, jó így.
Szerkesszük az ftpsync.conf-ot. Említettem, hogy ftp.hu.debian.org-ot játszom egy verseny miatt, ezért az első sor bejegyzése. Neked nyilván nem kell ilyet hazudni. Még egyszer hangsúlyozom, hogy jelen példában csak az amd64 architektúrát, és csak a Jessie-t tükrözzük. Így néz ki a fájl kommentek nélkül:
MIRRORNAME=ftp.hu.debian.org TO="/mnt/mirror/ftp.hu.debian.org/debian" RSYNC_HOST=ftp.hu.debian.org EXCLUDE="--exclude=jessie-kfreebsd* --exclude=wheezy* --exclude=oldstable* --exclude=sid* --exclude=testing* --exclude=unstable* --exclude=experimental* --exclude=Debian* --exclude=stable* --exclude=squeeze* --exclude=stretch*" ARCH_EXCLUDE="alpha arm arm64 armel armhf hppa hurd-i386 i386 ia64 kfreebsd-amd64 kfreebsd-i386 m68k mipsel mips powerpc ppc64el s390 s390x sh sparc source"
És bár az ARCH EXCLUDE-ban benne van, hogy nem kell kfreebsd, be kellett írnom az EXCLUDE-ba is... Nem tudom, miért.
Figyelj az első sorra. Ha valamilyen más néven lesz elérhető a tükör, pl virtualhost-ként, akkor írd át megfelelően, ne hagyd így.
Mindenesetre kész a fájl. A mirroruser nevében futtathatjuk a
~/bin/ftpsync
fájlt.Rengeteg idő múlva egyszer csak ilyet láthatunk a logban (tail -f /home/mirroruser/log/rsync-ftpsync.log):
Upstream archive update in progress, skipping stage2 Retrying update in 1200Hogy mikre oda nem figyelnek... Klassz! - gondoltam először, aztán kiderült, hogy olyan lassú a netkapcsolatom (a leglassabb, amit ma a UPC kínál), hogy soha nem lesz kész, legalábbis az első 7-8 próbálkozás mind így végződött. Sebaj, a tükör jó. Éljen. Gondoltam. De nem.
Aztán kiderült, hogy ha a német archívummal (ftp.de.debian.org) dolgozunk, akkor rendbe jön a dolog, és már ilyen is kerül a log végére:
Back from rsync with returncode 0 Latest recorded rsync transfer speed: 254 KB/s Creating a full trace file Mirrorsync doneNa azért így szebb, igaz?
A security.debian.org tükrözése
Igen, tudom, nem jó ötlet, fúj. De nekem most mégis kell. Ugyanis egy versenyen offline szimulálnom kell ezt is.Majdnem olyan minden, mint az imént.
Készítsünk új felhasználót:
adduser mirrorusersecurity
Készítsünk könyvtárat és adjuk oda a júzerünknek:
mkdir -p /mnt/mirror/security.debian.org chown -R mirrorusersecurity:mirrorusersecurity /mnt/mirror/security.debian.org
Készítsük el a három könyvtárat:
mkdir /home/mirrorusersecurity/{bin,etc,log} chown mirrorusersecurity:mirrorusersecurity /home/mirrorusersecurity/{bin,etc,log}
Tegyük a helyére a három fájlunkat:
cp distrib/bin/ftpsync /home/mirrorusersecurity/bin/ cp distrib/etc/common /home/mirrorusersecurity/etc/ cp distrib/etc/ftpsync.conf.sample /home/mirrorusersecurity/etc/ftpsync.confJogokkal most sem kell ügyeskedni.
Szerkesszük az ftpsync.conf-ot. Újra elmondom, hogy itt csak az amd64 architektúrát, és csak a Jessie-t tükrözzük. Figyelj arra is, hogy az első sorban én hazudok, mert így kell elérniük a tükrömet a felhasználóimnak. Így néz ki a fájl kommentek nélkül:
MIRRORNAME=security.debian.org TO="/mnt/mirror/security.debian.org/debian-security" RSYNC_HOST=security.debian.org EXCLUDE="--exclude=jessie-kfreebsd* --exclude=wheezy* --exclude=oldstable* --exclude=sid* --exclude=testing* --exclude=unstable* --exclude=experimental* --exclude=Debian* --exclude=stable* --exclude=squeeze* --exclude=stretch*" ARCH_EXCLUDE="alpha arm arm64 armel armhf hppa hurd-i386 i386 ia64 kfreebsd-amd64 kfreebsd-i386 m68k mipsel mips powerpc ppc64el s390 s390x sh sparc source"
A félkövér kiemelések jelentik a változást az előzőekhez képest.
És akkor most a mirrorusersecurity nevében futtathatjuk a
~/bin/ftpsync
fájlt. És 3 másodperc múlva leáll jól.GRRRRRRRRRRRRRRRRRRRRRR!
Ha kiadjuk, hogy:
tail -f log/ftpsync.log.0
akkor azt lájuk, hogy:
ERROR: Sync step 1 went wrong, got errorcode 5. Logfile: /home/mirrorusersecurity/log/ftpsync.log
Ha a logban látható rsync-parancsot kimásoljuk és futtatjuk, akkor ez lesz a vége:
rsync error: error starting client-server protocol (code 5) at main.c(1653) [Receiver=3.1.1]
Ohhh. Az rsync-parancs vége felé van ilyen, hogy (félkövérrel a lényeg):
--exclude=/pool/**/*.dsc security.debian.org::debian /mnt/mirror/security.debian.org/debian-security
Kezd meglenni. Minden debian-archívumban a /debian könyvtárban van a cucc, kivéve itt, ahol a /debian-security a könyvtár neve. És ez bele van drótozva a bin/ftpsync fájlba.
Keressük meg a
RSYNC_PATH=${RSYNC_PATH:-"debian"}sort, és alakítsuk át:
RSYNC_PATH=${RSYNC_PATH:-"debian-security"}És mostantól elvileg semmi nem áll utunkba, tükrözető a security.debian.org:)
A webszrver-rész holnap jön.
Nincsenek megjegyzések:
Megjegyzés küldése