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.
“Solaris 10 – Jumpstart x86” bejegyzéshez egy hozzászólás