# Jenkins: Das Schweizer Taschenmesser der Enterprise-Automatisierung

TL;DR / Management Summary Trotz der Konkurrenz durch GitLab und GitHub bleibt Jenkins das mächtigste Tool für komplexe, plattformübergreifende Automatisierung. Es basiert auf einer Master-Worker-Architektur und nutzt die Sprache Groovy, um hochgradig individuelle Pipelines zu schreiben. Ein Senior Admin nutzt Jenkins, um Proxmox-Cluster (Artikel 661), Windows-Builds und Legacy-Hardware in einem einzigen Workflow zu vereinen. Die Stärke liegt in den über 1800 Plugins, die fast jede Technologie anbinden können.


# 1. Architektur: Master und Agents

Die Verteilung der Arbeit.

Jenkins trennt die Steuerung von der Ausführung:

  1. Jenkins Master: Die GUI, die Job-Planung und das Plugin-Management.
  2. Jenkins Agents (Workers): Kleine Java-Prozesse, die auf entfernten Servern (z.B. LXC in Proxmox) laufen und die eigentlichen Befehle ausführen.

# 2. Pipeline as Code: Jenkinsfile

Orchestrierung via Groovy.

Moderne Jenkins-Jobs werden als Jenkinsfile im Git-Repository gespeichert:

pipeline {
    agent { label 'pve-runner' }
    stages {
        stage('Validate') {
            steps {
                sh 'ansible-lint site.yml'
            }
        }
        stage('Deploy') {
            steps {
                sh 'ansible-playbook -i hosts site.yml'
            }
        }
    }
}

# 3. Deep Dive: Shared Libraries

Code-Wiederverwendung für Profis.

In großen Teams schreiben Sie nicht für jedes Projekt die gleiche Pipeline neu.


# 4. Day-2 Operations: Plugin-Hygiene

Den ‘Dino’ stabil halten.

Jenkins ist berüchtigt für seine Abhängigkeit von Plugins.


# 5. Troubleshooting & “War Stories”

Wenn die Pipeline bricht.

# Top 3 Fehlerbilder

  1. Symptom: Jobs schlagen fehl mit “No space left on device”.

    • Ursache: Jenkins löscht alte Build-Workspace-Daten nicht automatisch.
    • Fix: Nutzen Sie das Wipe out repository & build day Plugin oder einen Cron-Job am Agent.
  2. Symptom: “Slave node disconnected”.

    • Ursache: Firewall-Blockade auf Port 50000 (JNLP) oder Java-Versionskonflikt zwischen Master und Agent.
  3. Symptom: Jenkins reagiert extrem langsam.

    • Lösung: Erhöhen Sie den Heap-Space der Java Virtual Machine (JVM).

# “War Story”: Der “Plugin-Hell” Kollaps

Ein Admin aktualisierte 20 Plugins gleichzeitig auf einem produktiven Jenkins-Master. Das Ergebnis: Die Plugins hatten kreuzweise Abhängigkeiten. Nach dem Neustart war die Web-GUI nur noch ein Scherbenhaufen von Java-Fehlermeldungen. Da der Admin keine Snapshots (Artikel 656) gemacht hatte, verbrachte er das gesamte Wochenende mit der manuellen Suche nach den passenden .hpi Archiv-Versionen. Lehre: Behandeln Sie den Jenkins-Master wie eine sensible Datenbank. Snapshots vor jedem Klick auf “Update” sind Pflicht!


# 6. Monitoring & Reporting

Build-Metriken.

# Prometheus Metrics Plugin

Senden Sie Daten an Ihr Grafana Dashboard (Artikel 698).


# 7. Fazit & Empfehlung

Jenkins ist das “Power-User”-Tool für die Automatisierung.


# Anhang: Cheatsheet (Groovy Snippets)

Snippet Zweck
params.MY_VAR Zugriff auf User-Eingaben
env.BUILD_NUMBER Interne Build-ID nutzen
error("Message") Job hart abbrechen
archiveArtifacts Dateien für später sichern

# Referenzen