Dinamikus(an választott) config bootoláskor, HW-től függően

Fórumok

Egy általánosan használható Ubuntu boot image-et próbálok készíteni egy clusterhez.
Az ötlet az lenne, hogy egy pendrive-on van a rendszer és az összes config és a boot folyamán egy hardware azonosítóból dől el, hogy az adott host-on melyik configokat tölti be. Mindezt lehetőleg úgy, hogy minimálisan hackeljem szét az Ubuntut, a kompatibilitását megőrizzem.

Első - de sajnos hibás - megoldási ötlet szerint:
- a változó configokat egy kulön kis FAT partícióra teszem (Windowsról offline matathatóság miatt - bár, ettől eltekinthetek)
- a host-függő configok (hostname, network és kb. minden ezektől függő service config) 1-1 külön mappába kerülnek, amit pl. a CPUID-ről nevezek el
- boot-kor a CPU ID alapján a megfelelő mappát bind mount-olom egy általános mappába és a /etc-ben minden releváns config file ide symlink-el

A probléma ezzel, hogy bizonyos configokra már a mountall (és a bind mount) előtt szükség lehet.

Kérdésem: milyen jobb, elegánsabb megoldást tudnátok erre ajánlani?

(PXE boot-nál szépen meg lehetne ezt csinálni, de nem szeretném egy boot szervertől függővé tenni a rendszert, inkább minden host kap egy pendrive-ot, de azok szeretném, ha egyformák, felcserélhetőek, pótolhatóak lennének)

Hozzászólások

Nekem már az nem teljesen világos, miért kell hardware-től függően eltérő konfig, pláne, még a boot idő alatt. Amúgy, ha az idő nem kritikus, talán lehetne úgy, hogy indul egy minimalista live, amelyik bármelyik hardware-en el tud indulni. Megnézi a hardware-t, majd ettől függően a boot menüben default-tá teszi a már ott sorakozó kernelek valamelyikét, feltéve, hogy a kernel és paraméterei is hw függők, valamint a megfelelő symlink a megfelelő /etc-re, majd automatikusan reboot. Itt persze kell megint egy rc.local script, amelyik visszaírja a boot sorrendet úgy, hogy a hardware detektáló linux induljon. Hátránya, hogy lassú a boot folyamat, mert kétszer kell boot-olni.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Rendszer/kernel/driver dolgokat nem akarok dinamikusan configolni (ilyen szempontból nagyjából azonosak a HW-k). Nekem a lényeg - ahogy a leírásban megemlítettem - leginkább a network, fix ip, hostname paraméterek-ről és a szolgáltatások ezektől függő config-járól lenne szó.
Azt még lehetne, hogy csak egy S runlevel indul el és onnantól saját script-el rendezek mindent, de ez is már eléggé "belebarmolás"

-------------------------------^v-----------------------------------
"Probléma esetén nyomják meg a piros gombot és nyugodjanak békében!"

Nem áll össze a fejemben, hogy jön össze a cluster és a pendrive-val szaladgálás. Vannak erre megoldások, pl. központi telepítés (úgyis egyszer rakod fel jó esetben), network boot, stb., meg alkalmazás szinten is csomó minden a puppettől kezdve a végtelenségig. Illetve attól tartok, hogy még ha van is egy kis piaci rés, akkor is csak hekkelősen sikerülhet, mert nem erre hegyezik ki a linuxokat.

--