AutoYaST: Automated SUSE Installation (Artikel 125)
Vollautomatisierte Bereitstellung von SUSE-Systemen mittels AutoYaST. Erstellung von XML-Profilen, Netzwerk-Provisionierung und Post-Install-Skripting.
# AutoYaST Deep Dive: Automatisierung auf Knopfdruck
TL;DR / Management Summary AutoYaST ist das SUSE-Pendant zu Red Hats Kickstart oder Ubuntus Autoinstall. Es basiert auf einer zentralen XML-Datei (Profile), die alle Einstellungen von YaST (Partitionierung, Netzwerk, Benutzer, Pakete) zusammenfasst. Mit AutoYaST können Hunderte von SLES- oder openSUSE-Instanzen identisch provisioniert werden – ideal für Bare-Metal-Rollouts oder große VM-Umgebungen auf Proxmox.
# 1. Einführung & Architektur
Das XML-Gehirn.
AutoYaST nutzt keine einfache Liste von Befehlen, sondern ein strukturiertes XML-Schema. Der Installer lädt dieses Profil beim Start und führt die Schritte aus.
# Der Deployment-Fluss (Mermaid)
graph TD
A[Boot Medium: ISO / PXE] --> B[Boot Parameter: autoyast=URL]
B --> C[YaST Installer starts]
C --> D[Fetch XML Profile via HTTP/NFS]
D --> E[Validate XML & Hardware]
E --> F[Automated Partitioning & Install]
F --> G[Execute Scripts: scripts/post-install]
G --> H[Final Reboot]
# 2. Das AutoYaST Profil
Die Anatomie der autoinst.xml.
Ein Profil kann hunderte Kilobyte groß sein. Die beste Methode, eines zu erstellen, ist der Export eines bestehenden Systems via YaST.
# Beispiel: Minimaler Header
<?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>
<mode>
<confirm config:type="boolean">false</confirm>
</mode>
</general>
<software>
<packages config:type="list">
<package>openssh</package>
<package>vim</package>
</packages>
</software>
</profile>
# 3. Bereitstellung & Boot-Parameter
Wie der Server sein Profil findet.
# via Boot-Prompt
Drücken Sie F3 oder editieren Sie die linux Zeile im Bootloader:
autoyast=http://192.168.1.10/profiles/webserver.xml
# Unterstützte Protokolle
- HTTP/HTTPS: Standard für Web-Server.
- NFS: Ideal für interne RZ-Netze.
- USB:
autoyast=usb:///autoinst.xml.
# 4. Day-2 Operations: Skripting in AutoYaST
Anpassungen nach dem Setup.
AutoYaST erlaubt Shell-Skripte in verschiedenen Phasen:
- Pre-Install: Zur Hardware-Erkennung.
- Post-Install (Chroot): Befehle innerhalb des neuen Systems ausführen.
- Init-Skripte: Laufen nach dem ersten echten Boot.
<scripts>
<post-scripts config:type="list">
<script>
<filename>setup_ssh.sh</filename>
<source><![CDATA[
echo "Installation done" > /etc/motd
]]></source>
</script>
</post-scripts>
</scripts>
# 5. Troubleshooting & “War Stories”
Wenn die Automatik hakt.
# Story 1: “Die XML-Validierungs-Falle”
Symptom: Der Installer bricht mit einem kryptischen Fehler ab, bevor die Partitionierung beginnt.
Ursache: Ein kleiner Tippfehler im XML-Tag (z.B. <pacakge> statt <package>).
Lösung: Nutzen Sie das Tool yast2 autoyast check-profile auf einem bestehenden SUSE-System, um Ihr Profil vorab gegen das Schema zu validieren.
# Story 2: “Duplicate UUIDs im Storage”
Symptom: Die Installation schlägt bei der Partitionierung fehl, wenn mehrere identische Disks vorhanden sind.
Ursache: AutoYaST versucht Disks per Namen (/dev/sda) anzusprechen, was im RZ nicht deterministisch ist.
Lösung: Nutzen Sie Device-by-Path oder Device-by-ID in Ihrem XML-Profil, um die Boot-Platte eindeutig zu identifizieren.
# 6. Fazit & Empfehlung
- Export: Erstellen Sie ein Profil niemals von Grund auf. Nutzen Sie
sudo yast2 clone_system, um die Konfiguration Ihres laufenden Master-Servers als XML zu erhalten. - SUSE Manager: Für hunderte Server integrieren Sie AutoYaST in den SUSE Manager (siehe Artikel 175). Er übernimmt das Management der Profile und Repositories.
- Wahl: Nutzen Sie AutoYaST vor allem für Bare-Metal. Für VMs sind oft vorkonfigurierte Cloud-Images mit Cloud-Init (siehe Artikel 054) effizienter.
# Anhang: Cheatsheet
| Aufgabe | Befehl / Parameter |
|---|---|
| System klonen | yast2 clone_system |
| Profil validieren | check-autoyast-profile <file> |
| Boot-Parameter | autoyast=http://<ip>/<file> |
| SSH-Key Injektion | Via <users> Sektion im XML |
| Log-Files (Installer) | /var/log/YaST2/y2log |
| Text-Modus erzwingen | textmode=1 am Boot-Prompt |