A jumpstart a Solaris egy speciális sajátossága. Igazából egy extra netboot server. Létezik SPARC és X86 os platformon is. Alapvetően nem nagyon különbözik egy sima tftp megoldástól, de hála a Solaris szerkezetének a jumpstart révén teljes mértékben tudjuk automatizálni tudjuk vele, és scriptelni server oldalról a telepítést, illetve egyéb dolgokat.

Könyvtárstruktúra létrehozása a jumpstart számára

# mkdir /jumpstart
# mkdir /jumpstart/config
# mkdir /jumpstart/x86

Jumpstart image készítése az Install CD/DVD-ről

# cd /cdrom/Solaris_10/Tools server
# ./setup_install_server /jumpstart/x86

Most tehát rendelkezésünkre áll az a rendszer, amit hálózaton keresztül betölthetünk egy távoli gép számára. Most pedig másoljuk át a példa konfigurációkat a CD/DVD-ről a mi általunk létrehozott mappába

# cd /cdrom/Solaris_10/Misc/jumpstart_sample 
# cp check /jumpstart/config 

NFS Server beállítása

Szerkesszük meg először a /etc/dfs/dfstab file-t.

# vi /etc/dfs/dfstab

Indítsuk el az NFS serverünket.

# svcadm enable nfs/server
# svcs nfs/server
# share

Készítsük el a sysidcfg file-t

Lehetőségünk van beállításokat rendelni ahhoz a serverhez, ami eme jumpstart servert fogja használni a hálózati induláshoz. Bármely beállítást definiálhatjuk, amit egy Solaris rendszer esetében a sysidcfg file-ben megadhatunk. Íme egy példa:

# cat /jumpstart/config/sysidcfg

Készítsük el a profile file-t

Ez a file az, ami a telepítés alatti szükséges beállításokat, illetve szükséges aktivitásokat tartalmazza.

# cat /jumpstart/config/profile

Alapvetően erre a két file-ra van szükségünk. Viszont a jumpstart metódusa több részből áll. A lenti ábra azt mutatja, hogy milyen elő és utó feldolgozó scripteket adhatunk még meg. Én ebbe mélyebben most nem megyek bele.

boot_svr# cat /jumpstart/rules
      any -   -   any_machine  -
       ^  ^    ^      ^        ^
       |   |   |      |        |
       |   |   |      |         -------------- Finish script
       |   |   |       --------------- Profile
       |   |   -------------- Begin script
       |  ----------- Rule Value (specific system attribute)
        ----- Rule keyword (general system attributes)

Íme a mi esetünkben a rules file. Ez tartalmazza, hogy milyen rendszer esetében mely beállítások és scriptek kell hogy lefussanak. Mi most nem visszük túlzásba, egy szabályt adunk meg, ami mindenre érvényes lesz ami használni akarja, és egyszerűen a profile file-ban található dolgokat dolgoztatjuk fel vele.

# cat /jumpstart/config/rules

Ha minden rendbe van ilyen file-kat kell látnunk a config folderben.

Jumpstart config ellenörzése

Most pedig az átmásolt check script segítségével szintaktikai ellenőrzésnek vetjük alá a beállításainkat.

# cd /jumpstart/config
# ./check

TFTP beállítása

Rendszerünktől függően, vagy már engedélyezve van a tftp vagy nincs. Tehát bizonyosodjunk meg előtte róla.

Mint jól látszik nem elérhető még a serivce. Tehát először is nézzünk bele a /etc/inetd.conf file-ba.

Szedjük ki a kommentet előle.

# vi /etc/inetd.conf

Most importáljuk be SMF service-nek. Ezt automatikusan megtehetjük a inetconv paraccsal.

Ezek után a SMF service-nek is elérhetőnek kell lennie.

# svcs tftp/udp6

DHCP Service beállítása

Először is definiáljuk névvel a DHCP serverünk számára a kliensünket (ami majd csatlakozik a jumpstart serverünkhöz).

# vi /etc/inet/hosts 

Most pedig hozzuk létre a DHCP server konfigurációs állományait.

# dhcpconfig -D -r SUNWfiles -p /var/dhcp 

A -r kapcsolóval definiáljuk, hogy mi file-ba szeretnénk tárolni a DHCP tábláját a SUNWfiles pedig sima ascii file-kat hoz létre. Ezt a legkönnyebb debugolni ha szükséges. Ha akarunk használhatunk binárist is a SUNbinfiles megadásával. A bináris gyorsabb, de nehezebb debugolni ha szükséges.

Amennyiben valami baj lenne, és a DHCP server fenti parancsal nem aktiválódik (tipikus hiba hogy a gép neve nincs definiálva az /etc/host-ban), úgy a következő parancsal tudjuk semlegesíteni a félbemaradt DHCP konfigurációt.

# dhcpconfig -U

Ellenőriztük is le, hogy valóban fut-e a DHCP server

# svcs dhcp-server

Szimbólumok hozzáadása a DHCP konfigurációhoz

Most szükséges a DHCP konfigurációs táblájának a módosítása, amit a dhtadm paranccsal tehetünk meg. Néhány szükséges szimbólumot hozzá kell adnunk. A szimbólumok teljes listája megtelálható a /etc/dhcp/inittab file-ban.

# dhtadm -A -s SrootIP4 -d 'Vendor=SUNW.i86pc,2,IP,1,1'
# dhtadm -A -s SrootNM -d 'Vendor=SUNW.i86pc,3,ASCII,1,0'
# dhtadm -A -s SrootPTH -d 'Vendor=SUNW.i86pc,4,ASCII,1,0' 
# dhtadm -A -s SinstIP4 -d 'Vendor=SUNW.i86pc,10,IP,1,1' 
# dhtadm -A -s SinstNM -d 'Vendor=SUNW.i86pc,11,ASCII,1,0' 
# dhtadm -A -s SinstPTH -d 'Vendor=SUNW.i86pc,12,ASCII,1,0' 
# dhtadm -A -s SsysidCF -d 'Vendor=SUNW.i86pc,13,ASCII,1,0' 
# dhtadm -A -s SjumpsCF -d 'Vendor=SUNW.i86pc,14,ASCII,1,0' 

# dhtadm -P

Jumpstart kliens beállítása

# cd /jumpstart/x86/Solaris_10/Tools/
# ./add_install_client -d SUNW.i86pc i86pc
# ls -lah /tftpboot/
# mount -p |grep boot

Ezzel most létrehoztuk a tftp számára a megfelelő boot környezetet, és leellenőriztük mi is történt.

PXE boot engedélyezése

Az előzőleg létrehozott tftp boot image-t, ahogy írja is be kell még konfigurálni, és a PXE boot-ot bekapcsolni. Tudjuk a makró nevét, a boot serverünk IP-jét, illetve a boot file nevét. Adjuk tehát ezt meg a DHCP-nek is.

# dhtadm -A -m PXEClient:Arch:00000:UNDI:002001 -d ':BootFile="SUNW.i86pc":BootSrvA=10.192.24.34:'

Kliens létrehozása a DHCP serverben

Most pedig definiáljuk egy makrót, azaz egy névvel ellátott hosszú paraméter listát. Fontos, hogy a -m kapcsoló után a kliensünk MAC címét adjuk meg. Ez a datagram azonosítja egyértelműen a kliensünket.

# dhtadm -A -m 0100E0815F2BB5 -d ':SinstNM="jumpstartx86"':SinstNM="server1":SinstIP4=10.192.24.34:SinstPTH="/jumpstart/x86":SrootNM="jumpstartx86":SrootIP4=10.192.24.34:SrootPTH="/jumpstart/x86/Solaris_10/Tools/Boot":SjumpsCF="10.192.24.34:/jumpstart/config":SsysidCF="10.192.24.34:/jumpstart/config":'

Permanens cím hozzárendelése a klienshez

Definiáljuk először azt a subnet-et, amit DHCP-vel akarunk kiosztani.

# pntadm -C 10.192.24.0

Majd készítsünk erre a hálózatra egy bejegyzést és rendeljük hozzá a client1 gépünkhöz az elkészült macro-kat. Itt is fontos, hogy a -m és -i kapcsoló után a kliensünk MAC címét adjuk meg.

# pntadm -A 10.192.24.100 -f PERMANENT -i 0100E0815F2BB5 -m 0100E0815F2BB5 -s jumpstartx86 10.192.24.0

Grub Beállítása a kliensnek

A jumpstart server által egy kliens gép hálózatról lesz képes bootolni. Ehhez viszont a kliensnek szüksége legy egy grub boot loaderre.

# cat /tftpboot/boot/grub/menu.lst 

Hibaelhárítás

Ha a valami gond lenne, érdemes elindítani a dhcp servert debug módban. Ehhez le kell tiltanunk a service-t és elindítani kézzel a megfelelő verbose kapcsolókkal

# svcadm disable dhcp-server
# /usr/lib/inet/in.dhcpd -dv

Ha a fent lévő tipikus “No more IP addresses on x.x.x.x network (MAC ADDRESS)” hibaüzenetbe botlanánk akkor a kiírt MAC address valószínűleg nem található meg a DHCP definíciók között. Ilyenkor érdemes összenézni a hibaüzenetben található MAC address-t, és a dhcp configban találhatót.

Működés közben

Kliens oldalról:

Server oldalról:

Remélem egy alap bemutatónak megfelel mindenkinek ez a bemutató. Természetesen ennél sokkal mélyebben is el lehet merülni a dologban, és mindent automatizálni az installálásnál.