Beim Durchführen mehrerer Installationen eines Betriebssystems auf ähnlicher Hardware ist es nützlich, eine Massenbereitstellung des Betriebssystems gründlich vorzubereiten und die erforderliche Zeit für die tatsächliche Bereitstellung zu minimieren. In diesem Kapitel wird dieser Vorgang beschrieben. Ziel ist es, den Computer einfach anzuschließen, ihn mit einem Netzwerk zu verbinden, einen Netzwerk-Boot zu starten und zu warten, bis er herunterfährt.
Die folgenden Aktionen müssen ausgeführt werden, um diese Aufgabe zu erfüllen:
Ein dedizierter Computer ist erforderlich, der so eingerichtet ist, dass er PXE-Boot sowie einen FTP- oder Webserver für die Bereitstellung eines Preload-Image bietet. Der Computer sollte über genügend Arbeitsspeicher verfügen, um alle erforderlichen Installationsdaten bereitzuhalten. Für eine Standardinstallation benötigen Sie mindestens 4 GB Arbeitsspeicher. Alle erforderlichen Aufgaben können mit SUSE Linux Enterprise Server ausgeführt werden. Weitere Informationen finden Sie unter Abschnitt 19.2.1, „Einrichten eines Boot- und Installationsservers“.
Die tatsächliche Installation erfolgt durch das Kopieren eines RAW-Image des Betriebssystems auf eine neue Festplatte. Alle Funktionen und Einstellungen müssen sorgfältig vorbereitet und geprüft werden. Für die Bereitstellung eines solchen Image kann KIWI verwendet werden (verfügbar im SDK des SUSE Linux Enterprise-Betriebssystems). Weitere Informationen über die Image-Erstellung mit KIWI erhalten Sie in Kapitel 14, KIWI. Weitere Details über die Anforderungen des Preload-Image finden Sie in Abschnitt 19.2.2, „Erstellen eines Preload-Image“.
Für diese Aufgabe sind einige Linux-Kenntnisse erforderlich. Eine Beschreibung anhand einer Beispielinstallation finden Sie unter Abschnitt 19.2.3, „Erstellen eines ersten Systems zur Implementierung eines Preload-Image“.
PXE-Boot muss angewiesen werden, das Installationssystem zu starten, das wiederum das Preload-Image vom Server übernimmt und es auf die Festplatte kopiert.
Es müssen vier Schritte ausgeführt werden, um diese Aufgabe nach der Installation von SUSE Linux Enterprise Server ausführen zu können:
Richten Sie die Installationsquelle ein wie in Abschnitt 11.2, „Einrichten des Servers, auf dem sich die Installationsquellen befinden“ beschrieben. Wählen Sie einen HTTP- oder FTP-Netzwerkserver.
Richten Sie einen TFTP-Server so ein, dass er ein Boot-Image enthält (dieses Image wird in einem späteren Schritt erstellt). Die Konfiguration eines solchen Servers wird in Abschnitt 11.3.2, „Einrichten eines TFTP-Servers“ beschrieben.
Richten Sie einen DHCP-Server ein, um allen Computern IP-Adressen zuzuweisen und dem Zielsystem den Speicherort des TFTP-Servers bekannt zu geben. Die Konfiguration eines solchen Servers wird in Abschnitt 11.3.1, „Einrichten eines DHCP-Servers“ beschrieben.
Bereiten Sie den PXE-Boot des Installationsservers vor. Dies wird ausführlich in Abschnitt 11.3.3, „Verwenden von PXE Boot“ beschrieben.
Beachten Sie, dass es für den eigentlichen Installationsvorgang sehr vorteilhaft ist, wenn Sie diesem Computer genügend Arbeitsspeicher zur Verfügung stellen, in dem das Preload-Image gespeichert werden kann. Durch Verwendung von Gigabit-Ethernet wird der Bereitstellungsvorgang im Vergleich zu langsameren Netzwerken erheblich beschleunigt.
Das Verfahren der Image-Erstellung mit KIWI wird in Abschnitt 14.4.2, „Erstellen eines Image“ beschrieben. Jedoch müssen bei der Image-Erstellung für Massenbereitstellungen mehrere Punkte berücksichtigt werden:
Ein typisches Preload-Image verwendet den folgenden Typ:
<type primary="true" filesystem="ext3" boot="oemboot/suse-SLES11">vmx</type>
Beim Einrichten eines Preload-Image wird der Image-Erstellungsvorgang mehrmals ausgeführt. Die erforderlichen Repositorys für die Image-Erstellung sollten auf dem lokalen Computer verfügbar sein.
Abhängig von der gewünschten Nutzung des Preloads sollten einige Mühen in die Konfiguration von Firstboot investiert werden. Weitere Details über Firstboot finden Sie in Kapitel 17, Installieren von benutzerdefinierten Vorinstallationen. Mit dieser Methode können Sie auch festlegen, dass der Benutzer beim ersten Boot des Systems anfängliche Konfigurationen angeben muss.
Viele zusätzliche Funktionen können im Image konfiguriert werden, z. B. das Hinzufügen von Aktualisierungs-Repositorys oder das Ausführen einer Aktualisierung beim ersten Booten. Jedoch können in diesem Dokument nicht alle Möglichkeiten beschrieben werden. Abhängig von den Anforderungen erfordert die Erstellung des Preload-Image eingehende Kenntnisse des Imaging-Systems KIWI sowie mehrerer anderer Techniken, die in SUSE Linux Enterprise Desktop verwendet werden.
Das eigentliche Image, das bereitgestellt werden soll, muss auf dem FTP- oder HTTP-Server verfügbar sein, den Sie auf dem Installationsserver bereitgestellt haben.
Für die Ausführung einer automatischen Bereitstellung muss ein erstes Linux-System auf dem Zielcomputer gestartet werden. Während einer typischen Installation werden der Kernel und das erste RAM-Dateisystem von einem Bootmedium gelesen und durch das BIOS gestartet. Die benötigte Funktionalität kann im RAM-Dateisystem bereitgestellt werden, das zusammen mit dem Kernel als erstes System dient.
Zu den Hauptfunktionen, die vom ersten System bereitgestellt werden müssen, gehören das Aktivieren des Zugriffs auf die Festplatte und das Herstellen der Netzwerkverbindung. Beide Funktionen hängen von der Hardware ab, auf der die Bereitstellung vorgenommen werden soll. Theoretisch ist es möglich, ein erstes System von Grund auf neu zu erstellen, zur Vereinfachung dieser Aufgabe ist es aber auch möglich, das anfängliche RAM-Dateisystem, das der Computer beim Booten verwendet, zu ändern.
Die folgende Vorgehensweise ist nur ein Beispiel dafür, wie das erforderliche erste RAM-Dateisystem erstellt werden kann.
Führen Sie eine Standardinstallation von SUSE Linux Enterprise Desktop auf dem Zielsystem durch.
Installieren Sie das Paket busybox auf dem System.
Erstellen Sie mit dem folgenden Kommando ein neues RAM-Dateisystem:
mkinitrd -f busybox -D eth0
Beachten Sie, dass eth0 das Ethernet-Gerät darstellt, an das Ihr Netzwerkkabel angeschlossen ist. Der Parameter -f busybox fügt dem RAM-Dateisystem das ausführbare Programm busybox hinzu, das mehrfach aufgerufen werden kann. Danach stehen in diesem System viele UNIX-Standardkommandos zur Verfügung.
Kopieren Sie das neue RAM-Dateisystem und den Kernel mit dem folgenden Kommando auf Ihren Boot-Server:
scp /boot/initrd /boot/vmlinuz pxe.example.com:
Ersetzen Sie pxe.example.com durch den Namen Ihres lokalen Boot-Servers oder der IP-Adresse.
Melden Sie sich bei Ihrem Boot-Server als root-Benutzer an und erstellen Sie ein Verzeichnis, in dem Sie das RAM-Dateisystem ändern können:
mkdir ~/bootimage
Ändern Sie Ihr Arbeitsverzeichnis mithilfe des Kommandos cd ~/bootimage in dieses Verzeichnis.
Entpacken Sie mithilfe des folgenden Kommandos das zuvor kopierte erste RAM-Dateisystem:
zcat ../initrd | cpio -i
Bearbeiten Sie die Datei run_all.sh.
Suchen Sie die folgende Zeile, löschen Sie sie und den Rest der Datei:
[ "$debug" ] && echo preping 21-nfs.sh
Fügen Sie die folgenden Zeilen an das Ende der Dateien run_all.sh:
[ "$debug" ] && echo preping 92-install.sh
[ "$debug" ] && echo running 92-install.sh
source boot/92-install.sh
[ "$modules" ] && load_modules
Erstellen Sie ein neues Skript mit dem Namen boot/92-install.sh und dem folgenden Inhalt:
#!/bin/bash
if [ "$(get_param rawimage)" ]; then
rawimage=$(get_param rawimage)
if [ "$(get_param rawdevice)" ]; then
rawdevice=$(get_param rawdevice)
echo "wget -O ${rawdevice} ${rawimage}"
wget -O ${rawdevice} ${rawimage}
sync
sleep 5
echo "DONE"
fi
fi
# /bin/bash
/bin/poweroff -f
Wenn Sie vor dem Abschalten des Computers eine Debug-Shell wünschen, entfernen Sie das Kommentarzeichen vor /bin/bash.
Machen Sie dieses Skript ausführbar mithilfe des Kommandos chmod 755 boot/92-install.sh.
Erstellen Sie ein neues anfängliches RAM-Dateisystem mit den folgenden Kommandos:
mkdir -p /srv/tftpboot find . | cpio --quiet -H newc -o | gzip -9 -n > \ /srv/tftpboot/initrd.boot
Kopieren Sie den Kernel in dieses Verzeichnis.
cp ../vmlinuz /srv/tftpboot/linux.boot
Das erste RAM-Dateisystem ist nun für zwei neue Kernel-Kommandozeilenparameter vorbereitet. Der Parameter rawimage=<URL> wird benutzt, um den Speicherort des Preload-Image zu identifizieren. Jede URL, die von wget verstanden wird, ist verwendbar. Der Parameter rawdevice=<device> wird verwendet, um das Block-Gerät für die Festplatte auf dem Zielcomputer zu identifizieren.
Die Konfiguration des Boot-Servers wird ausführlich in mehreren Kapiteln behandelt. Siehe dazu die Liste in Abschnitt 19.2.1, „Einrichten eines Boot- und Installationsservers“. Dieser Abschnitt enthält eine Prüfliste mit den Schritten, die zur Konfiguration des Systems erforderlich sind.
Richten Sie einen DHCP-Server ein. Das Subnetz, in dem die Computer installiert sind, benötigt die folgenden Zeilen:
filename "pxelinux.0"; next-server 192.168.1.115;
In diesem Beispiel ist 192.168.1.115 die IP-Adresse des PXE-Servers pxe.example.com.
Konfigurieren Sie einen PXE-Server wie in Abschnitt 11.3.3, „Verwenden von PXE Boot“ beschrieben. Fügen Sie beim Bearbeiten von /srv/tftpboot/pxelinux.cfg/default die folgenden Einträge hinzu:
default bootinstall label bootinstall kernel linux.boot append initrd=initrd.boot \ rawimage=ftp://192.168.1.115/preload/preloadimage.raw rawdevice=/dev/sda
Richten Sie einen FTP-Server ein und kopieren Sie Ihre vorbereiteten Preload-Images nach /srv/ftp/preload/preloadimage.raw.
Testen Sie Ihr Setup, indem Sie das Zielsystem mit dem PXE-Netzwerk-Boot starten. Damit wird das vorbereitete Preload-Image automatisch auf die Festplatte kopiert und der Computer zum Schluss abgeschaltet.