Commit 234ff56d authored by mainja67707's avatar mainja67707

Merge current changes

parents f59c3761 a60b1e4a
......@@ -83,7 +83,7 @@ citestyle=alphabetic
\newpage
\chapter{Vorwort}
Die Wartung und Instandhaltung von Laboren ist ein oft komplexes und
sehr zeitkonsumierendes Unterfangen.\\
sehr zeitraubendes Unterfangen.\\
Hierbei ist es wichtig, eine Balance zwischen neuesten Features und
Softwareupdates für die Nutzer, hier vorwiegend Studierende,
bereitzustellen und nichtsdestotrotz eine grundsätzliche Stabilität und
......@@ -92,9 +92,9 @@ citestyle=alphabetic
Support Versionen eingesetzt, die über einen langen Zeitraum auf
Stabilität getestet wurden und sich insbesondere für Serversysteme
eignen.\\
Auch die Konfiguration und Anpassung auf die Hochschulinterne
Infrastruktur, etwa der Zugriff auf das Active Directory und die
Möglichkeit den Labor-eigenen Druckdienst über ein Ticket zu verwenden
Auch die Konfiguration und Anpassung an die hochschulinterne
Infrastruktur, wie etwa der Zugriff auf das Active Directory und die
Möglichkeit, den laboreigenen Druckdienst über ein Ticket zu verwenden,
stellt hinsichtlich der Einrichtung eine Herausforderung dar.\\
Zuletzt sollte auch die auf den Rechnern verfügbare Software, etwaige
IDE's wie die Jetbrains-Produkte oder eine TeX Live IDE der Software
......@@ -103,15 +103,15 @@ citestyle=alphabetic
eine Alternative für die Studierenden darstellen können und
dementsprechend wieder öfter genutzt wird.\\
In Anbetracht der Entwicklungsgeschwindigkeit heutiger Software stellt
ein Automatisches Deployment deshalb eine wichtige Hilfestellung für
ein automatisches Deployment deshalb eine wichtige Hilfestellung für
Administratoren dar.\\
Das Projekt möchten wir genau hier ansetzen, und den
Adminstrationsaufwand für das fakultätseigenes Linux-Labor auf ein
Minimum reduzieren. Hierdurch soll auch der Aufwand für den
Updatevorgang aller Rechner so weit reduziert werden, das dies
problemlos unter dem Semester möglich wäre.
Das Projekt soll genau hier ansetzen, und den Adminstrationsaufwand
für das fakultätseigenes Linux-Labor auf ein Minimum reduzieren.
Hierdurch soll auch der Aufwand für den Updatevorgang aller Rechner
so weit reduziert werden, das dies problemlos unter dem Semester möglich
wäre.
\chapter{Projektziel}
Alle Linux-Systeme müssen ans Active Directory angebunden werden,
Alle Linux-Systeme müssen an das Active Directory angebunden werden,
damit sich jeder Informatik-Student dort anmelden kann. Für die
automatische Erstinstallation ist ein PXE-Server mit iso-Image
notwendig.
......@@ -124,10 +124,12 @@ citestyle=alphabetic
werden.
Somit soll auch die Pflege/Wartung der Systeme erleichtert werden. \\
Alle Studenten arbeiten auf den Windows-Rechnern auf ihrem
Windows-Laufwerk, wo alle Daten abgespeichert werden.
Das soll auch unter Linux mit cifs möglich sein, so dass die Studenten
alle wichtigen Daten dort ablegen können und nicht an einen Rechner
gebunden sind.\\
Windows-Laufwerk,
wo alle Daten abgespeichert werden. Das soll auch unter Linux mit cifs
möglich sein, so dass die Studenten alle wichtigen Daten dort ablegen
können und nicht an einen Rechner gebunden sind. \\
Außerdem soll ein Upgrade ohne manuellem Eingriff auf allen
Labor-Rechnern automatisch möglich sein.
Auch das allgemeine Softwaresortiment, welches den Studierenden auf den
Hochschulrechnern zur Verfügung steht, soll im Linux-Labor erweitert
werden.
......@@ -144,22 +146,24 @@ citestyle=alphabetic
entsprechenden Studenten abgebucht wird.\\
Seitens der Studierenden wurde hier und da eine etwas karge
Softwareausstattung der Rechner beanstandet.
\chapter{Evaluation des invis Server}
Invis Server ist ein Sub-Projekt von openSUSE, welche eine Authentifizierung
mit dem Active Directory mit spezieller Client-Software für Linux-Clients
ermöglicht. Der Gründer des Projekts meinte, dass sich dieser als
\chapter{Evaluation von invis Server}
invis Server ist ein Sub-Projekt von openSUSE, welches eine
Authentifizierung mit dem Active Directory mit spezieller Client-Software
für Linux-Clients ermöglicht.
Der Gründer des Projekts hat zuerst erklärt, dass sich das als
Authentifizierungs-Lösung ohne komplizierte Konfiguration im
Linux-Labor-Projekt hervorragend eignet. Mit dieser Server-Software hätten
wir ein eigenes Subnetz inkl. DHCP-Server für das Linux-Labor generiert und
somit separat vom restlichen Fakultätsnetz die Clients deployed.
wir ein eigenes Subnetz inkl. DHCP-Server für das Linux-Labor generiert
und somit separat vom restlichen Fakultätsnetz die Clients deployed.
\section{Installation}
Der Server wurde auf dem System invis.informatik.fh-nuernberg.de mit
openSUSE aufgesetzt. Nachdem der invis Server installiert war, wurde
versucht diesen mit dem vorhandenen Active Directory zu verbinden,
damit die Benutzerdaten synchronisiert werden können. \\
Herr Götz wollte gerne diese Aufgabe übernehmen und musste feststellen,
dass der Server einen eigenen AD-Controller integriert hatte und sich so
nicht ins Hochschulnetz integrieren lässt.
Wegen der uns fehlenden Rechte hat Herr Götz sich dazu bereit erklärt
diese Aufgabe zu übernehmen und musste feststellen, dass der Server
einen eigenen AD-Controller integriert hatte und sich so nicht ins
Hochschulnetz integrieren lässt.
\section{Feedback des Projekt-Gründers}
Auf die Nachfrage per E-Mail beim Projekt-Gründer kam die Antwort, dass
der Ratschlag ein Missverständnis gewesen sei. Die Software ist für kleine
......@@ -185,7 +189,7 @@ citestyle=alphabetic
Der Salt-Master gibt Instruktionen an die Minions weiter.
Um dies zu ermöglichen, ist bei ihm eine Liste der aktuell
verbundenen Minions hinterlegt.
Diese können, entweder in Summe oder einzeln, mittels der
Diese können entweder in Summe oder einzeln, mittels der
hinterlegten Konfiguration oder für direkte Shell-Befehlsausführung
angewiesen werden.\\
Die auf drei Verzeichnisse aufgeteilte Konfigurationen beinhaltet
......@@ -208,36 +212,35 @@ citestyle=alphabetic
Folgt diesem noch ein Dateiname, so wird diese im
salt-Verzeichnis erwartet.\\
Das Verzeichnis ist für normale Paketinstallationen über die
standard-Paketinstaller gedacht, wodurch eine simple Paketliste
Standard-Paketinstaller gedacht, wodurch eine simple Paketliste
ohne weitere Konfigurationen hinreichend ist. \\
Genauso weren mit include die Formulas mit eingebunden und
entsprechende Installationen von dort aus ausgeführt.
Genauso werden mit include-Statements die Formulas mit eingebunden
und entsprechende Installationen von dort aus ausgeführt.
\subsection{Pillar}
Das Pillar-Verzeichnis steht für Variablen, Sensitive Daten,
Das pillar-Verzeichnis steht für Variablen, Sensitive Daten,
Konfigurationen und sonstige zu übertragende Daten zur
Verfügung\cite{salt:pillar}. Jedes von SaltStack akzeptierte
Formula enthält
eine Datei mit dem Namen pillar.example.sls, die man als Vorlage
ins Pillar-Verzeichnis kopieren und in die top.sls mit einbinden
kann. Anschließend werden dann die Beispiel-Einträge mit den
eigenen Systemkonfigurationen angepasst, so dass über das
entsprechende Salt-Formula die angepassten Konfigurations-Dateien
automatisch hinzugefügt werden.
Formula enthält eine Datei mit dem Namen pillar.example.sls,
die man als Vorlage ins pillar-Verzeichnis kopieren und in die
top.sls mit einbinden kann. Anschließend werden dann die
Beispiel-Einträge mit den eigenen Systemkonfigurationen angepasst,
so dass über das entsprechende Salt-Formula die angepassten
Konfigurations-Dateien automatisch hinzugefügt werden.
\subsubsection{Anmerkungen}
Wichtig sei hier noch, das das pillar-Verzeichnis eine seperate
Wichtig sei hier noch, das das pillar-Verzeichnis eine separate
top.sls-Datei besitzt. Dementsprechend exisitieren insgesamt
zwei top.sls-Dateien: eine im Salt-Verzeichnis und eine im
Pillar-Verzeichnis.\\
pillar-Verzeichnis.\\
Dies wurde erst nach einigen Tests herausgefunden, da es aus der
Dokumentation leider nicht direkt hervorgeht.
\subsection{Formulas}
Formulas sind eine Konfigurations-/Installationsschnittstelle für
aufwendigere Pakete, welche meist nicht über einen Paketmanager
installierbar oder konnfigurierbar sind. Mit Hilfe von Formulas
installierbar oder konfigurierbar sind. Mit Hilfe von Formulas
lassen sich aufwändige Installationsroutinen mit automatischen
Konfigurationen auf Deployments in wenigen Minuten reduzieren. \\
Es wurden folgende Formulas aus verschiedenen
github-Repositories verwendet:
Es wurden folgende Formulas aus verschiedenen github-Repositories
verwendet:
\begin{itemize}
\item Java: \\
\url{https://github.com/salt-formulas/salt-formula-java}
......@@ -259,7 +262,7 @@ citestyle=alphabetic
file\textunderscore{}roots alle
aufgelistet, so dass alle Installationen und Konfigurationen aus
dem Verzeichnis /srv/formulas/
aufgerufen werden können. Jedes Forumula hat eine README-Datei,
aufgerufen werden können. Jedes Formula hat eine README-Datei,
wo die Verwendung der Optionen (states) für die sls-Datei im
salt-Verzeichnis mit aufgelistet wurde. Zum Beispiel hat sssd die
States sssd und sssd.sysauth. Weil sssd zusammen mit dem
......@@ -285,10 +288,9 @@ citestyle=alphabetic
Salt hat eine Option um GPG Passwörter zu entschlüsseln.
Dafür wird mit GPG auf dem Salt-Master ein Schlüsselpaar
generiert, worauf Salt ohne Passwort zugreifen kann.
Hier gab es das Problem,
dass der Befehl mit der Aktualisierung auf GPG2 geändert wurde,
weil es aus Sicherheitsgründen besser ist immer ein Passwort
mit zu übergeben. \\
Hier gab es das Problem,dass der Befehl mit der Aktualisierung
auf GPG2 geändert wurde, weil es aus Sicherheitsgründen besser ist,
immer ein Passwort mit zu übergeben. \\
Dann kann mit Hilfe des Schlüssels das entsprechende Passwort
verschlüsselt werden. Die daraus resultierende PGP-Message wird in
Base64 kodiert ausgegeben und kann dann so als Multiline-String
......@@ -297,12 +299,12 @@ citestyle=alphabetic
wird in der master-Konfiguration GPG\textunderscore{}keydir und
decrypt\textunderscore{}pillar entkommentiert.
Dort werden dann das Verzeichnis vom Schlüssel
und der entsprechende Pillar-Eintrag mit angegeben. So kann dann
und der entsprechende pillar-Eintrag mit angegeben. So kann dann
der Salt-Master mit Hilfe von GPG das Passwort aus der PGP-Message lesen.\\
Eine ausführliche Anleitung wurde dazu als Blog-Artikel
veröffentlicht\cite{sarah:gpg_salt}.
\section{Salt-Minion\label{sec:salt_min}}
Der Salt-Minion ist die Clientseitige Software, welche auf den
Der Salt-Minion ist eine clientseitige Software, welche auf den
automatisch zu konfigurierenden Linux-Rechnern installiert werden
muss. Er führt die vom Salt-Master erhaltenen Befehle aus und
konfiguriert somit das System nach der hinterlegten Anleitung.\\
......@@ -310,7 +312,7 @@ citestyle=alphabetic
und dessen Fingerabdruck in der Konfigurationsdatei /etc/salt/minion
hinterlegt werden. Anschließend muss der Minion noch vom Master
hinzugefügt werden. Ersteres soll über das Open Build Service
PXE-image bereits automatisiert geschehen.
PXE-Image bereits automatisiert geschehen.
\section{Software-Stack}
Die durch Salt verwaltete und konfigurierte Software ist im
folgenden mit einem kurzen Erfahrungsbericht und weiterführenden,
......@@ -345,13 +347,12 @@ citestyle=alphabetic
installiert und stehen den Studierenden zur Verfügung.\\
Für Intellij IDEA musste weiterhin Java installiert werden.
\subsubsection{Lizensierung}
Um die IDEs nutzen zu können, muss der Hochschuleigene
Um die IDEs nutzen zu können, muss der hochschuleigene
Lizenzserver verwendet werden.\\
Um die Webaddresse des Lizenzservers automatisiert zu
hinterlegen, muss im HOME-Verzeichnis der Studierenden ein
Folgende Dateistruktur für jede IDE angelegt werden:
\textquotedblleft.\textless{}IDE\textgreater{}\textless{}Versionsnummer\textgreater{}/config/\textless{}IDE\textunderscore{}in\textunderscore{}Kleinbuchstaben\textgreater{}.key\textqoutedblright{}
erstellt werden.\\
hinterlegen, muss im HOME-Verzeichnis der Studierenden
folgende Dateistruktur für jede IDE angelegt werden:\\
\textquotedblleft.\textless{}IDE\textgreater{}\textless{}Versionsnummer\textgreater{}/config/\textless{}IDE\textunderscore{}in\textunderscore{}Kleinbuchstaben\textgreater{}.key\textqoutedblright{}\\
Hierfür werden diese unter /etc/jetbrains erstellt und beim
Login in das HOME-Verzeichnis der Studierenden kopiert.
\subsubsection{Erfahrungsbericht}
......@@ -359,16 +360,16 @@ citestyle=alphabetic
Verzeichnisse, da hierfür die Versionsnummer ausgelesen
werden musste.\\
Nach einigen anfänglich erfolglosen Versuchen diese aus
Konfigurationsdateien zu extrahieren wurde ein Shellskript
Konfigurationsdateien zu extrahieren, wurde ein Shellskript
entwickelt, welches diese Information aus den
Ordnernamen unter /usr/local/jetbrains extrahiert.
\subsection{Visual Studio Code}
Neben den JetBrains IDEs erfreut sich auch VisualStudio Code
Neben den JetBrains IDEs erfreut sich auch Visual Studio Code
immer größerer Beliebtheit. Da dieses, im Gegensatz zu
VisualStudio, OpenSource-Softare ist, sollte auch dieses
VisualStudio, Open-Source-Softare ist, sollte auch dieses
Tool zur Verfügung gestellt werden.
\subsubsection{Installation}
Für VisualStudio Code existiert ein Formula.\\
Für Visual Studio Code existiert ein Formula.\\
Bis auf den im Erfahrungsbericht angesprochenen Bug verlief
die Installation hiermit problemlos.
\subsubsection{Erfahrungsbericht}
......@@ -377,7 +378,7 @@ citestyle=alphabetic
ein Bug gefunden.\\
Entgegen der Annahme importiert rpm den GPG-Schlüssel nicht
automatisch mit in seinen Schlüsselspeicher. Die Folge war
dementsprechend, das das Paket von einem für rpm unbekannten
dementsprechend, dass das Paket von einem für rpm unbekannten
GPG-Schlüssel signiert und somit zurückgewiesen wurde.\\
Der Workaround besteht darin, mittels Salt den rpm-Befehl
seperat auszuführen und somit den Schlüssel
......@@ -428,8 +429,8 @@ citestyle=alphabetic
Damit der SSSD-Daemon funktioniert, werden keytab-Dateien gebraucht, die
mit dem Kerberos-Formula mit eingebunden werden können.
\section{Kerberos-Formula}
Das Kerberos-Formula wird schon für openSUSE angeboten. Allerdings wird
mit der Option kerberos.keytab nur die Einbindung schon existierender
Beim Kerberos-Formula haben noch die openSUSE-Pakete gefehlt.
Mit der Option kerberos.keytab wird die Einbindung schon existierender
keytab-Dateien mit angeboten, so dass sich der Benutzer für die
unterschiedlichen Dienste im Netzwerk, wie z.B. ssh und cifs mit den
Windows-Laufwerken, automatisch direkt anmelden kann. Als Minimum wird die
......@@ -437,7 +438,7 @@ citestyle=alphabetic
die Anforderung, dass diese keytab-Dateien automatisch mit der ersten
Anmeldung unseres Benutzers mit angelegt werden. \\
Dafür wird noch eine Konfiguration des samba-clients und folgende Befehle
automatisiert gebraucht:
automatisiert benötigt:
\lstset{language=bash}
\begin{lstlisting}[frame=single]
net ads join -U ${Benutzer}%${Passwort}
......@@ -477,13 +478,17 @@ citestyle=alphabetic
der Kerberos-Authentifizierung angegangen werden sollten. Außerdem
beinhaltet die smb.conf die Konfiguration, dass zum Drucken cups verwendet werden
soll, was schon zum Anfang des Projekts mit beschlossen wurde.
\section{PAM-Formula}
\section{PAM}
Das Windows-Laufwerk wurde bisher mit PAM und der Datei
pam\textunderscore{}mount\textunderscore{}conf.xml
mit Hilfe von cifs gemountet. Diese Datei wird mit dem PAM-Formula mit
eingebunden und konfiguriert.
mit Hilfe von cifs gemountet. Das verfügbare PAM-Formula beinhaltet
kein pam\textunderscore{}mount, weshalb es so, wie es ist, als Lösung
ungeeignet ist. Weil das Samba-Formula bereits Teile von PAM beinhaltet,
muss dieses Formula eine Erweiterung erhalten, womit das Windows-Laufwerk
mit pam\textunderscore{}mount ins Home-Verzeichnis eingebunden und konfiguriert
wird.
\section{Fazit zu Kerberos}
Eigentlich erfordert ein anständiger Softwareentwicklungsprozess,
Eigentlich erfordert ein zuverlässiger Softwareentwicklungsprozess,
dass man ein Modul nach dem anderen einbindet und zuerst dessen Funktionalität
testet, bevor man die nächste Aufgabe angeht. Das sollte auch hier
umgesetzt werden. Leider haben sich dann immer mehr Abhängigkeiten zwischen
......@@ -491,7 +496,7 @@ citestyle=alphabetic
der keytab-Dateien gewünscht wurde. \\
Zuerst war nur geplant das sssd-Formula und das Kerberos-Formula zu verwenden,
weil diese die Grundlagen zur Kerberos-Authentifizierung bieten und alles
notwendige dafür bereitstellen. Dann stellte sich heraus, dass zum
Notwendige dafür bereitstellen. Dann stellte sich heraus, dass zum
Joinen die smb.conf und nsswitch.conf gebraucht werden und deshalb die
Integration der notwendigen Befehle im Kerberos-Formula fehlschlugen.
Deshalb kam dann noch das Samba-Formula dazu, womit die Kette der
......@@ -518,15 +523,15 @@ citestyle=alphabetic
\section{Kiwi}
Kiwi ist der Name des Kommandozeilentools, welches hinter SUSE
Studio stand.
Es unterstützt die Erstellung diverser image-Typen.\\
Es unterstützt die Erstellung diverser Image-Typen.\\
Die relevanten Dateien bestehen aus: einer Konfigurationsdatei
(.xml), einem (optionalen) Quellarchiv (meist tar.bz2), sowie
optionalen Shellskripten. Die hier gefundene Zusammenfassung kann
hier ausführlicher gefunden werden\cite{suse:kiwi}\\
Das Bauen von kiwi-images lässt sich in zwei Phasen aufteilen: Das
Generieren des Verzeichnisbaums und des images.
Das Bauen von kiwi-Images lässt sich in zwei Phasen aufteilen: Das
Generieren des Verzeichnisbaums und des Images.
\subsection{Konfigurationsdatei}
Die Konfiguration des images erfolgt in einer XML-Syntax.
Die Konfiguration des Images erfolgt in einer XML-Syntax.
Für das Bauen auf dem Open Build Service muss jedoch die Datei auf
\text{*}.kiwi enden.
Sie ist in verschiedene Abschnitte gegliedert:\\
......@@ -582,10 +587,10 @@ kernelcmdline="splash"/>
gekostet haben. Deshalb sind diese noch einmal extra aufgeführt:
\subsubsection{Preferences/type}
Die von uns derzeit verwendeten Parameter zielen auf ein
pxe-bootbares oem-image ab, welches den Kontent des Daten-images
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
\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).
......@@ -601,7 +606,7 @@ kernelcmdline="splash"/>
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
Für weitere Informationen zu den verschiedenen möglichen
Parametern, siehe\cite{suse:kiwi_schema} und
teilweise\cite{suse:kiwi}.
\subsubsection{User}
......@@ -617,7 +622,7 @@ kernelcmdline="splash"/>
Ebenfalls möglich wäre das Kopieren und Modifizieren eines
bereits existierenden Paketes innerhalb des Projekts.
\subsubsection{Packages}
Enthält die in das image zu integrierenden Pakete.
Enthält die in das Image zu integrierenden Pakete.
Neben den für die Distribution zwingend benötigten Paketen
wurde an dieser Stelle noch ein konfigurierter Salt-Minion
mitgeliefert.
......@@ -626,7 +631,7 @@ kernelcmdline="splash"/>
Derzeit enthalten ist die Standard-Paketliste von openSUSE Leap
15.0 und das Salt-Minion-Paket.
\subsection{Quellarchiv}
Die Quellrepositories müssen alle Pakete beinhalten, die das image
Die Quellrepositories müssen alle Pakete beinhalten, die das Image
beinhalten soll. Im Normalfall ist dies der Open Build Service.
\subsection{Shellskripte}
Währende des Erstellprozesses können bis zu zwei optionale
......@@ -648,16 +653,16 @@ kernelcmdline="splash"/>
navigieren und erkunden.
Bis auf das kiwi-Verzeichnis, welches eine Kopie der Konfiguration,
sowie wichtige Bauelemente beinhaltet, spiegelt das
Verzeichnis das spätere Innenleben des images wieder.\\
Verzeichnis das spätere Innenleben des Images wieder.\\
Zum Ende dieses Erstellungsprozesses wird noch das config.sh-Skript,
sofern vorhanden, ausgeführt.
Achtung: Manuelle Änderungen innerhalb des Verzeichnis werden bei
der nächsten Ausführung des Befehls überschrieben und können im
zweiten Schritt zu schwer verfolgbaren Fehlern führen.
Deshalb ist dies nicht zu empfehlen!
Deshalb ist dies nicht zu empfehlen.
\subsection{Generieren des Images}
(Um diesen Schritt durchlaufen zu können, ist das erfolgreiche
Abschließen des Vorherigen zwingend erforderlich.) Zu Beginn des
Um diesen Schritt durchlaufen zu können, ist das erfolgreiche
Abschließen des Vorherigen zwingend erforderlich. Zu Beginn des
zweiten Schrittes wird das images.sh Shellskript ausgeführt, sofern
vorhanden.\\
Aus dem Verzeichnisbaum können nun unterschiedliche Imagetypen
......@@ -665,13 +670,13 @@ kernelcmdline="splash"/>
Möglich sind beispielsweise USB-Live-Images, PXEBoot, Amazon EC2,
Docker, KVM/Qemu, VirtualBox, VMWare oder auch Vagrant-Images.\\
\section{Open Build Service}
Der Open Build Service ist ein OpenSource-Projekt, welches von
Der Open Build Service ist ein Open-Source-Projekt, welches von
SUSE-Entwicklern erstellt und seitdem aktiv gemaintaint wird.
Es ermöglicht Paketierern das automatische Bauen von Paketen
oder images und hat einen Fokus auf Continuos Integration.\\
oder Images und hat einen Fokus auf Continuos Integration.\\
Auch wenn der größte Fokus auf SUSE-Produkten liegt, können auch
andere Linux-Distributionen wie Debian oder Fedora hier Pakete
und images für ihre Distribution bauen.
und Images für ihre Distribution bauen.
Jeder Nutzer erhält ein mit seinem Account verknüpftes
Home-Projekt, in dem er zunächst
\textquotedblleft{}experimentieren\textquotedblright{} (neue
......@@ -680,20 +685,20 @@ kernelcmdline="splash"/>
anfragen (beispielsweise als Paketmaintainer) oder ein eigenes,
weiteres Projekt beantragen.
\subsubsection{Pakete auf dem OBS}
Paketierer haben beim erstellen von Paketen zwei
Paketierer haben beim Erstellen von Paketen zwei
grundsätzliche Probleme:
\begin{enumerate}
\item muss das Paket für die Distribution/-en gebaut
werden, was auf dem lokalen Rechner je nach Leistung
ein wenig dauern kann.
\item müssen eventuelle Abhängigkeiten zu anderen
Paketen stets aktuell gehalten werden (das heißt,
Paketen stets aktuell gehalten werden. Das heißt,
der Paketautor muss sich immer alle aktuellen Pakete
herunterladen und sein Paket gegen diese bauen).
herunterladen und sein Paket gegen diese bauen.
\end{enumerate}
Diesen beiden Problemen möchte der Open Build Service
vorbeugen.\\
Das Prinzip ist hierbei einfach, statt seine erstellten
Das Prinzip ist hierbei einfach, denn statt seine erstellten
Pakete selbst lokal zu bauen, übernimmt diese Aufgabe der
Open Build Service. Diesem stehen hierfür verschiedene Worker
zur Verfügung, die die Aufträge nach einer Warteschlange
......@@ -703,12 +708,12 @@ kernelcmdline="splash"/>
Open Build Service automatisch registriert und das Paket zum
erneuten Bauen eingereiht.
\subsubsection{Osc}
osc ist das Kommandozeilentool, um mit dem Open Build Service
Osc ist das Kommandozeilentool, um mit dem Open Build Service
zu interagieren. Zwar gibt es auch ein Webinterface, jedoch
ist das osc-tool trotz Einlernungszeit binnen einiger Tage
oftmals effektiver und einfacher zu handhaben.\\
Eingestellt ist das Tool auf build.opensuse.org, wobei auch
andere, selbstgehostete Versionen eingestellt werden können.
andere selbstgehostete Versionen eingestellt werden können.
\subsection{Rpmlint}
Der Open Build Service verwendet eine speziell konfigurierte
Version des rpmlint-tools.
......@@ -721,7 +726,7 @@ kernelcmdline="splash"/>
\item Ungültigen oder fehlenden Definitionen in der
Konfigurationsdatei
\end{itemize}
weden insbesondere potentielle Sicherheitsrisiken
werden insbesondere potentielle Sicherheitsrisiken
herausgefiltert. Dazu zählen beispielsweise:
\begin{itemize}
\item modifizierte oder neue polkit-Regeln
......@@ -738,12 +743,12 @@ kernelcmdline="splash"/>
\subsection{Images auf dem OBS}
Seit der Einstellung des SUSE Studio-Projekts werden images
über den Open Build Service erstellt.
Auch SUSE-eigene Images wie Live-CDs/-USB-Sticks, Images für
Auch SUSE-eigene Images, wie Live-CDs/-USB-Sticks, Images für
diverse Hypervisor (KVM, VirtualBox, VMWare usw.) und Container
(z.b. Docker) optimiert und andere Dienstleister wie AWS werden
über den Open Build Service gebaut.
(z.B. Docker) werden damit optimiert und andere Dienstleister,
wie AWS, können über den Open Build Service Images bauen.
Hierfür werden dem Entwickler einige Templates zur Verfügung
gestellt, jedoch sind diese, zumindest zum Projektzeitpunkt,
gestellt. Jedoch sind diese, zumindest zum Projektzeitpunkt,
veraltet und deshalb für uns nicht weiter zu gebrauchen.\\
Hilfreicher waren hier schon die Templates aus dem
kiwi-desc-netboot-Paket, jedoch hat auch dieses unter der
......@@ -785,8 +790,8 @@ kernelcmdline="splash"/>
Schätzwert einiger dazu befragten Ansprechpartner, welche
Erfahrungen im Umgang mit kiwi und dem OBS haben, entsprach.\\
Die korrekte Herangehensweise wurde leider erst nach langer
Kommunikation mit verschiedenen Community-Mitgliedern, wenige Tage
vor Ende der Projektfrist geteilt. Statt, wie lange vermutet ein
Kommunikation mit verschiedenen Community-Mitgliedern wenige Tage
vor Ende der Projektfrist geteilt. Statt, wie lange vermutet, ein
Image vom Typ pxe zu bauen, ist die Verwendung eines oem-Images mit
gesetztem pxeboot-Parameter die empfohlene Vorgehensweise.\\
Abschließend werden nun noch einige Links aufführen, welche
......@@ -807,22 +812,22 @@ kernelcmdline="splash"/>
\subsection{Versionierung des Images}
Dieser Abschnitt soll die grundlegende Herangehensweise an unser
auf dem OBS liegendes PXE-Image darstellen, die gewählt wurde.\\
Da uns leider kein funktionstüchtiges Template für ein pxe-image
Da uns leider kein funktionstüchtiges Template für ein PXE-Image
zur Verfügung stand, war nun erst einmal ein langsames
herantasten geplant.\\
Herantasten geplant.\\
Die Idee war zu Beginn folgende: Zunächst sollte ein einfaches,
funktionstüchtiges iso-Image gebaut werden, da sich dies
funktionstüchtiges iso-Image gebaut werden, weil sich dies
leichter testen ließe und keine Vorerfahrung mit dem
Bauen von Kiwi-Images da war. Leider hat dies auch mit den
Live-Image-Vorlagen nicht funktioniert, da diese nicht
erfolgreich bauten.\\
Grund hierfür war zu Beginn eine Falschkonfiguration der
Quellen des Repositories, da dies jedoch den Fehler nicht
Grund hierfür war zu Beginn eine Fehlkonfiguration der
Quellen des Repositories. Da dies jedoch den Fehler nicht
entgültig behob, waren die Live-Image-Template zu dem Zeitpunkt
mit hoher Wahrscheinlichkeit für x86\textunderscore64 nicht
funktionstüchtig.\\
Nach einigen erfolglosen Versuchen, ein funktionstüchtiges
iso-Image aufzusetzen, wurde aus Zeitgründen, direkt mit dem
iso-Image aufzusetzen, wurde aus Zeitgründen direkt mit dem
PXE-Image fortgefahren. Hierbei wurde sowohl mit
image-type\text{=}pxe, als auch mit image-type\text{oem}
experimentiert.
......@@ -844,7 +849,7 @@ kernelcmdline="splash"/>
DHCP-Server der Fakultät Informatik verwendet.
Dafür wurden die MAC-Adressen der Clients herausgesucht und diesen
mit BOOTP der PXE-Server auf invis.informatik.fh-nuernberg.de
zugewiesen, dass die Clients per PXE aus /pxelinux.0 starten sollen.
zugewiesen, dass die Clients per PXE aus pxelinux.0 starten sollen.
\section{Installation}
Auf dem PXE-Server wurden die Pakete atftpd, syslinux und
vsftpd installiert. Die Konfiguration des atftpd-Daemons liegt unter
......@@ -865,15 +870,12 @@ kernelcmdline="splash"/>
firewall-cmd --reload
\end{lstlisting}
\section{Konfiguration}
Weil das PXE-Image einiges an Platz braucht und alles mit dem Backup
Weil das PXE-Image einiges an Platz beansprucht und alles mit dem Backup
abgesichert werden soll, wurde der TFTP-Server so konfiguriert, dass
die Daten alle unter /opt/ abgelegt werden können. \\
Nachdem die oben genannten Pakete installiert wurden, mussten die
beiden Dateien pxelinux.0 und menu.c32 aus /usr/share/syslinux/
nach /opt/tftpboot/ kopiert werden.
Weil im DHCP-Server der Eintrag für /pxelinux.0 bei allen Hosts
zum Booten steht, wurde noch ein Symlink von
/opt/tftpboot/pxelinux.0 nach /pxelinux.0 generiert.
Damit nicht nur root die Dateien unter tftpboot lesen kann, mussten
die Benutzerrechte rekursiv auf nobody:nobody mit 755 angepasst
werden.
......@@ -921,23 +923,23 @@ kernelcmdline="splash"/>
ein KIWI-Verzeichnis mit einer speziellen KIWI-Konfiguration für den Bootvorgang
mit angelegt werden muss. Der TFTP-Server hat einige dieser Optionen in der
default-Datei nicht erkennen können, was das Debuggen deutlich erschwert hat.\\
Nach diesen Problemen wurde noch nachträglich (nach dem Hinweis des
KIWI-Entwicklers Marcus Schäfer) auf das OEM-Image gewechselt.
Nach diesen Problemen wurde noch nachträglich nach dem Hinweis des
KIWI-Entwicklers Marcus Schäfer auf das OEM-Image gewechselt.
\chapter{Fazit}
Der ursprünglich für die Active Directory geplante invis-Server musste
aufgrund von Konfigurationsproblemen und schwerwiegenden Differenzen
zwischen unserem und dem für ihm geplanten Einsatzzweck leider entfernt
zwischen unserem und dem für ihn geplanten Einsatzzweck leider entfernt
werden.
Stattdessen wurde nun direkt ein Kerberos-Client und sssd angestrebt.
Das bringt einiges an Komplexität mit sich, weil sämtliche
LDAP-Spezifikationen mit Verbindung zum Active Directory als
Konfigurationen zusätzlich mit angegeben werden müssen.\\
Eines der Dinge, welches leider große Schwierigkeiten bereitet hat,
war die Erstellung des PXE images mit kiwi. Um so ärgerlicher war nun zu
erfahren, das es für die Erstellung eines solchen bereits eine
einfacherer, modernere Lösung geben soll. Diese Information kam am
27.Februar zutage, kurz vor der Fertigstellung der vorherigen
Variante.\\
Stattdessen wurde nun der Einsatz des Kerberos-Clients und sssd angestrebt.
Das erhöht die Komplexität sehr, weil sämtliche LDAP-Spezifikationen
mit Verbindung zum Active Directory als Konfigurationen separat mit angegeben
werden müssen und einzelne Formulas voneinander abhängig sind.
Genauso wird dafür Samba gebraucht, was nicht mit eingeplant war.\\
Eines der Dinge, welches große Schwierigkeiten bereitet hat,war die Erstellung
des PXE-Images mit kiwi. Um so ärgerlicher war nun zu erfahren, das es für
die Erstellung eines solchen bereits eine einfachere und modernere Lösung geben
soll. Diese Information kam am 27.Februar 2019 zutage, kurz vor der Fertigstellung
der vorherigen Variante.\\
An dieser Stelle sollte auf jeden Fall die Dokumentation angepasst werden,
welche leider allgemein im Falle von kiwi mit dem Open Build Service sehr
schwer nachzuvollziehen (und teilweise nicht mehr auf dem neuesten
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment