linux-suse-opensuse package-management patterns sles opensuse standardization

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_server Pattern zieht deutlich mehr Abhängigkeiten als eine manuelle Installation von apache2.
  • 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>