Wichtige Jenkins-CLI-Befehle für Job-Verwaltung und -Steuerung
Verwalten Sie Jenkins-Jobs über die CLI mit Beispielen für create-job, copy-job, delete-job, build, get-job und update-job.
Wichtige Jenkins-CLI-Befehle für Job-Verwaltung und -Steuerung
Die Jenkins-CLI hilft Ihnen, Jobs zu verwalten, wenn die Weboberfläche für wiederholte Aufgaben zu langsam ist. Wenn Sie Jobs aus Vorlagen erstellen, Builds auslösen oder XML-Konfigurationen in Skripten aktualisieren müssen, bietet Ihnen die CLI einen direkten Weg.
Dieser Leitfaden konzentriert sich auf Befehle zur Job-Verwaltung: list-jobs, get-job, create-job, copy-job, update-job, delete-job und build.
Einrichten der Jenkins-CLI
Bevor Sie Befehle ausführen, müssen Sie eine sichere Verbindung zu Ihrem Jenkins-Master herstellen. Dazu müssen Sie den CLI-Client herunterladen und eine ordnungsgemäße Authentifizierung sicherstellen.
1. Herunterladen der jenkins-cli.jar
Der CLI-Client befindet sich normalerweise direkt auf Ihrem Jenkins-Server an einem bestimmten Endpunkt. Sie können ihn mit wget oder curl herunterladen:
wget http://your-jenkins-url:8080/jnlpJars/jenkins-cli.jar
# ODER mit curl
curl -O http://your-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 ein API-Token zu generieren, navigieren Sie in der Jenkins-Weboberfläche zu Benutzereinstellungen > Konfigurieren > API-Token.
Alle nachfolgenden Befehle erfordern Authentifizierungsflags, normalerweise die Flags -s (Server-URL) und -auth (Authentifizierungsdaten):
java -jar jenkins-cli.jar -s http://your-jenkins-url:8080 -auth BENUTZERNAME:API_TOKEN <befehl>
Tipp: Speichern Sie Ihr API-Token aus Sicherheitsgründen in einer sicheren Umgebungsvariable oder verwenden Sie die SSH-Schlüssel-Authentifizierungsmethode, falls konfiguriert, anstatt es direkt in Skripte einzugeben.
Kernbefehle zur Job-Erkennung
Bevor Sie Jobs ändern, ist es oft notwendig, vorhandene Jobs aufzulisten und ihre Konfigurationen abzurufen.
Auflisten aller Jobs: 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
Abrufen der Job-Konfiguration: 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
Wichtige Befehle zur Job-Verwaltung
Diese Befehle decken die grundlegenden Lebenszyklusoperationen für Jenkins-Jobs ab.
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.
Voraussetzungen: Sie müssen zunächst eine gültige XML-Konfigurationsdatei (z.B. new-config.xml) haben, die normalerweise durch Ändern einer mit get-job abgerufenen Vorlage erstellt wird.
# Beispiel: Erstellen eines neuen Jobs namens 'project-feature-branch' mit 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 vorhandenen Jobs: copy-job
Dies ist oft der schnellste Weg, einen neuen Job zu erstellen, indem ein vorhandener Job als Vorlage verwendet und ein neuer Name vergeben wird. Dieser Befehl dupliziert effektiv die Konfiguration des Quell-Jobs.
# Syntax: copy-job QUELL_JOB_NAME ZIEL_JOB_NAME
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH copy-job original-pipeline new-dev-pipeline
3. Aktivieren und Deaktivieren von Jobs: enable-job und disable-job
Diese Befehle sind entscheidend für Wartung, vorübergehende Stopps oder administrative Kontrolle, um zu verhindern oder zu erlauben, dass Builds ausgelöst werden.
# Befehl zum Stoppen weiterer geplanter oder ausgelöster Builds für Wartungsarbeiten
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH disable-job legacy-project-build
# Befehl zum Reaktivieren 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 aus 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-jobwird in der CLI-Umgebung sofort ohne weitere Bestätigung ausgeführt. Stellen Sie sicher, dass Ihre Skripte vor der Ausführung dieses Befehls geeignete Validierungsschritte enthalten.
Auslösen und Überwachen von Builds
Über die Konfigurationsverwaltung hinaus wird die CLI häufig zum Auslösen von Builds verwendet, insbesondere solchen, die bestimmte Parameter erfordern.
Auslösen eines Builds: build
Der Befehl build startet einen neuen Build für den angegebenen Job. Wenn der Job parametrisiert ist, können Sie Argumente direkt mit dem Flag -p übergeben.
# 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 mit Ü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
-smitbuildverwenden, wartet die CLI auf den Abschluss des Builds und meldet den Exit-Status. Andernfalls kehrt der Befehl sofort nach dem Einreihen des Builds zurück.
Anzeigen des Build-Status: 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 einer bestimmten 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-Scripting
Um die Jenkins-CLI effizient zu nutzen, sollten Sie bestimmte Best Practices für Stabilität und Sicherheit beachten:
1. Scripting und Automatisierung
Die CLI ist am nützlichsten in Shell-Skripten. Verwenden Sie get-job, ändern Sie das resultierende XML sorgfältig und führen Sie die geänderte Konfiguration dann mit create-job oder update-job zurück.
Beispiel-Workflow (Kopieren, Ändern und Erstellen):
- Vorlage abrufen:
get-job template-job > tmp.xml - Verwenden Sie
sed, um Platzhalter (z.B. Projektname, Repository-URL) intmp.xmlzu ersetzen. - Neuen Job erstellen:
create-job new-job < tmp.xml
2. Handhabung von Konfigurationsaktualisierungen
Um die Konfiguration eines vorhandenen Jobs mit XML von der Standardeingabe zu aktualisieren, verwenden Sie update-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 update-job project-a < updated-config.xml
3. Fehlerbehandlung
Überprüfen Sie nach der Ausführung eines CLI-Befehls in Ihren Skripten immer den Exit-Code ($?). Ein Rückgabecode von 0 zeigt Erfolg an; jeder andere Code signalisiert einen Fehler. Dies ist entscheidend für eine robuste Automatisierung und Fehlersuche.
Wichtigste Erkenntnis
Die Jenkins-CLI ist ein praktisches Werkzeug für wiederholbare Job-Verwaltung. Beginnen Sie damit, Job-XML mit get-job zu exportieren, nehmen Sie kontrollierte Änderungen vor, aktualisieren Sie Jobs mit update-job und lösen Sie Builds mit build aus. Halten Sie API-Tokens aus Skripten heraus und validieren Sie destruktive Befehle wie delete-job, bevor sie ausgeführt werden.