Amikor reggel beülsz az irodába, és azzal kell kezdened a napot, hogy egymás után tíz laptopot konfigurálsz kézzel, az nem IT-menedzsment, hanem büntetés. Én is voltam ebben a cipőben, ezért döntöttem úgy, hogy belevágok a "Hardver-as-Code: Így automatizáld a teljes irodai IT-parkod telepítését PXE-boot és egyedi Python-szkriptek segítségével, a nulláról indulva" módszerbe. Azóta a telepítés nem egy fél napos meló, hanem egy gombnyomásnyi folyamat, ami felszabadítja az időmet az igazi problémamegoldásra.
Régen az volt a módi, hogy elővettünk egy pendrive-ot, nyomkodtuk az F12-t, és végigkattintgattuk a Windows vagy Linux telepítőjét. Ez nemcsak unalmas, de rengeteg hibalehetőséget is rejt. Az emberi tényező a legnagyobb ellenségünk: elfelejtett szoftverek, rossz driververziók, vagy egy félrenyomott beállítás miatt később az egész rendszer instabillá válhat.
Amikor kódból építed a gépet, az eredmény minden egyes alkalommal pontosan ugyanaz lesz. A kiszámíthatóság az IT-ban aranyat ér. Ha a gépparkod kódként kezelhető, akkor a verziókövetés és az automatikus frissítés nem egy elérhetetlen álom, hanem a hétköznapjaid része.
A PXE, azaz a Preboot Execution Environment a varázsszó, amivel a gépek a hálózaton keresztül bootolnak, operációs rendszer nélkül. A lényeg, hogy a gép a BIOS-ban vagy az UEFI-ben be van állítva úgy, hogy a helyi hálózaton keressen egy szervert, ami megmondja neki, mit csináljon.
Ehhez szükség van néhány dologra a háttérben:
Ez az infrastruktúra teszi lehetővé, hogy az újonnan vásárolt gépet csak bedugod a hálózatba, bekapcsolod, és az máris elkezdi behúzni a saját beállításait. Nincs szükség külső adathordozókra, csak egy kábelre.
A PXE csak a keretet adja, a valódi okosság a Python szkriptekben rejlik. Miután a gép felállt egy minimalista környezetben, egy Python vezérlőprogram veszi át az irányítást. Ez a szkript végzi el azokat a feladatokat, amiket eddig kézzel csináltál.
A szkript a következőket teszi automatikusan:
Azért választottam a Pythont, mert a könyvtárai kiválóan kezelik a JSON konfigurációs fájlokat és a hálózati kéréseket. Egy ilyen szkript pár száz sor alatt képes összefogni olyan komplex feladatokat, amikhez más nyelven külön eszközök egész arzenáljára lenne szükség.
Ne akarj mindent egyszerre megoldani. A legjobb, ha egy tesztgépen kezded, ami nem éles eszköz.
Amikor már látod, hogy a szkripted magától konfigurál egy gépnevet és beállítja a hálózati elérést, tudni fogod, hogy nyert ügyed van. A folyamat legnehezebb része az első lépés, amikor a hálózati bootolást kell összehangolni a szerveroldali beállításokkal. Ha ez megvan, a többi már csak építőkocka-játék.
Sokan félnek attól, hogy mi történik, ha egy hiba csúszik a kódba. A Hardver-as-Code egyik nagy előnye a verziókövetés. Ha valamit elrontottál a szkriptben, egyszerűen visszatérsz egy korábbi, jól működő verzióra a Git segítségével.
A biztonság terén a legfontosabb a hozzáférések korlátozása. A szerver, ami a PXE környezetet futtatja, ne legyen nyitva az internet felé. Használj dedikált VLAN-t az irodai eszközök számára, hogy a telepítési folyamat ne zavarja a többi hálózati forgalmat, és ne is legyen hozzáférhető illetéktelenek számára.
Ez a módszer nemcsak időt spórol, hanem egyfajta nyugalmat is ad. Tudod, hogy minden gép, ami kikerül az asztalokra, ugyanazt a magas szintű beállítást kapja meg. Nincs többé találgatás, nincs többé kézi konfigurációs hiba. Csak a kód, a hálózat és egy csésze kávé, amíg a gépek elvégzik a piszkos munkát helyetted.