Organisationen setzen zunehmend Jenkins ein, um ihre Build- und Testprozesse zu automatisieren, was die manuelle Verwaltung von Jenkins-Jobs erschwert. Die gute Nachricht ist, dass das Jenkins DSL-Plugin es Ihnen ermöglicht, Jenkins-Jobs in einer domänenspezifischen Sprache (DSL) zu definieren.
Jenkins DSL ermöglicht es, Jobs in Versionskontrollsystemen zu speichern, sie mit anderen Benutzern zu teilen und neue Jobs aus Vorlagen zu generieren. In diesem Tutorial erfahren Sie, wie Sie das Jenkins DSL-Plugin nutzen können, um die Automatisierung der Anwendungsentwicklung zu unterstützen.
Lesen Sie weiter, damit Sie nie wieder mühsam durch die Jenkins-Benutzeroberfläche klicken müssen, um einen Job zu erstellen!
Voraussetzungen
In diesem Tutorial wird eine praktische Demonstration durchgeführt. Wenn Sie mitmachen möchten, stellen Sie sicher, dass Sie Folgendes haben.
- A Linux machine – This guide uses Ubuntu 20.04.
- Pipeline: Job, um das Suite von Plugins für Pipelines hinzuzufügen, die zur Implementierung und Integration von kontinuierlichen Bereitstellungspipelines in Jenkins verwendet werden.
- Pipeline: Groovy für die Möglichkeit, Groovy-Code direkt auszuführen.
Installation des Jenkins DSL-Plugins
Die Konsistenz zwischen Jobs aufrechtzuerhalten, kann schwierig sein, aber das Jenkins DSL-Plugin löst dieses Problem. Wie? Indem es Ihnen ermöglicht, Jobs in einer programmatischen Form in einer menschenlesbaren Datei zu definieren.
Aber bevor Sie Jobs erstellen, müssen Sie zunächst das Jenkins DLS-Plugin installieren:
1. SSH zu Ihrem Jenkins-Server und führen Sie den folgenden Befehl aus, um zu überprüfen, ob die erforderliche Java-Version installiert ist und der Jenkins-Dienst läuft.
Sie sind bereit, das Jenkins DSL-Plugin zu installieren, wenn Sie eine Ausgabe ähnlich der untenstehenden sehen.

2. Öffnen Sie als nächstes Ihren bevorzugten Webbrowser und gehen Sie zu http://your_server_ip:8080/pluginManager/available. Ersetzen Sie your_server_ip:8080 durch die tatsächliche IP-Adresse und Portnummer Ihres Jenkins-Servers.
3. Installieren Sie schließlich das Jenkins DSL Plugin mit dem folgenden Befehl:
- Wie unten gezeigt, geben Sie Job DSL in das Suchfeld oben rechts ein.
Wenn Sie das Job DSL Plugin bereits installiert haben und von einer älteren Version aktualisiert haben, werden die Job DSL-Skripte nicht in der Liste angezeigt, wenn Sie nach Job DSL suchen. Sie können zu http://your_server_ip:8080/pluginManager/installed navigieren, um zu überprüfen, ob das Plugin Job DSL vorhanden ist.
- Aktivieren Sie das Kontrollkästchen neben der Job DSL-Option.
- Klicken Sie unten auf Installieren ohne Neustart, um das Jenkins Job DSL Plugin zu installieren.

Die Jenkins-Oberfläche zeigt Ihnen eine Fortschrittsleiste während der Installation des Plugins. Sobald die Installation abgeschlossen ist, sehen Sie Erfolgsmeldungen ähnlich wie unten.

Erstellen Sie einen Jenkins Seed Job unter Verwendung des Jenkins DSL Plugins
Jetzt, da das Jenkins DSL Plugin installiert ist, können Sie einen Jenkins Seed Job erstellen. Schreiben Sie ein grundlegendes Job DSL-Skript und integrieren Sie das Skript in einen Jenkins Seed Job. Erstellen Sie einen Freestyle-Job, der eine ‚Hallo Welt!‘-Nachricht in die Jenkins-Konsole ausgibt.
Um ein Job-DSL-Skript in einen Jenkins-Saat-Job zu integrieren:
1. Navigieren Sie zu Ihrem Jenkins-Dashboard und klicken Sie auf Neues Element in der linken Seitenleiste. Ihr Browser leitet Sie auf eine Seite weiter, auf der Sie ein neues Element erstellen können (Schritt zwei).

