Sisällysluettelo |
Lyhyesti
Tämän artikkelin tarkoitus on kertoa esimerkinomaisesti, miten luodaan oma peilipalvelin ubuntun jakeluista. Artikkelissa käydään kohta kohdalta läpi, miten luodaan oma peilipalvelin, asetetaan automaattinen ylläpito ja lopuksi miten työasemat määritellään käyttämään omaa peilipalvelinta.
Kenelle tarkoitettu
Oman peilipalvelin kannattaa olla, jos samassa lähiverkossa on useita ubuntuja. Jo kolmella työasemalla kaistantarve päivittäessä on merkittävä, saati sitten kouluympäristöissä.
Artikkeli syntyi kun toisen asteen oppilaitokseen asennettiin luokallinen (22 kpl) ubuntu-työasemia. Päivityspakettien hakeminen oli luonnollisesti työasemakohtainen, joten työpäivän alussa saattoi tulla suuri piikki kaistankäytössä. Artikkelin mukaan luotu oma peilauspalvelin korjasi tämän ongelman.
Laitteistovaatimukset
Kiintolevylle tulee olla tilaa. Esimerkin kahden jakelun (lucis, maverick) ja kahden arkkitehtuurin (i386, amd64) tarvitsema tila oli 76.1Gt. Verkon nopeus oli 1.2Mt/s, joten kokonaisuudessaan meni aikaa n. 19 tuntia
Alla taulukko erilaisista vaihtoehdoista
Jakelu |
Arkkitehtuurit |
Kiintolevytila |
Paketit |
10.04 LTS (Lucid Lynx) |
i386 / amd64 |
7.2GiB / 7.3GiB |
main,restricted |
10.04 LTS (Lucid Lynx) |
amd64 |
31.9GiB |
main,restricted,multiverse,universe |
10.04 LTS (Lucid Lynx) |
i386,amd64 |
43.3GiB |
main,restricted,multiverse,universe |
10.04 LTS (Lucid Lynx), 10.10 (Maverick Meerkat) |
i386,amd64 |
76.1GiB |
main,restricted,multiverse,universe |
Esivalmistelut
Apache
Pakettien jakamiseen käytetään omaa www-palvelinta, joten jos sitä ei vielä ole asennettu, on nyt korkea aika. Asenna apache seuraavasti
sudo apt-get install apache2
Itse peilaus tapahtuu debmirror ohjelmalla
sudo apt-get install debmirror
Muista asettaa rootille ympäristömuuttujat http_proxy ja ftp_proxy jos niitä tarvitaan. Helpoin tapa tälle on kirjautua roottina sisään ja muuttaa .bashrc
sudo -i nano ~/.bashrc
Lisää loppuun rivit
export http_proxy=http://username:password@proxy:port export ftp_proxy=http://username:password@proxy:port
Julkaisuvarmenteet (Release signatures)
Aluksi pitää määritellä avain, jota vertaamalla voidaan varmistua, että ladataan oikeita paketteja. Onneksi ubuntussa on tallennettu vertailuavaimet hakemistoon /usr/share/keyrings.
Ensin luodaan hakemisto gpg-avaimelle
sudo mkdir -p /mirrors/mirrorkeyring
Sitten generoidaan sinne tarvittava avain
sudo gpg --no-default-keyring --keyring /mirrors/mirrorkeyring/trustedkeys.gpg --import /usr/share/keyrings/ubuntu-archive-keyring.gpg
Skriptin luominen
Peilipalvelimen voi päivittää pelkällä komentorivikäskyllä, mutta sivistyneempi tapa on tehdä skripti, jossa määritellään kaikki tarpeelliset muuttujat ja jota voi kutsua cronin kautta ajastetusti.
Ensin luodaan hakemisto, minne kaikki peilattavat tiedostot ladataan
sudo mkdir /mirrors/ubuntu
Luodaan skripti päivitystä varten. (username on oma käyttäjätunnuksesi, määritellään tässä ryhmäoikeuksiin).
sudo touch /mirrors/buildMirror.sh sudo chown -R root:username /mirrors/ubuntu sudo chmod -R 755 /mirrors/ubuntu sudo chmod 755 /mirrors/buildMirror.sh
Avataan luotu skripti geditillä (käytä sitä editoria, mitä haluat)
sudo gedit /mirrors/buildMirror.sh
... ja kopioi seuraava teksti ja tallenna se.
# buildMirror.sh # Luo peilihakemiston ubuntun jakelusta # 2005 LittleLion, 2011 JakeStyles # License http://www.gnu.org/licenses/gpl.txt # käytetään generoitua avainta export GNUPGHOME=/home/mirrorkeyring ################################################################################ # MÄÄRITTELYT ################################################################################ # Ei ladata lähdekoodeja OPTIONS="--nosource" # Valitaan käytettävä tiedonsiirtotapa (rsync/ftp/http) tiedostojen päivittämiseen # - Funetin tapauksessa valitaan ftp METHOD="ftp" # Valitaan käytettävä palvelin, jolla tiedostot sijaitsevat. # Vain palvelimen nimi kirjoitetaan (ei http tai ftp -alkua) HOST="www.nic.funet.fi" # Hakemisto, josta päivitykset löytyvät palvelimelta DIR="/pub/mirrors/archive.ubuntu.com" # Valitaan käytettävät versiot (voi valita useita, erotinmerkki pilkku) # Valitut versiot 10.04 LTS (lucid) ja 10.10 (Maverick) DIST="lucid,lucid-updates,lucid-security,maverick,maverick-updates,maverick-security" # Valitaan pakettityypit (main ja restricted pakolliset) SECTIONS="main,restricted,universe,multiverse" # Valitaan arkkitehtuurit (i386,amd64) ARCH="i386,amd64" # Määritellään lokitiedostojen hakemisto LOGDIR="/var/log" # Määritellään kohdehakemisto, minne haetut paketit tallennetaan (täytyy olla luotuna valmiiksi!) DESTDIR="/mirrors/ubuntu" ################################################################################ # PÄÄOHJELMA ################################################################################ # Kopioidaan määrittelyiden mukaisesti tiedostot paikalliseen hakemistoon # - Virheilmoitukset ohjataan tiedostoon debmirrorscript-errors.log # - Suorituksen aikaiset tiedot ohjataan tiedostoon debmirrorscript-progress.log debmirror $OPTIONS -h $HOST -e $METHOD -r $DIR -d $DIST -s $SECTIONS -a $ARCH $DESTDIR -p -v 2> $LOGDIR/debmirrorscript-errors.log 1> $LOGDIR/debmirrorscript-progress.log
Linkki apacheen
Päivitystä varten tee linkki apachen www-hakemistoon ja annetaan sille oikeudet.
sudo ln -s /mirrors/ubuntu /var/www/ubuntu sudo chmod 755 /var/www/ubuntu
Peilaus
Kun järjestelmä on määritelty oikein, testataan peilausprosessi. Suorita
sudo /mirrors/buildMirror.sh &
ja järjestelmä alkaa hakea tiedostoja peilipalvelimelle. Tämä vaihe voi kestää useita tunteja, riippuen haettavan jakelun laajuudesta ja verkon nopeudesta.
Esimerkissa verkon nopeus oli 1.2Mt/s ja latausten koko 76.1Gt, joten kokonaisuudessaan meni aikaa n. 19 tuntia. Lataus käynnistettiin neljä kertaa uudestaan ja aina löytyi uusia paketteja. Luultavasti ftp-yhteyden kautta funetilla on jonkinasteinen siirtokoko / aika-raja, joka saavutettiin ja yhteys katkesi.
Ajastus
Mikäli skriptin ajaminen manuaalisesti tuntuu työläältä, kannattaa luoda siitä oma ajastettu toiminto croniin. Ensin editori auki
sudo crontab -e
Lisää seuraava rivi
0 1 * * * /mirrors/buildMirror.sh
ja peilaus suoritetaan kerran vuorokaudessa,kello 01:00. Mikäli haluat, voit käynnistää cronin uudestaan
sudo service cron restart
Asiakkaat (clients)
Esimerkkinä on käytetty asiakastyöasemaa, johon on asennettu 10.10 (Maverick Meerkat) 64-bittinen versio.
Asiakastyöasemissa pitää määritellä sources.list käyttämään luotua, omaa peilipalvelinta. Siirrytään hakemistoon ja kopioidaan alkuperäinen sources.list talteen nimellä sources.list.orig mikäli se halutaan palauttaa.
cd /etc/apt sudo mv sources.list sources.list.orig
luodaan uusi sources.list
sudo gedit sources.list
Kopioi seuraavat rivit ja muokkaa vastaamaan omaa järjestelmääsi
# Paikallinen peilipalvelin. # Muuta IP-numero 192.168.2.100 vastamaan omaa palvelintasi (myös nimi käy, jos määritelty asiakkaan # /etc/hosts -tiedostossa) deb http://192.168.2.100/ubuntu/ maverick main restricted universe multiverse deb http://192.168.2.100/ubuntu/ maverick-updates main restricted universe multiverse deb http://192.168.2.100/ubuntu/ maverick-security main restricted universe multiverse
Tämän jälkeen päivitetään lähteet ja testataan uusi palvelin
sudo apt-get update sudo apt-get dist-upgrade
Ja työaseman pitäisi hakea päivitykset paikalliselta palvelimelta.
