Fokussierte Jobkonfiguration mit dem Jenkins DSL-Plugin

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.
  • Java 11+ und Jenkins auf Ihrer Linux-Maschine installiert.
  • Git zum Integrieren von Jenkins mit Git-Repositories.
  • Pipeline: Job, um das Suite von Plugins für Pipelines hinzuzufügen, die zur Implementierung und Integration von kontinuierlichen Bereitstellungspipelines in Jenkins verwendet werden.

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.

java -version && systemctl status jenkins

Sie sind bereit, das Jenkins DSL-Plugin zu installieren, wenn Sie eine Ausgabe ähnlich der untenstehenden sehen.

Checking Java version and Jenkins status

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.
Installing the Jenkins DSL plugin

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.

Viewing Jenkins DLS Plugin Installation Progress

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).

Adding a New Item

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.
Creating seed job

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).

Selecting process job DSLs

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.

// Sets the API method you want to use (job)
job('jenkins-job-demo-1') { // Sets the name of the job to jenkins-job-demo-1
	// Define what the job does
  steps {
		// Prints a message
    shell('echo Hello World! This job is working!!')
  }
}

Es gibt viele verfügbare Methoden, um verschiedene Arten von Jenkins-Jobs zu erstellen, die Sie in der offiziellen Dokumentation finden können.

Providing the DSL Script

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

Saving Configuration

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.

Verifying the seed Job

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.

Navigating into the seed Job Page

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

Running the Seed Job

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.

Viewing the See Job Works and Generated a New Job

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.

Verifying See Job’s Generated Job

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

Running the Generated Job (jenkins-job-demo-1)

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.

Accessing Console Output of the Generated Job (jenkins-job-demo-1)

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!

Viewing Console Output

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.

job('jenkins-job-demo-2') {
    steps {
        shell('echo Hello World!')
    }
}

pipelineJob('github-demo') {
    definition {
        cpsScm {
            scm {
                git {
                    remote {
                        github('jenkinsci/pipeline-examples')
                    }
                }
            }
            scriptPath('declarative-examples/simple-examples/environmentInStage.groovy')
        }
    }
}

Klicken Sie auf „Speichern“, sobald Sie den Code hinzugefügt haben, um die Änderungen zu speichern.

Providing DSL Script for a Pipeline

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.

Rerunning the seed Job

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.

Verifying the New Pipeline Job was Added Successfully

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.

Verifying the New Jenkins Job Exists

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.

Running the New Jenkins Job

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.

Viewing Console Output of the Pipeline Job

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?

Source:
https://adamtheautomator.com/jenkins-dsl/