This is a mirror. For latest version of this document, see myy.helia.fi/~a0300187/linux/ubuntu.html

Extra: Ubuntu kickstart asennus

Harjoituksen tarkoituksena oli luoda toimiva kickstart-asennus Ubuntulle.

Sisällysluettelo

  1. Ajoitus
  2. Harjoitus
  3. Jälkikommentteja
  4. Nothing To-Do

Ajoitus

Tämä oli extratehtävä, jonka sain opettajalta 10.11.2005 pidetyn luennon aikana. Harjoitus valmistui 23.11.2005 monen turhauttavan ja ankaraa itseruoskintaa sisältäneen päivän jälkeen. Aikaa tehtävään kului siis kaiken kaikkiaan useita päiviä, sillä tehtävä osoittautui hankalammaksi kuin olisi uskonut.


Harjoitus

Koska minulla oli jo toimiva kickstart ympäristö Fedora Core 4:lle, oli tehtävän suorittamisessa lähinnä kyse ympäristön muokkaamisesta Ubuntulle sopivaksi. Aloitin työt hakemalla Ubuntun asennus-cd imagen:

# wget http://ie.releases.ubuntu.com/ubuntu-releases/5.10/ubuntu-5.10-install-i386.iso

Tämän jälkeen otin kyseisen imagen käyttööni mounttaamalla sen /mnt-hakemistoon:

# cd /
# mount -o loop ubuntu-5.10-install-i386.iso /mnt

Kun image oli mountattu, kopioin verkkobootissa tarvittavat tiedostot äsken mounttaamastani hakemistosta /tftpboot-hakemistoon. Nämä tiedostot löytyivät asennuscd:ltä hakemistosta /mnt/install/netboot/. Tässä oli erikoisuutena se, että saadakseni Ubuntun verkkoasennuksen toimimaan, piti koko netboot-hakemisto kopioida /tftpboot-hakemistoon alihakemistoineen kaikkineen. Pelkkien asennustiedostojen initrd.img, vmlinuz ja pxelinux.0 kopiointi ei riittänyt - joka on juuri se tapa millä alunperin koetin homman hoitaa.

BTW: yllämainitut tiedostot ovat Ubuntussa luonnollisesti nimeltään linux, initrd.gz ja pxelinux.0.... =)

Tämän jälkeen konfiguroin /tftpboot/pxelinux.cfg/default tiedoston Ubuntun haluamaan muotoon, eli lisäsin ks=http://10.0.0.2/ksub.cfg parametrin ensimmäisen labelin alle append-riville. Muutoksen jälkeen näytti default-tiedosto tältä.

Seuraavaksi oli vuorossa asennusmirrorin teko, joka hoitui seuraavasti:

# cd /var/www/html
# mkdir ubuntu
# cp -r /mnt/* /var/www/html/ubuntu

Sitten olikin vuorossa kickstart tiedoston rakentaminen Ubuntulle sopivaksi. Alkuun kokeilin luoda kickstart tiedoston Fedoran asennuksessa käyttämäni tiedoston pohjalta, mutta Ubuntun kickstart ei ymmärrä kaikkia parametreja mitä FC4 ymmärtää, joten viimeisimmän ja toimivan version Ubuntun kickstart tiedostosta rakensin Ubuntun omalla kickstart konfiguration työkalulla.

Tässä on malli toimivasta Ubuntun kickstart-tiedostosta.

Näiden vaiheiden jälkeen testasin automaattisen Ubuntu asennuksen kuten FC4 asennuksenkin:

# setenforce 0
# /etc/init.d/iptables stop
[tässä välissä vaihdoin serverin osoitteeksi kiinteän IP:n 10.0.0.2]
# /etc/init.d/dhcpd start
# /etc/init.d/httpd start
# wakeonlan -i 10.0.0.255 00:0d:56:2b:d2:9a

Ja kas kummaa, kohdekone pärähti käyntiin ja asennus alkoi pyöriä - eli homma toimi kuin se kuuluisa junan vessa...

Vinkki: Ubuntun mielenkiintoisena lisänominaisuutena automaattisissa asennuksissa on se, että kickstart automatiikkaa on mahdollista laajentaa tai kokonaan korvata ns. preseed-tekniikalla, joka on Debianin oma automaattiseen asennukseen tehty työkalu. Preseed on debconf-ohjelman käyttämä "vastaus"-tiedosto, joka näyttää olevan Ubuntun/Debianin ns. "natiivi" työkalu näissä hommissa...

Jälkikommentteja

Koko hommaan meni tajuttoman paljon aikaa, joka johtui siitä yksinkertaisesta syystä, että käytin aluksi /tftpboot-hakemiston rakentamisessa samaa mekaniikkaa kuin FC4 automaattisen asennuksen kanssa, eli kopioin ko. kansioon vain tietyt aikaisemmin mainitut tiedostot. Tästä johtuen ei Ubuntun kickstart toiminutkaan oikein, vaan antoi http-asennusta suoritettaessa ensin virheilmoituksen siitä, ettei löydä cdrom-mediaa ja tästä jatkettaessa virheen "no route to host", joka antoi ymmärtää, että vika olisi ollut koneiden verkkoyhteyksissä. Vieläkin mielenkiintoisempaa oli se, että jos samaisella kicstart tiedostolla teki asennuksen niin, että tavarat haettiin cdrom:lta, toimi automaattinen asennus oikein.

Harhaanjohtavien virheilmoitusten vuoksi oli ongelman oikean syyn löytäminen kiinni pelkästään omasta jääräpäisyydestä, sillä esim. googlettaminen ei tehnyt tässä tapauksessa yhtään autuaammaksi. Jos en olisi päättänyt alkaa rakentamaan koko systeemiä uudestaan puhtaalta pöydältä, olisi virhe jäänyt ainakin minulle ikuiseksi mysteeriksi. Onneksi periksiantamattomuus palkittiin tällä kertaa ;)

Nothing To-Do

Tämän veivaamisen jälkeen jäi kovin vähän selvitettävää, lähinnä häiritsemään jäi kickstart-tiedoston optioiden erilaisuudet, jotka varmaan nekin aikojen saatossa häviävät. Laitan tässä vielä yhteenvetona kaikki oleellisimmat konffitiedostot näytille: Kickstart file,default file ja dhcpd.conf joka on moneen kertaan hierottu ja sisältää ainoastaan oleelliset tavarat.