Patterns: Bundle-based Installation (Artikel 132)
Effiziente System-Konfiguration mittels Patterns. Erfahren Sie, wie Sie Software-Bündel verwalten, Abhängigkeiten in Gruppen lösen und eigene Unternehmens-Patterns erstellen.
# SUSE Patterns: Standardisierung durch Software-Bündel
TL;DR / Management Summary Ein Pattern ist in SUSE weit mehr als eine einfache Paketliste. Es ist eine logische Einheit (Meta-Paket), die sicherstellt, dass alle für eine bestimmte Funktion (z.B. DHCP-Server, KVM-Host, SAP-Basis) benötigten Pakete, Dokumentationen und Bibliotheken in der richtigen Version installiert werden. Wer Patterns nutzt, verhindert “löchrige” Installationen, bei denen wichtige Hilfswerkzeuge fehlen.
# 1. Einführung & Architektur
Was ist ein Pattern technisch?
Ein Pattern wird dem System als ein spezielles RPM-Paket präsentiert (z.B. patterns-server-dhcp_server). Es enthält keine eigenen Dateien, sondern nur Abhängigkeiten (Requires) zu anderen Paketen.
# Die Pattern-Logik (Mermaid)
graph TD
A[Admin: zypper in -t pattern web_server] --> B[Pattern Meta-Package]
B --> C[Package: apache2]
B --> D[Package: php8]
B --> E[Package: mariadb-client]
B --> F[Recommended: yast2-http-server]
C/D/E/F --> G[Installed System]
# 2. Patterns via CLI verwalten
Zypper-Befehle für Gruppen.
# Verfügbare Patterns auflisten
# Zeigt alle verfügbaren Bündel
zypper patterns
# Ein Pattern installieren
Wichtig: Nutzen Sie das Typ-Flag -t pattern.
sudo zypper install -t pattern kvm_host
# Informationen zum Inhalt
# Was wird genau installiert?
zypper info -t pattern lamp_server
# 3. Eigene Unternehmens-Patterns erstellen
Die Krönung der Standardisierung.
Anstatt in Ansible-Listen hunderte Pakete zu pflegen, bauen Sie ein RPM, das Ihre Anforderungen bündelt.
# Beispiel: company-base-pattern.spec
Name: patterns-company-base
Version: 1.0
Summary: Base system for our company
Group: Metapackages
Requires: htop
Requires: vim
Requires: nmap
Requires: rsync
Requires: postfix
Bauen Sie daraus ein RPM (siehe Artikel 130) und laden Sie es in Ihr internes Repo (Artikel 129). Ein zypper in patterns-company-base konfiguriert nun jeden neuen Server nach Ihrem Standard.
# 4. Day-2 Operations: Patterns entfernen
Sauberer Rückbau.
Ein Pattern zu entfernen ist knifflig, da die Abhängigkeiten oft von anderen Paketen geteilt werden.
# Entfernt das Pattern-Meta-Paket (die Pakete bleiben meist installiert!)
sudo zypper rm -t pattern <name>
# Um die Pakete mit zu entfernen (Vorsicht!):
sudo zypper rm --clean-deps -t pattern <name>
# 5. Troubleshooting & “War Stories”
Wenn das Bundle zu viel oder zu wenig liefert.
# Story 1: “Der hängende Desktop”
Symptom: Ein Admin installiert das Pattern gnome, aber nach dem Booten erscheint kein grafischer Login.
Ursache: Das Pattern installiert die Software, aktiviert aber nicht automatisch den display-manager in systemd.
Lösung: Nutzen Sie zusätzlich YaST oder setzen Sie den Default-Target manuell: systemctl set-default graphical.target.
# Story 2: “Das Pattern-Update bricht das System”
Symptom: Nach einem zypper up werden plötzlich Pakete deinstalliert, die für den Betrieb kritisch sind.
Ursache: Ein Pattern-Update hat eine Abhängigkeit verloren oder geändert. Da Patterns als “Pflicht” gelten, folgt der Solver dem Pattern blind.
Lösung: Prüfen Sie bei Pattern-Updates immer den Solver-Output. Nutzen Sie zypper al (Add Lock), um kritische Einzelpakete vor der automatischen Deinstallation durch ein Pattern zu schützen.
# 6. Fazit & Empfehlung
- Bare-Metal: Nutzen Sie Patterns während des AutoYaST-Prozesses (Artikel 125).
- Minimalismus: Installieren Sie nur die Patterns, die Sie wirklich brauchen. Ein
lamp_serverPattern zieht deutlich mehr Abhängigkeiten als eine manuelle Installation vonapache2. - Wartbarkeit: Patterns sind der beste Weg, um Software-Standards über Abteilungen hinweg zu definieren.
# Anhang: Cheatsheet
| Aufgabe | Befehl |
|---|---|
| Alle Patterns listen | zypper pt |
| Nur installierte Patterns | zypper se -t pattern -i |
| Pattern Details | zypper info -t pattern <name> |
| Pakete eines Patterns | zypper search --requires <pattern_name> |
| Suche nach Patterns | zypper search -t pattern <begriff> |
| Installation ohne Empfehlungen | zypper in --no-recommends -t pattern <name> |