linux-suse-opensuse automation autoyast deployment sles opensuse

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