Újra előkerült az ESXi+PXE téma, most egy másik szemszögből. Az alap szituáció az volt, hogy az egyik szervert újra kellett telepíteni, és nem volt kedvem CD-t keresni a legfrissebb ESXi telepítő kiírásához;-). Ha már van úgyis PXE rendszerünk, és a 4.1-es ESXi-be bekerült valami PXE támogatás a telepítőbe, akkor gondoltam kipróbálom. Kezdésnek akkor egy összefoglaló, hogy mire lehet hálózati bootot használni ESXi esetén, mert könnyű elkeveredni:
- Futtatás: nem akarunk mondjuk lemezt rakni az ESXi gépekbe vagy nem akarjuk a helyi lemezeket tartalmát bántani, így hálózatról indítjuk el az ESXi-t. (Figyelem, ez nem azonos a SAN-ról bootolással, ott csak a lemez van távoli szerverben és annak a tartalmát érjük el blokkos eszköz szintjén hálózatról, de azon rajta vannak az ESXi partíciói. Itt pedig PXE és TFTP segítségével töltjük le az induláshoz szükséges fájlokat.)
- Állapotmentes: mivel az ESXi in-memory fájlrendszert használ (lásd Architecture of VMware ESXi vagy ESXi 4.1 felépítése és partíciói), ezért meg lehet azt csinálni, hogy hálózatról betöltjük a boothoz szükséges fájlokat és a becsomagolt fájlrendszert, majd ezek után kapunk egy teljesen friss, beállításokkal nem rendelkező ESXi-t. Erről már írtam korábban, ez működik már régóta a laborban nálunk a néhány mérésnél.
- Állapotot megtartó: mivel az ESXi-n alapvetően nagyon kevés beállítást kell elvégezni, és ezeket lehet távolról is, ezért meg lehet azt csinálni, hogy minden egyes újraindítás után egy friss ESXi indul a fenti megoldással, és utána mondjuk PowerCLI segítségével beállítunk rajta mindent. ESXi 3.5-höz készült ez a proof-of-concept megoldás (ami egy úgynevezett bábát [midwife] használ), 4.1 esetén ehhez csináltak egy virtual appliance-t (VMware Auto Deploy), ami végigvezeti a teljes procedúrát Perl scriptek segítésével. Az Auto Deployhoz kell a vCenter host profile funkciója, ez pedig csak az Enterprise Plus csomagban van, úgyhogy egyelőre nem tudtam kipróbálni:)
- Telepítés: lehetőség van arra, hogy csak a telepítőt indítjuk el hálózatról (mert pl. nincs CD olvasó / remote management kártya a szerverben vagy messze van a gép [az admin lustaságától függ, hogy ez a messze a másik szobát vagy másik várost jelent:]), de utána helyi lemezre telepítjük a szervert, és következő újraindításkor az már onnan fut.
- Interaktív telepítés: hálózatról indítjuk a telepítőt, de utána kézzel akarjuk végigkattintgatni. Ezt fogjuk mindjárt megnézni részletesebben.
- Automatikus telepítés (scripted): nem akarunk beavatkozni a telepítésbe. Ehhez egy kickstart fájlt (ks.cfg) kell írni, ami a telepítés során és utána elvégzendő lépéseket leírja (a linuxos kickstart megoldást szabta testre a VMware). A menete le van írva az ESXi leírásában, és rengeteg blogbejegyzést is találni hozzá, lásd később.
Interaktív telepítés
Az ESXi setup guide 4. fejezetének harmadik része (PXE Booting the ESXi Installer) elég részletesen leírja, hogy milyen fájlokat kell felmásolni a CD-ről a PXE szerverre, mit kell hozzáadni a PXE menühöz. Ha ezeket megcsináljuk, akkor szépen el is indul a telepítő, megadhatunk minden fontos adatot, viszont a telepítés megkezdésekor ez a hibaüzenet fogad: “Unable to find the system image to install”.
Ha belegondolunk, ez teljesen jogos is, hisz a boothoz szükséges fájlok között (menu.c32, mboot.c32, vmkboot.gz, vmkernel.gz, sys.vgz, cim.vgz, ienviron.vgz, install.vgz), amiket felraktunk a PXE szerverre és az telepítendő gép letölt TFTP segítségével, nincs közte az imagedd.bz2, amiben a lemez képfájl van, amit majd fel kell rakni a cél gépre.
Ha Alt+F1 után belépünk a konzolra (felhasználó: root, a jelszó üres), akkor a telepítő logjában is csak ennyit látni:
Hol lehet megadni, hogy hol keresse a telepítő maradék részét? A setup guide-ban csak annyi van, hogy: “In an interactive installation, omit the ks= option.”, de így nem megy. Ha megadnánk a ks kapcsolóban a kickstart konfigurációs fájlt, ott az install kulcsszóval meg lehet adni egy URL-t, ahonnan letöltheti a maradékot. De ha megadjuk a ks-t, akkor teljesen automatikus telepítést kell végezni, olyat nem lehet, hogy csak a válaszok egy részét automatizáljuk.
A megoldás ebben a blog bejegyzésben volt: PXE boot VMware ESXi 4.1 and Manual Install.
then rename the imagedd.bz file to VMware-VMvisor-big-260247-x86_64.dd.bz2
mv imagedd.bz2 VMware-VMvisor-big-260247-x86_64.dd.bz2
Create a folder structure that ESXi installer looks for the system file in
mkdir –p usr/lib/vmware/installer/
Move the file to the correct location
mv VMware-VMvisor-big-260247-x86_64.dd.bz2 usr/lib/vmware/installer/
The installer is looking for a tar tgz file named image.tgz, so lets create one.
tar cvzf image.tgz usr/
Now that we have the file in the correct format and folder structure lets add it to the pxe append command.
append vmware/esx4.1/vmkboot.gz --- vmware/esx4.1/vmkernel.gz --- vmware/esx4.1/sys.vgz --- vmware/esx4.1/cim.vgz --- vmware/esx4.1/ienviron.vgz --- vmware/esx4.1/install.vgz --- vmware/esx4.1/image.tgz
Így már ezt is letölti TFTP-vel, és megy a telepítő interaktív módban.
Automatikus telepítés
Ha már volt teszt rendszer az interaktív telepítőre, akkor csak egy lépés volt a scripted módszert is kipróbálni. Ez ment gond nélkül, sok részletes leírás is van hozzá.
Annyi pontosítás csak, hogy:
- Annyi kell pluszba, hogy egy web szerverre felrakjuk a ks.cfg fájlunkat, és megadjuk a PXE konfigurációban a ks boot opciót ennek az elérhetőségével.
- A web szerverre ezen kívül csak az az imagedd.bz2 és az imagedd.md5 fájlokat kell felrakni.
- Ha IIS-t használunk, akkor be kell még állítani az adott webhelyen a MIME típusokat, hogy a fenti fájlokat kiszolgálja. Általában *.* szokott lenni a javaslat a leírásokban, ennél egy fokkal igényesebb, ha csak a következőket adjuk meg:
- *.bz2 – application/bzip2
- *.md5 – text/plain
- *.cfg – text/plain
Így már ment szépen az automatikus telepítés:
Hasznos leírások:
- ESXi 4.1 – Scripted Installation Via PXE and Kickstart!: egy elég részletes leírás egy teljes demo rendszer összerakásához
- Troubleshooting ESXi 4.1 Scripted Install errors: tipikus hibák; hogyan lehet megnézni a log fájlokat (Alt + F1 átváltás a konzolra, és onnan a /var/log alatt lévők az érdekesek); innen derül ki, hogy a minimum lemez igény 5 GB scripted telepítés esetén (ami igazából 6 GB).
- Boot opciók: az ESXi setup guide 5. fejezete ír le néhányat, meg itt is van még pár: ESXi 4.0 vmkernel boot options.
- Custom kickstart of ESXi: hogyan lehet lecserélni a telepítő CD-n lévő alap ks.cfg fájlt (/etc/vmware/weasel/ks.cfg), és úgy csinálni egy saját ISO-t. Van egy minta log, hogy mit csinál a beépített ks.cfg.
- ESXi 4.1 Kickstart Install – WIP: itt egy elég hosszú saját ks.cfg van, amiben rengeteg telepítés utáni beállítás benne van (vSwitch hozzáadás, vMotion beállítás, stb.)
- Automating ESXi 4.1 Kickstart Tips & Tricks: hasznos tippek
Így már sikerült az összes lehetséges PXE telepítés/futtatás opciót végigpróbálni, remélhetőleg most egy ideig nem lesz gond ezzel;-)