##acl MoinPagesEditorGroup:read,write,delete,revert All:read ##master-page:HelpTemplate ##master-date:Unknown-Date #format wiki #language en ||'''Sisällysluettelo'''<
><> || {{attachment:Oma_ubuntu_peilipalvelin.png}} == 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 {{{cron}}}in 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. {{{ #!/bin/sh # 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 {{{cron}}}iin. 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ää {{{cron}}}in 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.