Kickstart für FreeBSD 10

oli1301

Active Member
Hallo zusammen,
wir planen, das Unternehmen komplett auf FreeBSD umzustellen (ca 40 Rechner).
Damit die Umstellung flott von statten geht, haben wir ein Script welches aus 2 Dateien besteht - Installation und Configuration.
Zur Zeit funktioniert die Installation, indem man sich die 2 Dateien via scp auf die Clients zieht, was bei 40 Rechnern natürlich etwas aufwendig wäre.
Dachten zuerst NanoBSD wäre vielleicht das richtige für uns, funktioniert aber leider anders als gedacht.
Passieren soll letztendlich, dass die Datei "Installation" sich automatisch beim Booten ausführt und die Installation nur noch bestätigt werden muss (Y/n). Während/ Nach der Installation wird die "Configuration" nach /usr/local/bin kopiert. Nach der Installation und dem kopieren ein Reboot. Anschließend wird die "Configuration" dann noch per Hand ausgeführt.

Ich hoffe ich konnte das Vorhaben ausreichend schildern und hoffe ihr habt ein paar Vorschläge für uns zur Umsetzung.:)
 
Hi Oli1301,


ich hab das mittels PXE Bootserver und pc-sysinstall, bzw bsdinstall gelöst.
Das ganze ist am Ende eine "unattended" installation (ohne Eingriffe).

Du brauchst dazu einen DHCP Server und NFS export eines Installationsystems (FreeBSD minimal iso reicht).
Auf dem Installationssystem wird die rc.local genutzt um pc-sysinstall oder bsdinstall zustarten.

Ab 9 ist pc-sysinstall an Bord: /usr/share/examples/pc-sysinstall/
Ab 10 lohnt sich auch bsdinstall, weil hier die zfs installation implementiert ist.

BTW.: Bei FreeBSD sowie solaris heißt das ganze Jumpstart, nicht Kickstart :-)

http://cnsnap.cn.freebsd.org/doc/en_US.ISO8859-1/articles/pxe/

Grüße,
 
Zur Installation: bsdinstall unterstützt inzwischen Installations-Scripte. Das sind Konfigurationdateien, welche er beim Start einließt und dann automatisch abspult. Mit einem angepassten Installationsmedium kann man damit Dinge wie "Stick rein, vom Stick booten, System installiert sich" machen. Schaue mal in "man bsdinstall". Ein Beispiel liegt in /usr/src/usr.sbin/bsdinstall/scripts.

Zur Konfiguration: Das Installations-Script kann auch ein Post-Installation-Script aufrufen, was z.B. die Konfiguration ins System kopieren kann. Alternativ kann man ab FreeBSD 10.0 auch ein "firstboot" rc-Script nutzen, was nur beim ersten Start ausgeführt wird. Mehr dazu gibt es z.B. unter http://lists.freebsd.org/pipermail/freebsd-rc/2013-October/003372.html

Das Ganze kann man natürlich auch noch mit Netboot verbinden. Dann funktioniert es so, dass man einmalig vom Netz starten und das System sich automatisch installiert. Danach rebootet es, zieht vielleicht noch etwas wie einen Puppet-Client nach. Von da an kann man dann gewohnt weitermachen.
 
Hi,

ich helfe mal meinem Kollegen beim Fragen ein wenig:

Die Installation läuft schon hervorragend. Problem ist momentan noch, dass man zuerst von der FreeBSD-CD bootet, dann via via scp/fetch/usw. das Installationsscript zieht und es dann ausführt. Wir fänden es prima, den Schritt des Ziehens des Installationsscripts auszulassen und es direkt mit auf die Installations-CD zu brennen, so dass wir von der CD booten und dann einfach das Script starten. Dazu dachte ich an Nano-BSD. Gibt es vllt. eine einfachere Möglichekeit?

Viele Grüße

Morfio
 
Nunja du könntest doch einfach ein FreeBSD auf einen USB-Stick installieren. Dann kannst du auf den Stick noch dein Script und was du noch brauchst dazu packen und gut ist.
 
Oder einfach ein Image eines Rechner machen und dieses dann per LAN verteilen. Per DHCP kann man den Clients mitteilen, dass sie von einem TFTP-Server booten. Eine nette Software für die Images ist zum Beispiel g4u: http://www.feyrer.de/g4u/

Damit hätte jeder Rechner innerhalb kürzester Zeit (Stichwort Multicasting) ein Basissystem. Wenn dann der DHCP-Server so eingestellt ist, dass jeder Rechner über einen DNS-Namen erreichbar ist, könnt ihr bequem per SSH auf jeden Rechner kommen und müsst im Idealfall noch nicht mal dafür aufstehen ;)
 
Hi,

ich helfe mal meinem Kollegen beim Fragen ein wenig:

Die Installation läuft schon hervorragend. Problem ist momentan noch, dass man zuerst von der FreeBSD-CD bootet, dann via via scp/fetch/usw. das Installationsscript zieht und es dann ausführt. Wir fänden es prima, den Schritt des Ziehens des Installationsscripts auszulassen und es direkt mit auf die Installations-CD zu brennen, so dass wir von der CD booten und dann einfach das Script starten. Dazu dachte ich an Nano-BSD. Gibt es vllt. eine einfachere Möglichekeit?

