Größe: 8633
Kommentar:
|
Größe: 8558
Kommentar: V2.8.3 released
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 8: | Zeile 8: |
* FAI 2.8 ist released. | * FAI 2.8.3 ist released. |
Zeile 10: | Zeile 10: |
* FAI benutzt jetzt selbst debconf für die wichtigsten Einstellungen. |
FAI ( Fully Automatic Installation )
FAI ist eine Sammlung von ["Shell"] und ["cfengine"]-Scripten, die es zusammen mit den ["Debian"]-Tools ["apt"]-get und debootstrap ermöglichen, eine komplette Installation und Konfiguration eines ["Debian"]-Systems automatisiert vorzunehmen. Mit FAI soll es möglich sein, völlig unbeaufsichtigt ein System oder eine ganze ["/Infrastruktur"] zu installieren.
Im Moment unterstützt FAI ["Debian"] I386/IA64/SPARC/PowerPC und Solaris.
Neuigkeiten
- FAI 2.8.3 ist released.
- Live Updates werden unterstützt.
- fai-guide stark erweitert.
- Unterstützung von postinst scripten für fcopy.
- Neue task prepareapt.
- Beta Versionen der "fai auf CD" zum Download bereitgestellt.
- preseeding von paketen mittels debconf.
- fai-mirror erstellt einen angepassten Mirror für eine ausgewählte FAI Installation.
Aber es gilt wie im Manual auch schön beschrieben wird: Plane Deine Installation (["/Infrastruktur"]) richtig und mit FAI kannst Du diesen Plan einfach installieren. Und genau dieser Plan ist nicht einfach zu erstellen. Viele Entscheidungen müssen getroffen werden.
- ["NIS"], ["LDAP"] oder Passwd?
- Wie soll das Netzwerk strukturiert sein?
- ["DHCP"] oder Feste IPs
- Wo sollen die Daten der User hin?
- Was wird wie gesichert (Backup)?
- Was wird an Sicherheit wo gebraucht? Was kann man an Unsicherheit wo verantworten?
- ....
Allerdings müssen diese Entscheidungen auch in anderen Netzen gefällt werden. Doch oft sind die einfach gewachsen. Mit FAI könnte man so ein Netz neu gestalten.
Homepage: http://www.informatik.Uni-Koeln.DE/fai/
Infos:
Lizenz: ["GPL"]
Tipps & Tricks
["Perl"], ["cfengine"] oder ["sh"] was ist am besten für welche Aufgabe verwendbar?
- ["cfengine"] wenn das Paket ein gute Konfigurationsdateien mitbringt und nur kleine Änderungen benötigt werden.
- ["/fcopy"] wenn man eine eigene Konfig Datei hat und diese als Grundlage nehmen will.
- ["sh"] wenn etwas abgefragt und System Tools verwendet werden sollen. z.B discover zur Hardware-Erkennung.
- ["Perl"] Ich denke für größere Sachen besser als sh geeignet.
- ["Expect"] Für interaktive Installationsskripte, zum Beispiel das von vmware3
Andere z.B. ["Python"]: Scheint zu funktionieren. (Habe aber nur ein einfaches print gestestet
)
F: Wie entfernt man die schöne bunte FAI Meldung vom Install Klienten?
A: Man erzeugt in der nfsroot das file .nocolorlogo. Meist einfach touch /usr/lib/fai/nfsroot/.nocolorlogo
Mini-Howto
["/FAI einfrieren"]
Hilfsprogramme
make-fai-bootfloppy
Erstellt eine Floppy/CD zum booten wenn man nicht über Netzwerk (["PXE"]) booten kann/will.
Beispiele:
- Einfach eine Floppy falls man nicht vom Netz booten kann:
make-fai-bootfloppy FAI_FLAGS="sshd,createvt" FAI_ACTION="install"
- Feste IP und festen Namen vergeben (DHCP muß dann nicht benutzt werden).
make-fai-bootfloppy -d f "ip=10.0.2.111:10.0.2.5:10.0.2.1:255.255.254.0:demohost:eth0:off" FAI_FLAGS="verbose,createvt" FAI_ACTION="install"
(Das ip= kommt mir etwas komisch vor, scheint irgendwie ein Fehler in make-fai-bootfloppy zu sein?)
- Feste IP und festen Namen auf die Floppy schreiben aber diese Infos aus dem Netz holen.
make-fai-bootfloppy -s demohost -d f FAI_FLAGS="verbose,createvt" FAI_ACTION="install"
- Wenns eine CD sein soll.
make-fai-bootfloppy -i /tmp/fai_iso.img -f /tmp/floppy.img -d f FAI_ACTION="install"
cdrecord /tmp/fai_iso.img -dev=2,5,0
man make-fai-bootfloppy gibt weitere Tips
Als schön empfinde ich das es unabhängig vom ["DHCP"] Server und damit der MAC Adresse der Netzwerkkarte sein kann. Speziell beim Testen mit nur einem aber in der Funktion wechselnden Klient macht das Sinn.
fai-chboot
Erzeugt ein PXE Konfigurations-File für FAI. Damit kann man dann den Klienten per Netzwerk booten.
Klassen
siehe auch bei installiertem fai: zcat /usr/doc/fai/classes_description.txt.gz
/BasisClassen (DefaultKlassen)
Erklärung der Kürzel in den Tabellen für die Klassen: ------------------------- C = /fai/class/ V = used for *.var in /fai/class D = /fai/disk_config/ P = /fai/package_config/ S = /fai/scripts/ F = /fai/files/ (used by fcopy) A = auto class (defined by a script) H = /fai/hooks
Actions
sysinfo : Hardware Information ausgeben und auf den Log Server schreiben.
install : Installieren des Targets.
softupdate : Wird auf dem Target aufgerufen. "fai -v softupdate"
Jede Action besteht aus mehreren Tasks. Es ist möglich, eigene Tasks und auch weitere Actions zu definieren.
Zusätzlich kann jeder Task klassenbasiert durch sogenannte Hooks modifiziert, übersprungen oder ersetzt werden. Damit läßt sich in einer DISKLESS-Klasse die Festplattenpartitionierung überspringen, während bei Systemen mit SUSE, REDHAT oder WINDOZE-Klassen das Installieren des Debian-Basis-Systems übersprungen wird, stattdessen wird dann "das andere OS" aus einem Tar-Archiv oder als Festplattendump mit dd installiert. Read The Fine FAI Guide
Flags
verbose : Mehr Meldungen / debugging
sshd : ["ssh"] daemon starten. Damit kann man sich während der Installation mit ["ssh"] einloggen.
syslogd :
createvt : Zusätzliche Terminals auf F2,F3 öffnen während der Installation
reboot : Neu booten nach der Installation.
debug :
FAI Parameter
Sind Variablen die gesetzt werden können. Defaultwerte werden meist aus den Werten in /etc/fai/fai.conf und make-fai-nfsroot.conf gesetzt.
Einige müssen rechtzeitig, also schon beim booten, richtig gesetzt sein. Jedoch kann man sie an vielen Stellen setzen. Das ist meistens von der Anwendung abhängig also Geschmackssache.
- Auf der Boot-Diskette. setzen z.B. mit make-fai-bootfloppy
Im /boot/fai/pxelinux.cfg/<file> setzen z.B. mit fai-chboot
- Einige im ["DHCP"] oder bootp Server.
- Einge in der Datei LAST.var im Verzeichnis fai/class
- ....?
Hier einige Variablen:
FAI_LOCATION=<Servername>:/usr/local/share/fai
- FAI_ACTION="install" (sysinfo)
- FAI_FLAGS="verbose,createvt" (debug,reboot)
HOST=<hostname> / Setzen des Hostnamens z.B. als Kernelparameter ab V2.8
- FAI=/fai
- nfsroot=/usr/lib/fai/nfsroot
(Klein sind Kernel Variablen groß sind FAI Variablen)
Hooks
z.B. Man möchte bestimmte Aktionen von FAI nicht ausführen lassen.
z.b. kein chboot weil man von Diskette gebootet hat. Einfach fai/hooks/chboot.DEFAULT mit diesem Inhalt anlegen
SCRIPTNAME=`basename $0` skiptask=`echo $SCRIPTNAME | sed "s/\..*$//"` skiptask $skiptask
Quelle: fai mailingliste.
FAI Kernels
Es gibt verschiedene ["Kernel"] unter FAI
- Natürlich den Kernel mit dem der Install Server läuft.
Der Kernel der für die Installation auf dem Zielsystem benutzt wird. (in fai.conf --> nfsroot) KERNELPACKAGE=/usr/lib/fai/kernel/kernel-image-2.4.24-fai_2_i386.deb
Sehr schöne Anleitung unter: /usr/share/doc/fai-kernels/README
- Der Kernel der später auf dem Zielsystem läuft. Wird z.B. in DEFAULT.var festgelegt
# packages in /fai/files/packages/ that are installed to the new system # used in scripts/DEFAULT/S01. This directory should be a simple repository. # you can also include your specific kernel-image package kernelversion=2.4.20 # for the packages kernel-doc and kernel-source addpackages="kernel-image-2.4.20-2-386"
ToDo: Erklären wie die Kernel von fai ausgewählt werden. Erklären wie sie erzeugt werden und wie man am besten startet.
Probleme finden
setze in:
/usr/lib/fai/nfsroot/etc/init.d/rcS set -xv # for full debugging
oder in Unterprogrammen z.B.:
/usr/lib/fai/nfsroot/usr/lib/fai/fai-savelog #! /bin/bash -x
setze: FAI_FLAGS=verbose,createvt zum Beispiel in der ["PXE"] oder dhcp config Datei.
Themen rund um FAI
http://www.debian.org/doc/manuals/repository-howto/repository-howto.html
["dpkg/LokaleDebDateien"]
---