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 jonkin verran tilaa. Esimerkin yhden jakelun (trusty) ja kahden arkkitehtuurin (i386, amd64) tarvitsema tila oli 117Gt.
Alla taulukko erilaisista vaihtoehdoista
Jakelu |
Arkkitehtuurit |
Kiintolevytila |
Paketit |
14.04 LTS (Trusty Tahr) |
i386 / amd64 |
7.2GiB / 7.3GiB |
main,restricted |
14.04 LTS (Trusty Tahr) |
i386 / amd64 |
59GiB |
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"
Jos käytetään proxya, kannattaa sisäinen verkko lisätä ohituslistalle. Eli
sudo gedit /etc/environment
ja lisää rivi sisäiselle verkolle (tässä tapauksessa C-luokan verkko, 24bit aliverkon peite ja osoiteavaruus 192.168.1.0)
no_proxy="192.168.1.0/24"
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, 2014 JakeStyles # License http://www.gnu.org/licenses/gpl.txt # käytetään generoitua avainta export GNUPGHOME=/mirrors/mirrorkeyring ################################################################################ # MÄÄRITTELYT ################################################################################ # Ei ladata lähdekoodeja OPTIONS="--nosource" # Valitaan käytettävä tiedonsiirtotapa (rsync/ftp/http) tiedostojen päivittämiseen # - Funetin tapauksessa valittiin http METHOD="http" # 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) # Valittu versio 14.04 LTS (trusty) DIST="trusty,trusty-updates,trusty-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.
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 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/ trusty main restricted universe multiverse deb http://192.168.2.100/ubuntu/ trusty-updates main restricted universe multiverse deb http://192.168.2.100/ubuntu/ trusty-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.