Viele Grüße

Morfio

Was spricht gegen mfsBSD in dem Fall? USB-Images gibt es und das kannst im Nachgang auf dem Skript noch editieren und nimmst den zur Installation. Alternativ gibt es da auch noch das Skript zfsinstall, das ggf. auch verwendet werden kann.
 
Am einfachsten ist (wie diverse Leute hier vorgeschlagen haben) per PXE... wurde auf "Netboot" genannt. Es gibt aber ab dem PXE-Boot dann mehrere Möglichkeiten, das weiter zu spinnen. Man kann entweder ein Diskless-System erstellen, welches vom NFS dann eine Installation durchführt (unglaublich flexibel) oder einfach ein Installations-Image servieren und wie Yamagi es vorschlägt, sich während und nach der Installation einzuklinken.

PXE geht natürlich nur, wenn ein zentraler Server existiert, der DHCP servieren kann... also muss er im gleichen Netz stehen. Das ist allerdings auch oft ein Aufwand.
 
Wir haben jetzt das Ok von der Geschäftsleitung, im Client-Bereich auf FreeBSD zu wechseln.

Wir haben jetzt mal mit mfsbsd eine eigene CD zusammengestellt und zwei Scripte zur Installation und Konfiguration geschrieben bzw. angepasst. Die Tests sind sehr beeindruckend. Die gesamte Installation (also tatsächlich Installation, keine Image-hin-und-her-Schieberei) dauert genau zehn Minuten in einer VM, mit Anbindung an NFS, NIS, LibreOffice, Firefox, Chrome, usw. usf.

Wir werden jetzt noch PXE ausprobieren.
 
Ja, ich denke, das wird kein Problem sein. Die Firma ist da recht offen. Ich will's vorher nur abklären. Ansonsten würde ich das ein wenig abstrakter machen.
 
Guten Morgen,
danke schonmal für die ganzen Antworten.
Wie mein Kollege schon erwähnt hat, funktioniert das mit dem mfsBSD hervorragend.
Ich versuche mich zurzeit dadran unser fertiges mfsBSD über PXE-boot zu starten. Leider funktioniert das noch nicht ganz wie gewollt.

Ich habe 2 VMs erstellt. Die eine ist als Server eingerichtet mit den Diensten DHCP, TFTP und NFS. Die laufen auch alle. Orientiert habe ich mich dabei an dieser Anleitung:
http://stefankonarski.de/content/freebsd-9-pxe-boot-und-bsdinstall-installieren

Die andere VM ist nackt und hat nur Netzwerk-Boot aktiviert. Beim Start sieht soweit auch alles ganz gut aus. Die VM bekommt eine IP zugeteilt und zieht sich auch die bereitgestellten Dateien. Danach fangen die Probleme an.
Nachdem der BTX Loader gestartet wurde vergeht eine halbe Ewigkeit ca. 30-45 Minuten, dann erscheint das Bootmenü, und er fängt an zu starten. Bis er an den Teil mit NFS kommt, da meckert er "Trying to mount ada0" was ihm nicht gelingt. Da endet dann der Startvorgang.

Irgendwelche Tipps was wir übersehen?

Mit freundlichen Grüßen
 
Bei der mfsBSD Installation hat der diesen Eintrag automatisch drinne.
EDIT: Okay war so ein ähnlicher Eintrag. Jetzt klappts :-) da steht der Umstellung so gut wie nichts mehr im weg =)
 
Zuletzt bearbeitet:
Nochmal eine Frage zu mfsBSD.
Gibt es eine Möglichkeit die Customfiles im nachhinein noch zu ändern, oder muss man jedesmal eine neue ISO erstellen?
Wir haben letzte Woche, nachdem wir alle Dateien des ISOs für den PXEBOOT in einem Verzeichnis bereit gestellt haben, die Customfile verändert und wollten diese Veränderung dann testen. Leider mussten wir feststellen das er diese Änderung nicht übernommen hat. Wir vermuten, dass die Customfiles noch irgendwo anders mit eingebunden werden. Weiß einer ob oder wo man die Änderungen noch vornehmen muss?
Testweise haben wir ein neues mfsBSD mit geänderter Customfile erstellt und erneut alles ins Verzeichnis entpackt. Hat auf Anhieb geklappt. Allerdings ist das ziemlich nervig für jede kleine Änderung die einem einfällt eine neue ISO zu erstellen alles entpacken etc., etc..

LG
 
Um das mfsBSD für das PXE bereitzustellen, muss ich genau das machen. ISO mounten, Dateien in das vorgesehene Verzeichnis kopieren, die gepackte Datei entpacken und ebenfalls mounten und die Dateien herauskopieren.
Kanns mal probieren, aber glaube nicht, dass das was ändert.
Versuche momentan noch die Möglichkeit, einfach das ISO per PXE bereitzustellen, mithilfe des PXE Boot Loaders "gpxelinux". Dann würde das ganze mounten und herumschupsen von Dateien komplett wegfallen und man müsste nur das ISO neu bauen.
 
Zurück
Oben