Harjoituksen tarkoituksena oli automatisoida Fedora Core 4-työaseman asennus seuraavasti: "Automatisoi valmiin työaseman asennus. Asennus alkaa sammutetusta, tyhjästä työasemasta, jossa on sopivat BIOS-asetukset. Sopivia tekniikoita WakeOnLan, dhcp, pxe, kickstart. Valmis työasema on sellainen, jolle käyttäjä voi kirjautua sisään ja alkaa tehdä töitä."
Suoritin harjoituksen 07 - 09.11.2005 aikana, luokassa 5007 koneilla numero 15 & 16 ja luokassa 5013 koneilla 5 & 10. Aikaa harjoitukseen kului kaiken kaikkiaan noin 10 tuntia, josta dokumenttien kirjoittaminen vei noin parin tunnin verran.
Aloitin asiaan tutustumisen lukaisemalla opettajan sivuilta löytyviä vinkkejä asiasta. Samalla törmäsin myöskin Ville Myllymäen sivuille, joista oli suuresti apua harjoituksen toteuttamisessa.
Sitten vain tuumasta toimeen, eli hain ensin opettajan tekemän tftpboot.tar-paketin ja purin sen juureen näin:
cd / wget http://myy.helia.fi/~karte/teros-tftpboot.tar.bz2 tar jxvf teros-tftpboot.tar.bz2
Tämän jälkeen kävin hakemassa vmlinuz ja initrd.img tiedostoista uusimmat versiot funetin peililtä ja kopioin ne tar-tiedoston purkamisen yhteydessä syntyneeseen hakemistoon /tftpboot kutakuinkin näin:
cd /tmp wget http://ftp.funet.fi/pub/Linux/mirrors/fedora/linux/core/4/i386/os/images/pxeboot/initrd.img wget http://ftp.funet.fi/pub/Linux/mirrors/fedora/linux/core/4/i386/os/images/pxeboot/vmlinuz rm /tftpboot/initrd.img rm /tftpboot/vmlinuz cp initrd.img /tftpboot cp vmlinuz /tftpboot
Seuraavaksi asensin tftp:n ja httpd:n yum:in avulla:
# yum install tftp-server.i386 # yum install httpd.i386
Jonka jälkeen otin vielä palomuurin ja SElinuxin pois päältä varmistaakseni juuri asennettujen palvelinten toiminnallisuuden.Tätä ei kannata tehdä, mikäli olet julkisessa verkossa, sillä seuraukset saattavat olla huikeita... Tässä vielä kertauksena komennot, joilla homma hoituu:
# setenforce 0 # /etc/init.d/iptables stop
Seuraavaksi laitoin juuri asennetut serverit päälle komennoillalla:
# /etc/init.d/tftpd start # /etc/init.d/httpd start
Molemmat palvelimet asensin oletusasetuksin, eikä mitään ongelmia tullut tässä vastaan. Httpd:n asennus perustui pelkästään oletusarvoihija testasin vain nopeasti selaimella, että haluamiini tiedostoihin ja hakemistoihin pääsee todellakin kiinni selaimella. Tässä vaiheessa oli hyvä muistaa "chmod o+r ..." komento, sillä muuten ei esim. kickst.cfg tiedosto ollut luettavissa...
Täältä löytyy käyttämäni httpd.conf tiedosto.
Tämän jälkeen kopioin myy-palvelimelta kickst.cfg tiedoston /var/www/html -hakemistoon testikoneellani. Koska nyt oli ajatuksena tarjota oman http-palvelun kautta asennustiedostoja, piti kickst.cfg tiedostoon tehdä hiukan muutoksia, joiden jälkeen tiedosto näytti tältä.
Seuraavaksi oli vuorossa tftpboot-tiedostojen muokkaus tarpeen mukaisiksi. Heti kärkeen kävin editoimassa tiedostoa /tftpboot/pxelinux.cfg/default, jotta PXE-bootissa osattaisiin etsiä kickstart-tiedostoani oikeasta paikasta, joka oli siis oma http-palvelimeni.
Seuraavaksi kävin laittamassa bootup messagen asianmukaiseen muotoon - eli laitoin oman nimeni näkyviin.
Tämän jälkeen oli vuorossa itse asennusmedioiden käyttöön saattaminen, joka hoitui yksinkertaisesti kopioimalla kaikkien neljän FC4-asennus CD:n sisältö hakemistoon /var/www/html/linux.
Nyt olikin sitten vuoro siirtyä tutkailemaan dhcp:n asetuksien säätöä. Tunnilla mainittiinkin, että dhcpd.conf:sta tulee löytyä määreet next-server ja pxelinux.0. Näiden säätöjen lisäksi löytyi Villen sivuilta pointtereita toisiin sivuihin, joissa kehoitettiin määrittelemään hwaddressin avulla kiinteä IP asiakaskoneelle. Pienoisen pohdinnan jälkeen päädyin tämän näköiseen dhcpd.conf tiedostoon. Nyt oli mielestäni kaikki oleellinen jo kasassa, joten oli aika alkaa tutkimaan wakeonlan-toiminnallisuutta.
Noudatin Villen neuvoa googlettamisesta ja hyppysiini tarttui wakeonlan-0.41-0.fdr.1.noarch.rpm niminen paketti.
Siispä asensin ko. paketin komennolla:
rpm -ivh wakeonlan-0.41-0.fdr.1.noarch.rpm
ja testasin asennuksen toimivuuden antamalla komennon "wakeonlan", joka palautti komennon helpin - asennus siis onnistui.
Tämän jälkeen kirjasin ylös "serveri"-koneen(nro 16) MAC-osoitteen(hwaddr), joka oli 00:0D:56:2B:CC:2D . Seuraavaksi toistin tempun "asiakas"-koneella boottaamalla sen omalla siirtokovalevylläni ylös - asiakas koneen (nro 15) MAC-osoite oli muotoa 00:0D:56:2B:D2:9A . Lisäksi tarkistin, että asiakaskoneen BIOS-asetuksissa oli kohta
"REMOTE WAKE UP" säädetty asetukseen "On w/ Boot to NIC"
sekä
"Integrated Devices (LegacySelect Options) --> Network Interface Controller Parametrin arvo oli "On w/ PXE".
Tämän jälkeen siirsin siirtokovalevyni takaisin "serveri"-koneeseeni, kytkin serveri-koneen ja asiakas-koneen toisiinsa ristiinkytketyllä verkkokaapelilla ja aloin kokeilemaan miten wakeonlan toimii. Hetken aikaa kestäneen kokeilun jälkeen totesin, että homma toimii hienosti.
Asiakaskoneeni lähti käynnistymään, kun annoin serverikoneella komennon:
# wakeonlan -i 10.0.0.255 00:0D:562B:D2:9A
Tästä lokista näkyy miten asiakaskone alkaa hakemaan IP:tä itselleen:
Nov 9 17:48:07 localhost dhcpd: dhcpd startup succeeded Nov 9 17:48:28 localhost kernel: e1000: eth0: e1000_watchdog_task: NIC Link is Down Nov 9 17:48:31 localhost kernel: e1000: eth0: e1000_watchdog_task: NIC Link is Up 1000 Mbps Full Duplex Nov 9 17:48:33 localhost dhcpd: DHCPDISCOVER from 00:0d:56:2b:d2:9a via eth0 Nov 9 17:48:33 localhost dhcpd: DHCPOFFER on 10.0.0.103 to 00:0d:56:2b:d2:9a via eth0 Nov 9 17:48:37 localhost dhcpd: DHCPREQUEST for 10.0.0.103 (10.0.0.2) from 00:0d:56:2b:d2:9a via eth0 Nov 9 17:48:37 localhost dhcpd: DHCPACK on 10.0.0.103 to 00:0d:56:2b:d2:9a via eth0 Nov 9 15:48:37 localhost in.tftpd[3525]: tftp: client does not accept options
Ainoa murheenkryyni hommassa oli se, että asiakas-koneen biossista johtuvista syistä bootti halttasi ja jäi odottamaan joko F1-näppäimen painallusta - jolloin jatkettaisiin boottia - tai F2-näppäimen painallusta, jolloin siirrytään koneen BIOS-määrityksiä tutkailemaan...
Tästä pienoisesta kauneusvirheestä huolimatta koko muu boottijärjestely toimi kuten pitikin, eli wakeonlan-paketilla kone käynnistyi ja F1-näppäimen painalluksen jälkeen alkoi asentelemaan onnellisesti Linuxia käyttäen tekemääni kickst.cfg tiedostoa ja hakien tavarat suoraan rakentamaltani http-palvelimelta. Asennus tosin kaatui siinä vaiheessa kun se alkoi käsittelemään laitteen kovalevyä, sillä olin tarkoituksella jättänyt kickst.cfg tiedostoon kohdekovalevyksi hda:n enkä hdc:tä, sillä koneissa näytti olevan jo w2k asennettuna, enkä halunnut turhaan sotkea koneita.
Kolmosharjoitus oli näin kokonaisuudessaan suoritettu onnistuneesti ;)
Harjoituksesta ei jäänyt oikeastaan mitään hampaankoloon/ihmeteltävää, sillä kaikki toimi odotetusti. Suurin osa ajasta harjoituksessa meni siihen, että kävi läpi materiaalia ja koetti järjestellä asioita loogiseen järjestykseen omassa päässään, jotta tulee kaikki oleellinen varmasti tehtyä...
Bonustehtävänä oli vastaavan järjestelmän rakentaminen Ubuntulle, sillä näköjään myös Ubuntu tukee kickstart-asennuksia. Täältä löytyy lisäinfoa Ubuntu kickstart asennuksesta.
Copyright (c) 2005 Mika Karjalainen. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.