Wichtige Jenkins CLI-Befehle für die Jobverwaltung und -steuerung

Schöpfen Sie das Potenzial der Jenkins-Administration über die Befehlszeile aus. Dieser umfassende Leitfaden beschreibt die wichtigsten Jenkins CLI-Befehle, die für die Remote-Jobverwaltung erforderlich sind. Erfahren Sie, wie Sie die CLI sicher einrichten, Konfigurationen abrufen und den gesamten Job-Lebenszyklus mithilfe von `create-job`, `copy-job`, `delete-job` und `build` automatisieren. Perfekt für Administratoren und Entwickler, die die Jenkins-Steuerung mithilfe von API-Token in automatisierte Skript-Workflows integrieren möchten.

37 Aufrufe

Essenzielle Jenkins CLI-Befehle zur Jobverwaltung und -steuerung

Jenkins, als führender Open-Source-Automatisierungsserver, bietet leistungsstarke Mechanismen zur Verwaltung von CI/CD-Pipelines. Während die Weboberfläche hervorragend für die visuelle Übersicht ist, erfordert administrative Effizienz oft Automatisierung, insbesondere beim Umgang mit Hunderten von Jobs oder repetitiven Einrichtungsvorgängen. Hier wird die Jenkins Command Line Interface (CLI) unverzichtbar.

Die Jenkins CLI ermöglicht Administratoren und Entwicklern die Ferninteraktion mit einer Jenkins-Instanz über ein Terminal, was mächtige Skripting-Fähigkeiten eröffnet. Dieser Artikel dient als praktischer Leitfaden zu den zentralen CLI-Befehlen, die für die Verwaltung des gesamten Lebenszyklus von Jenkins-Jobs erforderlich sind, von der Erstellung und Konfiguration bis hin zur Aktivierung, Deaktivierung und Löschung. Die Beherrschung dieser Befehle ist entscheidend für eine effektive Jenkins-Administration und die Integration in DevOps-Toolchains.

Einrichten der Jenkins CLI

Bevor Sie Befehle ausführen können, müssen Sie eine sichere Verbindung zu Ihrem Jenkins Master herstellen. Dies beinhaltet das Herunterladen des CLI-Clients und die Sicherstellung der korrekten Authentifizierung.

1. Herunterladen von jenkins-cli.jar

Der CLI-Client befindet sich typischerweise direkt auf Ihrem Jenkins-Server unter einem bestimmten Endpunkt. Sie können ihn mit wget oder curl herunterladen:

wget http://ihre-jenkins-url:8080/jnlpJars/jenkins-cli.jar
# ODER mit curl
curl -O http://ihre-jenkins-url:8080/jnlpJars/jenkins-cli.jar

2. Authentifizierungsmethoden

Jenkins CLI-Verbindungen erfordern eine Authentifizierung. Die sicherste und empfohlene Methode ist die Verwendung eines API-Tokens anstelle eines einfachen Benutzerpassworts.

Um einen API-Token zu generieren, navigieren Sie in der Jenkins-Weboberfläche zu Benutzereinstellungen > Konfigurieren > API-Token.

Alle nachfolgenden Befehle erfordern Authentifizierungs-Flags, typischerweise unter Verwendung der Flags -s (Server-URL) und -auth (Authentifizierungsanmeldeinformationen):

java -jar jenkins-cli.jar -s http://ihre-jenkins-url:8080 -auth BENUTZERNAME:API_TOKEN <befehl>

Tipp: Speichern Sie Ihren API-Token aus Sicherheitsgründen in einer sicheren Umgebungsvariable oder verwenden Sie die SSH-Schlüssel-Authentifizierungsmethode, falls konfiguriert, anstatt ihn direkt in Skripte einzugeben.

Kernbefehle zur Job-Ermittlung

Bevor Jobs geändert werden, ist es oft notwendig, bestehende Jobs aufzulisten und ihre Konfigurationen abzurufen.

Alle Jobs auflisten: list-jobs

Dieser Befehl zeigt die Namen aller auf dem Jenkins Master konfigurierten Jobs an.

java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH list-jobs

Job-Konfiguration abrufen: get-job

Jenkins-Jobs werden durch XML-Konfigurationsdateien definiert. Der Befehl get-job ermöglicht es Ihnen, diese XML-Definition abzurufen, was für die Erstellung neuer Jobs auf Basis von Vorlagen unerlässlich ist.

# Konfiguration für 'my-template-job' abrufen und in einer Datei speichern
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH get-job my-template-job > template-config.xml

Essenzielle Jobverwaltungsbefehle

Diese Befehle behandeln die grundlegenden Lebenszyklusoperationen für Jenkins-Jobs.

1. Erstellen eines neuen Jobs: create-job

Der Befehl create-job erfordert den Namen des neuen Jobs und die XML-Konfigurationsdatei, die seine Parameter, Build-Schritte und Trigger definiert.

Voraussetzung: Sie müssen zuerst eine gültige XML-Konfigurationsdatei besitzen (z. B. new-config.xml), die normalerweise durch Modifikation einer mit get-job abgerufenen Vorlage erstellt wird.

# Beispiel: Erstellen eines neuen Jobs namens 'project-feature-branch' unter Verwendung der lokalen XML-Datei
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH create-job project-feature-branch < new-config.xml

2. Kopieren eines bestehenden Jobs: copy-job

Dies ist oft der schnellste Weg, einen neuen Job zu erstellen, indem ein bestehender Job als Vorlage verwendet und ihm ein neuer Name gegeben wird. Dieser Befehl dupliziert effektiv die Konfiguration des Quell-Jobs.

# Syntax: copy-job QUELLE_JOBNAME ZIEL_JOBNAME
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH copy-job original-pipeline new-dev-pipeline

3. Jobs aktivieren und deaktivieren: enable-job und disable-job

Diese Befehle sind entscheidend für Wartung, temporäre Unterbrechungen oder administrative Kontrolle, da sie verhindern oder erlauben, dass Builds ausgelöst werden.

# Befehl zum Stoppen weiterer geplanter oder ausgelöster Builds für die Wartung
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH disable-job legacy-project-build

# Befehl zur Reaktivierung des Jobs
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH enable-job legacy-project-build

4. Löschen eines Jobs: delete-job

Dieser Befehl entfernt einen Job dauerhaft von der Jenkins-Instanz, einschließlich seiner Build-Historie und Konfiguration. Verwenden Sie diesen Befehl mit Vorsicht.

# Dauerhafte Entfernung des Jobs
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH delete-job obsolete-test-job

Warnung: Der Befehl delete-job wird in der CLI-Umgebung sofort und ohne weitere Bestätigung ausgeführt. Stellen Sie sicher, dass Ihre Skripte vor der Ausführung dieses Befehls über entsprechende Validierungsschritte verfügen.

Auslösen und Überwachen von Builds

Über die Konfigurationsverwaltung hinaus wird die CLI häufig zum Auslösen von Builds verwendet, insbesondere solchen, die spezifische Parameter erfordern.

Einen Build auslösen: build

Der Befehl build startet einen neuen Build für den angegebenen Job. Wenn der Job parametrisiert ist, können Argumente direkt mit dem Flag -p übergeben werden.

# Auslösen eines einfachen, nicht-parametrisierten Builds
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH build nightly-deploy

# Auslösen eines parametrisierten Jobs, Übergabe von Parametern
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH build integration-test -p TARGET_ENV=staging -p BRANCH_NAME=hotfix-123

Hinweis: Wenn Sie das Flag -s mit build verwenden, wartet die CLI, bis der Build abgeschlossen ist, und meldet den Exit-Status. Andernfalls wird der Befehl unmittelbar nach der Warteschlangenbildung des Builds zurückgegeben.

Build-Status anzeigen: get-job und console

Obwohl die CLI kein Echtzeit-Streaming wie die Weboberfläche bietet, können Sie den Job-Status überprüfen und die Konsolenausgabe abrufen.

Um die Konsolenausgabe eines bestimmten Builds (Build-Nummer) anzuzeigen:

# Konsolenausgabe für Build #55 von 'my-job' abrufen
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH console my-job 55

Best Practices für CLI-Skripting

Die effiziente Nutzung der Jenkins CLI erfordert die Übernahme spezifischer Best Practices für Stabilität und Sicherheit:

1. Skripting und Automatisierung

Die wahre Stärke der CLI liegt im Shell-Skripting. Nutzen Sie Befehle wie get-job, ändern Sie die resultierende XML-Datei mit Tools wie sed oder awk und geben Sie die geänderte Konfiguration dann über create-job oder reload-job zurück.

**Beispiel-Workflow (Kopieren, Ändern und Erstellen):
**
1. Vorlage abrufen: get-job template-job > tmp.xml
2. sed verwenden, um Platzhalter (z. B. Projektname, Repository-URL) in tmp.xml zu ersetzen.
3. Neuen Job erstellen: create-job new-job < tmp.xml

2. Umgang mit Konfigurationsaktualisierungen

Um die Konfiguration eines bestehenden Jobs mithilfe der XML-Datei zu aktualisieren, verwenden Sie den Befehl reload-job. Dies ist sicherer als das Löschen und Neuerstellen des Jobs, da die Build-Historie erhalten bleibt.

# 'project-a' mit einer lokal geänderten Konfigurationsdatei aktualisieren
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH reload-job project-a < updated-config.xml

3. Fehlerbehandlung

Überprüfen Sie immer den Exit-Code ($?) nach der Ausführung eines CLI-Befehls in Ihren Skripten. Ein Rückgabecode von 0 signalisiert Erfolg; jeder ungleich Null-Code signalisiert einen Fehler. Dies ist für robuste Automatisierung und Debugging unerlässlich.

Zusammenfassung

Die Jenkins CLI bietet eine robuste, skriptfähige Schnittstelle zur Verwaltung von Jobs, die es Administratoren ermöglicht, wiederkehrende Aufgaben zu automatisieren, z. B. Konfigurationsmigrationen zu verwalten und die Jenkins-Administration in größere CI/CD-Bereitstellungsskripte zu integrieren. Durch die Nutzung von Befehlen wie copy-job, create-job, delete-job und build können Sie erhebliche Effizienzsteigerungen erzielen und die Konsistenz in Ihren Jenkins-Umgebungen aufrechterhalten.