Zum Inhalt springenZur Seitennavigation springen: vorherige Seite [Zugriffstaste p]/nächste Seite [Zugriffstaste n]
Bezieht sich auf SUSE Linux Enterprise Server 11 SP4

23 Automatisierte Implementierung von Preload-Images

Mit KIWI können Sie Betriebssystem-Images erstellen. Dieses Kapitel beschreibt, wie ein System-Image auf einem leeren Client-Computer bereitgestellt wird. Dazu müssen Sie ein Preload-Image erstellen, das ein bootfähiges RAW-Image enthält. Diese Datei enthält zwei wichtige Teile: eine Partitionstabelle und das eigentliche Betriebssystem. Dieses RAW-Image wird auf die leere Festplatte geschrieben, und beim ersten Bootvorgang dehnt sich das Betriebssystem auf den verbleibenden Plattenspeicher aus.

Weitere Informationen zum Erstellen eines solchen Image finden Sie unter Abschnitt 17.4.2, „Erstellen eines Image“. Beim Aufbauen des ISO-Image finden Sie die RAW-Datei im Zielordner. Es gibt viele Möglichkeiten, ein RAW-Image auf einer Festplatte abzulegen.

  • Schließen Sie die Platte an einen Bereitstellungsserver an und kopieren Sie das Image auf das Raw-Gerät.

  • Bereitstellen des RAW-Image über einen HTTP- oder FTP-Server und Ablegen auf der Festplatte des Client-Computers.

  • Erstellen eines Netboot-Image zum Abrufen und Ablegen des Image auf der Platte; dies ist eine gute Methode zur Massenimplementierung.

  • Booten eines Rettungsdatenträgers und manuelle Speicherung vom Rettungs-Image aus.

Für einen schnellen Start empfiehlt es sich, eine der in Abschnitt 23.1, „Manuelles Implementieren des Systems vom Rettungs-Image“ beschriebenen Methoden zu verwenden.

23.1 Manuelles Implementieren des Systems vom Rettungs-Image

Implementierung mit generierter ISO-Datei von KIWI:
  1. Brennen Sie das ISO-Image, das Sie vom KIWI-Erstellungsprozess erhalten (siehe Abschnitt 17.4.2, „Erstellen eines Image“ auf CD/DVD).

  2. Booten Sie von diesem Medium aus auf dem Client-Computer.

  3. Wählen Sie die Festplatte für die Installation aus.

  4. Starten Sie den Client-Computer neu und booten Sie von der Festplatte.

Implementierung über Rettungssystem:
  1. Booten Sie den Client-Computer mit einem Rettungssystem. Solche Systeme stehen auf allen SUSE-Installations-CDs oder -DVDs zur Verfügung.

  2. Melden Sie sich als root-Benutzer an. Geben Sie kein Passwort ein.

  3. Konfigurieren Sie Ihr Netzwerk. Wenn in Ihrem Netzwerk DHCP verfügbar ist, ist dies lediglich das Kommando ifup-dhcp eth0. Wenn dies manuell durchgeführt werden muss, verwenden Sie das Kommando ip zur Konfigurierung Ihres Netzwerks. Die Ausgabe, mit der DHCP startet, teilt Ihnen auch die IP-Adresse des Computers mit.

  4. Überwachen Sie einen unbenutzten Port Ihres Netzwerks wie 1234 und legen Sie die eingehenden Daten mit dem folgenden Kommando auf der Platte ab:

    netcat -l -p 1234 > /dev/sda
  5. Senden Sie auf dem Imaging-Server das RAW-Image mit dem folgenden Kommando an den Client-Computer:

    netcat <IP of client> 1234 < $HOME/preload_image/<image_name>
  6. Entfernen Sie nach der Übertragung des Image das Rettungssystem aus Ihrem CD- oder DVD-Laufwerk und fahren Sie den Client-Computer herunter. Beim erneuten Booten sollte der Boot-Loader GRUB auf dem Client gestartet werden. Das Firstboot-System übernimmt dann.

23.2 Automatisierte Implementierung mit PXE-Boot

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:

Einrichten eines Boot- und Installationsservers

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 erledigt werden. Weitere Informationen finden Sie unter Abschnitt 23.2.1, „Einrichten eines Boot- und Installationsservers“.

Vorbereiten eines Preload-Images

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 Images 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 17, KIWI. Weitere Details über die Anforderungen des Preload-Image finden Sie in Abschnitt 23.2.2, „Erstellen eines Preload-Images“.

Erstellen eines ersten Systems für die Bereitstellung

Für diese Aufgabe sind einige Linux-Kenntnisse erforderlich. Eine Beschreibung anhand einer Beispielinstallation finden Sie unter Abschnitt 23.2.3, „Erstellen eines ersten Systems zur Implementierung eines Preload-Image“.

Konfigurieren des Bootservers für die automatische Bereitstellung

PXE-Boot muss angewiesen werden, das Installationssystem zu starten, das wiederum das Preload-Image vom Server übernimmt und es auf die Festplatte kopiert.

23.2.1 Einrichten eines Boot- und Installationsservers

Es müssen vier Schritte ausgeführt werden, um diese Aufgabe nach der Installation von SUSE Linux Enterprise Server ausführen zu können:

  1. Richten Sie die Installationsquelle ein wie in Abschnitt 14.2, „Einrichten des Servers, auf dem sich die Installationsquellen befinden“ beschrieben. Wählen Sie einen HTTP- oder FTP-Netzwerkserver.

  2. 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 14.3.2, „Einrichten eines TFTP-Servers“ beschrieben.

  3. 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 14.3.1, „Einrichten eines DHCP-Servers“ beschrieben.

  4. Bereiten Sie den PXE-Boot des Installationsservers vor. Dies wird ausführlich in Abschnitt 14.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.

23.2.2 Erstellen eines Preload-Images

Das Verfahren der Image-Erstellung mit KIWI wird in Abschnitt 17.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-Images 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 20, 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-Images eingehende Kenntnisse des Imaging-Systems KIWI sowie mehrerer anderer Techniken, die in SUSE Linux Enterprise Server 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.

23.2.3 Erstellen eines ersten Systems zur Implementierung eines Preload-Image

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.

  1. Führen Sie eine Standardinstallation von SUSE Linux Enterprise Server auf dem Zielsystem durch.

  2. Installieren Sie das Paket busybox auf dem System.

  3. 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.

  4. 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 die IP-Adresse.

  5. 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
  6. Ändern Sie Ihr Arbeitsverzeichnis mithilfe des Kommandos cd ~/bootimage in dieses Verzeichnis.

  7. Entpacken Sie mithilfe des folgenden Kommandos das zuvor kopierte erste RAM-Dateisystem:

    zcat ../initrd | cpio -i
  8. Bearbeiten Sie die Datei run_all.sh.

  9. Suchen Sie die folgende Zeile, löschen Sie sie und den Rest der Datei:

    [ "$debug" ] && echo preping 21-nfs.sh
  10. 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
  11. 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
  12. Wenn Sie vor dem Abschalten des Computers eine Debug-Shell wünschen, entfernen Sie das Kommentarzeichen vor /bin/bash.

  13. Machen Sie dieses Skript ausführbar mithilfe des Kommandos chmod 755 boot/92-install.sh.

  14. 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
  15. 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.

23.2.4 Konfiguration des Boot-Servers

Die Konfiguration des Boot-Servers wird ausführlich in mehreren Kapiteln behandelt. Siehe dazu die Liste in Abschnitt 23.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 14.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.

Diese Seite drucken