2. Erstellen Sie als nächstes ein neues Element mit den folgenden Schritten:
- Geben Sie einen Elementnamen ein, wie unten gezeigt. Der Elementname ist jedoch in diesem Tutorial auf seed festgelegt.
- Wählen Sie Freestyle-Projekt (einen wiederholbaren Build-Job, ein Skript oder eine Pipeline) aus den untenstehenden Optionen aus.
- Klicken Sie unten auf OK, um das neue Element zu erstellen, und Ihr Browser leitet Sie zur Konfigurationsseite des neuen Elements weiter.

3. Behalten Sie die Standardwerte für alle anderen Abschnitte auf der Konfigurationsseite des neuen Elements bei.
Scrollen Sie nach unten zum Abschnitt Build, klicken Sie auf die Dropdown-Schaltfläche Build-Schritt hinzufügen und wählen Sie Prozess Job DSLs aus. Dadurch wird eine Option geöffnet, in der Sie ein DSL-Skript bereitstellen (Schritt vier).

4. Wählen Sie nun die Option Das bereitgestellte DSL-Skript verwenden aus, wie unten gezeigt, und füllen Sie das folgende Code-Blockfeld aus.
Dieser Code-Block ist eine Freestyle-Jobdefinition mit dem Namen jenkins-job-demo-1, die den Shell-Schritt verwendet, um eine „Hallo Welt“-Nachricht auszugeben. Der Name des Jobs ist das, was im Jenkins-Benutzeroberfläche erscheinen wird.
Es gibt viele verfügbare Methoden, um verschiedene Arten von Jenkins-Jobs zu erstellen, die Sie in der offiziellen Dokumentation finden können.

5. Klicken Sie unten auf der Seite auf „Speichern“, um die Konfiguration für das neue Element (Seed) zu speichern.

6. Navigieren Sie schließlich zu Ihrem Jenkins-Dashboard, um zu überprüfen, ob der von Ihnen erstellte Seed-Job vorhanden ist, wie unten gezeigt.

Ausführen eines Seed-Jobs
Sie haben den Seed-Job erfolgreich erstellt und überprüft. Aber wie wissen Sie, ob der Job funktioniert? Sie führen den Seed-Job gegen das DSL-Skript aus, das Sie im vierten Schritt des Abschnitts „Erstellen eines Jenkins-Seed-Jobs mit dem Jenkins DSL-Plugin“ bereitgestellt haben.
1. Klicken Sie in Ihrem Jenkins-Dashboard auf den Seed-Job, um zur Konfigurationsseite zu gelangen.

2. Klicken Sie anschließend in der linken Seitenleiste auf „Jetzt erstellen“, um den Job auszuführen.

3. Drücken Sie F5, um die Seite zu aktualisieren. Sie sehen einen neuen Build unter dem Abschnitt „Build-Verlauf“ mit einem Erfolgsstatus (grünes Häkchen) unten links, wie unten gezeigt.
Diese Ausgabe zeigt an, dass der Seed-Job erfolgreich ausgeführt wurde und einen neuen Jenkins-Job (jenkins-job-demo-1) unter dem Abschnitt „Generierte Elemente“ erstellt hat.

4. Navigieren Sie nun zu Ihrem Jenkins-Dashboard. Wie unten gezeigt, sehen Sie den neuen Jenkins-Job (jenkins-job-demo-1), der vom Seed-Job erstellt wurde.
Klicken Sie auf den neu generierten Job, um auf seine Konfigurationsseite zuzugreifen.

5. Klicken Sie auf „Jetzt erstellen“, um den generierten Job (jenkins-job-demo-1) auszuführen.

6. Klicken Sie abschließend auf die Pfeiltaste nach unten neben dem erfolgreichen Build unter dem Abschnitt „Build-Verlauf“, wie Sie unten sehen. Wählen Sie im Kontextmenü „Konsolenausgabe“ aus, um die Ausgabe des Jobs anzuzeigen.

Wenn der generierte Job funktioniert, sehen Sie die Meldung „Hello World! This job is working!!“, wie unten gezeigt, was die von Ihnen im Job DSL-Skript definierte Nachricht ist.
An diesem Punkt haben Sie erfolgreich einen Jenkins-Job mit dem Job DSL-Plugin erstellt und ausgeführt!

Erstellen eines Jobs für eine CI/CD-Pipeline mit dem Jenkins DSL-Plugin
Bisher haben Sie gelernt, wie Sie einen Jenkins-Freestyle-Job mit dem Job DSL-Plugin erstellen und ausführen. Sie automatisieren den nichtmenschlichen Teil des Softwareentwicklungsprozesses, indem Sie einen Jenkins-Job für eine CI/CD-Pipeline erstellen.
Konkret erstellen Sie einen Job, der Code aus einem GitHub-Repository abruft, den Code erstellt und die Unit-Tests ausführt.
Um einen Jenkins-Job für die CI/CD-Pipeline zu erstellen:
1. Rufen Sie in Ihrem Webbrowser die Adresse http://your_server_ip:8080/job/seed/configure auf, um Ihren Seed-Job zu konfigurieren. Ersetzen Sie your_server_ip durch die IP-Adresse Ihres Jenkins-Servers und ersetzen Sie seed durch den Namen Ihres Jobs.
2. Scrollen Sie anschließend zum Abschnitt „Build“ nach unten, suchen Sie das Feld „DSL-Skripte“ und ersetzen Sie den vorhandenen Inhalt durch den folgenden Code.
Klicken Sie auf „Speichern“, sobald Sie den Code hinzugefügt haben, um die Änderungen zu speichern.

3. Klicken Sie auf Build Now in der linken Seitenleiste auf dem nächsten Bildschirm, um den Seed-Job erneut auszuführen, wie unten gezeigt. Unter dem Abschnitt Build-Historie (unten links) sehen Sie, dass der Seed-Job erfolgreich ausgeführt wurde.
Klicken Sie auf den neuen Build (#2), um auf die Konfigurationsseite des Builds zuzugreifen.

4. Navigieren Sie nun zur Konsoleausgabe des neuen Builds. Sie sehen eine Nachricht „Added items“ und den Namen des neuen Jobs, wie unten gezeigt.
Diese Ausgabe zeigt an, dass der neue Pipeline-Job erfolgreich hinzugefügt wurde.

5. Gehen Sie zurück zum Jenkins-Dashboard, und Sie sehen den neuen Pipeline-Job hinzugefügt (jenkins-job-demo-2) in der Liste der Jobs. Klicken Sie auf diesen neuen Pipeline-Job, um auf die Konfigurationsseite des Jobs zuzugreifen.

6. Klicken Sie abschließend auf Build Now, um den neuen Pipeline-Job auszuführen. Sie werden sehen, dass der Job erfolgreich ausgeführt wurde, wie im Abschnitt Build-Historie angezeigt.
Klicken Sie auf den Dropdown-Pfeil neben dem Job und wählen Sie Konsoleausgabe.

In der Konsoleausgabe unten sehen Sie die Ausgabe des Jobs, dass Jenkins das Repository erfolgreich geklont, den Code erstellt und die Unit-Tests ausgeführt hat.

Fazit
In diesem Tutorial haben Sie gelernt, wie Sie Jenkins-Jobs mit dem Job DSL-Plugin erstellen. Sie haben die Verbesserung der Anwendungsentwicklung durch die Erstellung einer CI/CD-Pipeline mit dem Jenkins Pipeline-Plugin angesprochen.
Das Job DSL-Plugin und das Jenkins Pipeline-Plugin arbeiten zusammen, um eine leistungsstarke Möglichkeit zu bieten, mit der Sie Jenkins-Jobs und Build-Pipelines verwalten können. Warum konfigurieren Sie diese Plugins nicht so, dass sie anspruchsvolle Build-Pipelines erstellen, die Jenkins-Jobs automatisch als Teil des Build-Prozesses auslösen?