Für diese Anwendungsfälle wird die Übergabe einer “Antwort-”, bzw. Kontrolldatei unterstützt. Diese in XML verfasste Datei steuert den AutoYast Mechanismus. Hier werden die sonst abgefragten Konfigurationsparameter vordefiniert übergeben und somit die Installation automatisiert. Es können aber auch gezielt Abfragen einzelner Parameter realisiert werden, etwa die Netzwerkkonfiguration, wenn kein DHCP-Server genutzt werden kann/soll. Oder auch das (initiale) root-Passwort.
An verschiedenen Stellen der Installation werden Scriptaufrufe unterstützt. Diese können genutzt werden, um das System über die von YaST zur Verfügung gestellten Möglichkeiten hinaus anzupassen. Sie können aber auch für die Interaktion mit anderen Diensten genutzt werden, z.B. um den Status der Installation zu melden.
Scripte können zu folgenen Zeitpunkten aufgerufen werden:
- pre-scripts (direkt nach dem Start, bevor irgendwas am System passiert)
- postpartitioning-scripts (Nach der Partitionierung und mounten der Dateisysteme nach /mnt)
- chroot-scripts (nach der Paketinstallation, vor dem ersten Neustart)
- post-scripts (während des Neustarts, bevor Dienste gestartet werden)
- init-scripts (während des Neustarts, nachdem alle Dienste gestartet sind)
Ablauf der Installation
Eine Installation mit Hilfe eines AutoYaST-Profils durchläuft die folgenden Schritte:
- YaST startet und lädt das angegebene Profil
- Aufruf der definierten pre-scripte
- Partitionierung und mounten unterhalb von /mnt
- Aufruf der definierten postpartitioning-scripte
- Anlegen von Benutzern und Gruppen
- Installation der definierten Pakete und Pattern
- Aufruf der definierten chroot-scripte
- Neustart in die
Second-Stage
- Aufruf der definierten post-scripte
- Start aller Dienste
- Aufruf der definierten init-scripte
Erstellung der Kontrolldatei
Es gibt verschiedene Möglichkeiten, sich eine für die eigenen Anwendungsfälle passende Kontrolldatei zu erstellen. Diese Datei komplett von 0 an von Hand zu erstellen ist möglich, allerdings eher unüblich. Verbreiteter ist, sich die Datei von YaST erstellen zu lassen. Nach der Installation stellt YaST auch ein Modul bereit, mit welchem ein bereits installiertes und konfiguriertes System ausgelesen und in eine Kontrolldatei geschrieben werden kann.
Dieses Modul ist verfügbar, wenn das Paket autoyast2
installiert ist und es kann mit dem Kommando yast2 autoyast
gestartet werden.
Eine erstellte Kontrolldatei lässt sich anschließend mit einem beliebigen Editor bearbeiten und nach Bedarf kürzen. Abschnitte/Sektionen, die in der Kontrolldatei nicht behandelt werden, werden mit den SUSE Standards konfiguriert.
Nutzung
Damit eine Installation automatisiert startet und eine Kontrolldatei geladen wird, wird diese mit Hilfe eines Bootparameters zu Beginn der Installation mitgegeben.
autoyast=http://example.de/autoinstallation/control.xml
Die Kontrolldatei kann mit auf dem Bootmedium (CD/DVD, USB-Stick) gespeichert sein oder per Netzwerk von verschiedenen Dateiservern (FTP, HTTP, NFS) geladen werden. Es ist auch möglich, hier nur einen Ordner-Pfad anzugeben. Die Installationsroutine sucht darin dann anhand von Regeln ein zum System passendes Profil. Wird beispielsweise autoyast=http://example.de/autoinstallation/
konfiguriert, wird darin nach verschiedenen Dateien gesucht, bis die passende gefunden wird. Der Mechanismus arbeitet ähnlich wie bei pxelinux: Es wird der Hex-Wert der IP-Adresse des Systems genommen und im Verzeichnis auf dem Server nach einer Datei mit entsprechenden Namen gesucht. Wird diese Datei nicht gefunden, wird eine Hex-Zahl entfernt. So wird vorgegangen, bis kein Hex-Wert mehr vorhanden ist. Abschließend wird nach einer Datei namens default
gesucht. Die Dateien dürfen bei Nutzung dieses Verfahrens keine Dateiendung besitzen! Diese Variante ist besonders geeignet, wenn je nach Netzwerksegment verschiedene Installationsprofile für die Grundinstallation genutzt werden sollen.
IP: 192.168.5.23
HEX-Wert: c0a80517
| Durchgang | gesuchter Dateiname |
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| 1 | c0a80517 |
| 2 | c0a805 |
| 3 | c0a8 |
| 4 | c0 |
| 5 | default |
Beispiel einer Minimal-Installation
Ein minimales und dennoch benutzbares Profil enthält nur die folgenden Angaben:
- Deaktivierung der Installationsbestätigung (Installation startet automatisch)
- Passwort für den Benutzer
root
Wenn das Profil über das Netzwerk, wie in diesem Fall über einen Webserver, geladen wird und keine weitere Konfiguration bzgl. des Netzwerks vorliegt, wird die Konfiguration zur Zeit der Installation übernommen. In unserem Fall DHCP, da wir keine Konfiguration per Bootparameter mitgegeben haben.
<?xml version="1.0"?>
<!DOCTYPE profile>
<profile xmlns="http://www.suse.com/1.0/yast2ns" xmlns:config="http://www.suse.com/1.0/configns">
<general t="map">
<mode t="map">
<confirm t="boolean">false</confirm>
</mode>
</general>
<users t="list">
<user t="map">
<encrypted t="boolean">false</encrypted>
<username>root</username>
<user_password>linux</user_password>
</user>
</users>
</profile>
Der große Block user
kann auch weggelassen werden, wenn das Passwort für den Benutzer root
per Bootparameter übergeben wird: rootpassword=linux
Das Profil verkürzt sich dann auf das folgende Beispiel:
<?xml version="1.0"?>
<!DOCTYPE profile>
<profile xmlns="http://www.suse.com/1.0/yast2ns" xmlns:config="http://www.suse.com/1.0/configns">
<general t="map">
<mode t="map">
<confirm t="boolean">false</confirm>
</mode>
</general>
</profile>
Diese beiden Beispiele für minimalste Profile sind in der Praxis eher nicht anzutreffen. Hier werden in der Regel mindestens die folgenden Sektionen mit übergeben:
- Partitionierung
- Benutzer
- Pakete/Patterns
- zusätzliche Repositories
- Netzwerkkonfiguration (Fest/DHCP)
- Firewall
- zu startende Dienste
Beispielinstallation
Bei unserem Beispiel booten wir ein System/VM mit der ISO-Datei der DVD openSUSE-Leap-15.5-DVD-x86_64-Media.iso
; hier sind alle für unsere Installation benötigten Pakete enthalten. Somit müssen wir nicht per weiteren Bootparameter (install=
) auf ein Repository verweisen.
Wir starten die Installation mit folgenden Parametern:
autoyast=http://192.168.5.10/autoinstall/default.xml
textmode
Nach Eingabe der Parameter und Bestätigung durch die Enter-Taste können wir uns zurücklehnen/andere Arbeiten erledigen und auf die Fertigstellung der Installation warten.
Integration in anderen Tools
Viele System Management oder Installationstools untersützen die automatische Installation von (open)SUSE Systemen mit Hilfe von AutoYaST-Profilen. Zu diesen gehören u.a.:
- SUSEMAnager/uyuni
- cobbler
- the foreman
Linksammlung
- https://doc.opensuse.org/projects/autoyast
- https://autoyast.github.io/
- https://www.uyuni-project.org
- https://www.uyuni-project.org/uyuni-docs/en/uyuni/client-configuration/autoinst-profiles.html#autoyast
- https://cobbler.github.io/
- https://cobbler.readthedocs.io/en/latest/cobblerd.html#autoinstallation-autoyast-kickstart
- https://theforeman.org/
- https://projects.theforeman.org/projects/foreman/wiki/Yast_based_unattended_installation