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)
- 1081 megtekintés
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
- A hozzászóláshoz be kell jelentkezni
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!"
- A hozzászóláshoz be kell jelentkezni
Akkor szerintem egy systemd unit, ami az elején lerendezi ezt, utána jöhet minden más. Az miért barmolás, ha saját scripttel épp azt csinálod, amire szükséged van?
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni