[sage] automatische netzwerkgestützte Grundinstallation von Gentoo - gibts das , laeuft das?

Andreas Jellinghaus aj at dungeon.inka.de
Wed Oct 1 23:28:11 CEST 2008


Hallo Thomas,

nicht wundern, das ich was eigenes gebaut hab, denn ich hatte ähnliche systeme 
zur auto installation schon als es noch kein fai gab. :)

die komplexität scheint mir übertrieben geschildert: 
ein simples script für einen rechner typ sind 50 zeilen.

das problem kommt IMO eher aus zwei richtungen:
 * ein generisches script schreiben ist viel mehr aufwand. ich hab das mit
   perl auf einem webserver erstellt, wo die pro rechner config war. das
   eigentliche script im isolinux war sehr kurz: netzwerk hoch, wget auf
   das finale script und dieses ausführen.
 * wenn man viele debian packete installiert haben will, beginnt der echte
   wahnsinn. teils muss man dateien vorkofigurieren um dialoge zu verhindern
   (bzw. das die postinst scripte abbrechen), teils mit debconf
   vorconfigurieren, teils erst A installieren, dann was configurieren
   (was A sonst überschreiben würde), dann B installieren etc.

hat fai eine datenbank, welches debian packet man wie repariert? sonst
kann es einem da wohl kaum das mühsamme try&fix&retry ersparen.

weiter machen diverse packete richtig viel ärger, wenn man die im chroot()
installieren will. debian hat leider die ansicht, was installiert wird,
muss auch gleich gestartet werden. zeit um zwischen den beiden schritten
was zu konfigurieren ist nicht vorgesehen.

wer eine simples system hat, tut IMO gut nur eine minimal installation zu
erzeugen, dann rebooten, und auf dem installierten system dann weitere
sachen (evtl. automatisch?) zu installieren. sprich platten, netz und 
hostname erst, aber packete und deren config erst nach einem reboot.

schwieriger wird es, wenn man server hat, die z.B. in ein hochverfügbares
system eingebunden sind. einen server halb installieren kann da viel ärger
machen, wenn der load-balancer denkt: hei, der server ist wieder da, dann
bekommt der auch last, aber datenbanken/webseiten/... noch mitten in der
installation sind. auch eine problematik, bei der fai nicht helfen kann,
oder?

ein blick auf die fai webseite:
 * base.tar.gz entpacken? du nutzt kein debootstrap?
 * passwort? geht hoffentlich auch ohne?
 * ditto grub menu?
 * kann man sachen wie "exim" gleich mal irgendwie loswerden,
   auf das die von anfang an nie installiert werden? will doch bei
   dreistelliger anzahl an servern, nicht überall einen mta laufen
   haben. nullmailer/ssmtp und co reichen mir meist.
 * mit chroot dpkg/apt hab ich schlechte erfahrung gemacht, zuviel murks
   packete, die in /proc rumpfuschen, seltsame tests haben etc.


zudem ist die wahl fai oder nicht fai IMO eine sekundäre.
erstmal sollte man sich entscheiden, wie man seine rechner administriert, und 
mit welcher software. wenn man z.B. sich für cfengine oder puppet 
entscheidet, dann stehen diese packete im vordergrund. die aufgabe der 
installation ist dann, den rechner soweit zu bekommen, das diese tools 
loslegen können. 

weiter fragen zu fai:
 * nfs, muss das sein? schön an der eigenen lösung (in der debian variante)
   fand ich, das es "nur" bootpd, tftpd und apache brauchte, kein nfs und co.
 * nur cfengine wird erwähnt. was ist mit puppet?
 * kann man cfengine auch ganz weglassen? ich fand das tool nie toll, auch
   nachdem ich es jahrelang nutzen durfte. (klar, sowas ist
   geschmackssache...)
 * cluster installieren ist ja recht simpel, wenn vieles gleichartig ist.
   wie siehts denn mit komplexen beispielen aus (z.B. 20 verschiedene 
   server typen oder sowas)? 

in einem muss ich thomas aber absolut recht geben: generische installationen
zu schreiben ist fürchtbar nervig. gerade cd installationen sind sehr 
ärgerlich. oder mich hat es stunden gekostet, um erst dem kernel bei
zubringen, beim booten nicht nach md devices zu suchen, damit ich vor
der installation alle platten nullen kann, dann formatieren, und dann
md anlegen kann. wenn der kernel noch alte halb erkannte sachen hat,
dann nervt das ungemein.

die richtige config für grub bei raid0 systemen, das jeder platte
kaputt gehen kann, und er noch bootet, ist auch nicht so trivial,
kann man auch viel falsch machen.

insgesamt möchte ich mal sagen: nutzt sein fertiges tool.
nicht weil man das, was das tool macht, nicht aus selbst machen
könnte. sondern weil viele details die man wissen muss schlecht
bis gar nicht dokumentiert sind, und man sich nur unnötig viel
arbeit macht, das alles selbst herauszufinden.

btw: thomas: hast du in fai eine möglichkeit, der der install
client eine erfolgreiche installation zurückmeldet? über welches
protokoll geht das? (oder was eigen entwickeltes?)

ich hatte mir einen 30-zeilen c server/client nach stevens geschrieben,
der mir sowas zurückmeldet, damit ich als ergebnis per perl script
die bootp config für den rechner wieder ändern konnte, sonst wäre
die installation in eine endlos schleife geraten. sowas selbst machen
ist echt unschön (lief nicht über den apache, weil ich den und seine
cgi nicht als root laufen lassen wollte).

beim durchschauen des guide fällt mir auf, das ich nicht jedem rechner
sagen will, welche config andere rechner haben. wer einen server hackt,
soll ja nicht im nfs genüsslich nachlesen können, wie alle anderen
konfiguriert sind. bei clustern voller identischer maschinen stellt sich
das problem natürlich nicht.

wer übrigens selbst auf die idee kommt, was eigenes zu schreiben: ein tipp
noch. ignoriert klibc/dietlibc und co. bei rechnern mit 512MB+ habe ich
keine probleme, initramfs mit bis zu 240 MB auf den rechner zu schieben.
sowas kann man sehr bequem mit debootstrap erzeugen, jede menge debugging
tools mit reinpacken. nur pxelinux ist meist nicht der schnelste im downloaden
des image, aber die 10s sind meist nicht das problem.

und wer eine lustige aufgabe such: hat schon mal jemand zwei fai server 
aufgesetzt, die sich gegenseitig neu installieren können? wäre mal eine 
spannende aufgabe für ein HA scenario :)

So, gute nacht.

Andreas



More information about the SAGE mailing list