...
 
Commits (2)
......@@ -439,13 +439,12 @@ citestyle=alphabetic
Dies soll die Rechner auf dem neuesten Stand halten und auch das
hinzufügen neuer Rechner vereinfachen.
\section{SUSE Studio}
Zum Zeitpunkt des Projektantrages war für die Imageerstellung die
Software SUSE Studio geplant.
Diese stellt ein graphisches Frontend für das Kommandozeileninterface
kiwi dar, welches für die Erstellung von images verwendet wird.
Leider mussten wir feststellen, das SUSE Studio nicht mehr verfügbar
ist und nun besagte images über kiwi in Kombination mit dem
OpenBuildService gebaut werden müssen.
SUSE Studio stellte ein graphisches Frontend für das
Kommandozeileninterface kiwi dar, welches für die Erstellung von
images verwendet wird.
Leider war SUSE Studio zum Projektzeitpunkt nicht mehr öffentlich
verfügbar, weshalb besagte images nun über kiwi in Kombination mit
dem OpenBuildService gebaut werden müssen.
\section{kiwi}
Kiwi ist der Name des Kommandozeilentools, welches hinter SUSE
Studio stand.
......@@ -464,7 +463,17 @@ citestyle=alphabetic
\subsubsection{description}
Dieser Abschnitt enthält Informationen über den Autor des
Paketes (Name, Kontakt), sowie weitere Informationen über das
Image.
Image.\\
In unserem Fall also:
\begin{Verbatim}[frame=single]
<description type="boot">
<author>Jannik Main</author>
<contact>jannik.main@gmail.com</contact>
<specification>
openSUSE Leap 15.0 PXE boot with salt-minion
</specification>
</description>
\end{Verbatim}
\subsubsection{preferences}
Hier wird kiwi konfiguriert. Optionen wie der eigentliche
Image-Typ, Firmwareart, Dateisystem oder zusätzliche Funktionen
......@@ -481,8 +490,55 @@ citestyle=alphabetic
Sprach-/Layout-/Zeiteinstellungen, um das System den
Preferenzen des Nutzers anzupassen.
\end{itemize}
\begin{Verbatim}[frame=single]
<preferences>
<type image="oem" boot="oemboot/suse-leap15.0" bootloader="grub2"
bootpartition="true" installpxe="true" bootprofile="default"
bootkernel="std" filesystem="ext4" firmware="efi"
kernelcmdline="splash"/>
<version>2.8.0</version>
<packagemanager>zypper</packagemanager>
<locale>en_US</locale>
<keytable>de</keytable>
<timezone>Europe/Berlin</timezone>
<rpm-excludedocs>true</rpm-excludedocs>
<rpm-check-signatures>false</rpm-check-signatures>
<bootsplash-theme>openSUSE</bootsplash-theme>
<bootloader-theme>openSUSE</bootloader-theme>
</preferences>
\end{Verbatim}
Besonders interessant sind hierbei die types-Attribute, deren
korrekte Konfiguration und Verständnis uns die meiste Zeit
gekostet haben. Deshalb sind diese noch einmal extra aufgeführt:
\subsubsection{perferences/type}
Die von uns derzeit verwendeten Parameter zielen auf ein
pxe-bootbares oem-image ab, welches den Kontent des Daten-images
auf die Festplatte kopiert.
\begin{itemize}
\item image: Dies definiert den Typ des images. Neben oem
kann hier beispielsweise auch iso eingetragen werden, um
eine iso-Datei zu erstellen (Was jedoch nicht mit den
restlichen Parametern kompatibel wäre).
\item boot, bootloader, bootpartition, bootkernel,
bootprofile: Hier wird die zu wählende Konfiguration
für den Bootvorgang bestimmt.
\item installpxe: Dieser essentiell wichtige Parameter teilt
kiwi mit, das wir ein oem-basiertes PXE-Image und kein
standart oem-Image haben möchten.
\item filesystem: Gibt das Dateisystem für das Datenimage
an.
\item firmware: Gibt an, ob ein BIOS/Legacy-bootbares oder
ein UEFI-bootbares Image erstellt wird.
\item kernelcmdline: Enthält Bootparameter für den Kernel.
\end{itemize}
Für weitere Informationen zu den verschiedenen, möglichen
Parametern, siehe\cite{suse:kiwi_schema} und
teilweise\cite{suse:kiwi}.
\subsubsection{user}
enthält zu erstellende Nutzer.
Enthält zu erstellende Nutzer.\\
An dieser Stelle haben wir den Root-Nutzer mit einem
Beispielpasswort eingefügt, welches, da es öffentlich sichtbar
ist, zwingend geändert werden sollte.
\subsubsection{repository}
Hier werden die Paketquellen, aus welchen der OpenBuildService
die zu installierenden Pakete beziehen soll, angegeben.
......@@ -639,17 +695,20 @@ citestyle=alphabetic
\section{Fazit zur Imageerstellung}
Der Werdegang der Image-Erstellung hat sich rückblickend leider als
kritisch herausgestellt. Problematisch war hier in erster Linie die
veraltete Dokumentation, welche keinen Hinweis auf neuere Versionen
und Verfahren enthielt.\\
Beispielsweise ist die ausführlichste Dokumentation\cite[suse:kiwi],
Dokumentation, welche den Hinweis auf neuere Versionen und Verfahren
nicht eindeutig plaziert hatte.\\
Beispielsweise ist die ausführlichste Dokumentation\cite{suse:kiwi},
auf der ein Großteil dieses Abschnittes basiert, zwar prinzipiell
richtig, die erklärten Mechanismen und verwendeten Pakete
funktionieren nur leider nach SLE 12 nicht mehr.\\
richtig, die verwendeten Pakete mit enthaltenen Templates und Teile
der erklärten Mechanismen existieren leider nach SLE 12 nicht mehr.
Konkret lag das Problem hier daran, das wir das image mit
image\text{=„pxe“} anstelle des empfohlenen image\text{=„oem“} und
installpxe\text{=}true in den preferences unter type bauen wollten.
Dies war höchst bedauerlich, da wir nun mehrere Monate erfolgloser
Versuche, anhand der hier erläuterten Mechanismen ein
funktionstüchtiges Image zusammenzustellen für einen Abschnitt
aufgewendet haben, der im Projektplan mittels SUSE Studio in wenigen
Stunden erledigt gewesen wäre.\\
aufgewendet haben, der im Projektplan für wenige Tage vorgesehen
war.\\
Über die korrekte Herangehensweise erfuhren wir erst nach langer
Kommunikation mit verschiedenen Community-Mitgliedern, wenige Tage
vor Ende der Projektfrist. Statt, wie lange vermutet ein Image vom
......@@ -669,6 +728,23 @@ citestyle=alphabetic
\href{https://build.opensuse.org/package/show/Virtualization:Appliances:Images/kiwi-image-pxe-ramdisk}{Ein
Template für die Erstellung eines PXE-Images mit RAMDisk}
\end{itemize}
\subsection{Versionshergang}
Die Idee war zu Beginn folgende: Zunächst wollten wir ein
einfaches, funktionstüchtiges iso-Image bauen, da sich dies
leichter testen ließe. Leider hat dies auch mit den
Live-Image-Vorlagen nicht funktioniert, da diese nicht
erfolgreich bauten.\\
Nach einigen erfolglosen Versuchen, ein funktionstüchtiges
iso-Image aufzusetzen, entschlossen wir uns aus Zeitgründen,
direkt mit dem PXE-Image fortzufahren. Hierbei experimentierten
wir mit sowohl mit image-type\text{=}pxe, als auch mit
image-type\text{oem}, bei zweiterem wurde ich hier leider lange
von der Fehlermeldung \textquotedblleft{}Unknown Image
Flavor\textquotedblright{} abgelenkt, welche sich aufgrund der
Parameterkonstellation ergaben.\\
Da uns leider kein funktionstüchtiges Template für ein pxe-image
wie in unserem Fall bekannt war,
taten wir uns hier schwer, diese richtig zu verwenden.
\chapter{PXE-Boot}
Für die Installation von openSUSE mit dem PXE-Server wird ein
PXE-Server gebraucht.
......@@ -717,7 +793,8 @@ citestyle=alphabetic
label install
openSUSE mit eigenem Image installieren
kernel preload/linux
append initrd=preload/pxeboot.initrd rawimage=ftp://preload/opensuse-leap-15.0-image.x86_64-2.8.0-Build80.1.raw rawdevice=/dev/sda vga=normal pxe=1
append initrd=preload/pxeboot.initrd
rawimage=ftp://preload/opensuse-leap-15.0-image.x86_64-2.8.0-Build80.1.raw rawdevice=/dev/sda vga=normal pxe=1
\end{Verbatim}
\section{UEFI}
Die Clients im Linux-Labor sind zwar schon etwas älter, aber bei der
......
......@@ -41,3 +41,9 @@
url = {https://openbuildservice.org/files/manuals/obs-beginners-guide.pdf},
urldate = {2019-03-12}
}
@online{suse:kiwi_schema,
author = {SUSE Linux GmbH},
title = {Schema documentation for kiwi},
url = {https://doc.opensuse.org/projects/kiwi/schema-doc},
urldate = {2019-03-13}
}