Konfiguration von Tools und gelabelten Agents

Beginner

Einführung

Jenkins kann Builds auf verschiedenen Nodes (Knoten) ausführen. Labels beschreiben die Fähigkeiten eines Nodes, wie zum Beispiel linux-build. Jobs können ein passendes Label erfordern, bevor Jenkins sie einplant. Jenkins speichert zudem Tool-Installationen, wie etwa Git, sodass Jobs und Plugins auf ein benanntes Tool verweisen können, anstatt sich auf einen fest kodierten Pfad verlassen zu müssen.

In diesem Lab verwenden Sie das Jenkins-Dashboard, um den Built-in-Node zu überprüfen, ein Node-Label hinzuzufügen, ein lokales Git-Tool zu konfigurieren, einen Freestyle-Job mit Label-Einschränkung zu erstellen und die Build-Ausgabe zu bestätigen.

Die Seite des Built-in-Node öffnen

In diesem Schritt finden Sie den integrierten Jenkins-Node (Built-in Node) im Dashboard. Ein Node ist ein Ort, an dem Jenkins Builds ausführen kann. Dieses Lab verwendet den Built-in-Node, da dieser im LabEx Jenkins-Controller bereits online ist.

Öffnen Sie die Desktop-Oberfläche. Firefox öffnet Jenkins automatisch. Falls nicht, öffnen Sie http://localhost:8080.

Vom Jenkins-Dashboard aus:

Klicken Sie in der linken Seitenleiste auf Manage Jenkins und dann auf Nodes. Öffnen Sie den Node mit dem Namen Built-In Node.

Die Node-Seite sollte den Status des Built-in-Node sowie Navigationsoptionen wie Configure und Build History anzeigen.

Jenkins built-in node page

Führen Sie diesen Befehl im Terminal aus, um zu protokollieren, dass die Seite des Built-in-Node erreichbar ist:

curl -fsS http://localhost:8080/computer/%28built-in%29/ | grep -o 'Built-In Node' | head -1 | tee /home/labex/project/built-in-node-page.txt

Sie sollten Folgendes sehen:

Built-In Node

Ein Label zum Built-in-Node hinzufügen

In diesem Schritt fügen Sie dem Built-in-Node das Label linux-build hinzu. Ein Label ist ein Tag für die Zeitplanung. Jobs, die linux-build erfordern, können nur auf Nodes ausgeführt werden, die dieses Label besitzen.

Klicken Sie auf der Seite Built-In Node auf Configure.

Suchen Sie das Feld Labels und geben Sie Folgendes ein:

linux-build

Klicken Sie auf Save.

Nach dem Speichern kehrt Jenkins zur Seite des Built-in-Node zurück. Die Seite sollte nun das Label linux-build anzeigen.

Jenkins built-in node label

Ein lokales Git-Tool konfigurieren

In diesem Schritt registrieren Sie ein Jenkins Git-Tool mit dem Namen Local Git. Die Tool-Konfiguration ermöglicht es Jenkins, auf eine benannte Installation zu verweisen, anstatt zu raten, welche ausführbare Datei verwendet werden soll.

Vom Jenkins-Dashboard aus:

Klicken Sie auf Manage Jenkins und dann auf Tools.

Scrollen Sie zum Abschnitt Git installations. Falls bereits eine Git-Installation existiert, aktualisieren Sie die erste. Falls der Abschnitt keine Installation enthält, klicken Sie auf Add Git.

Füllen Sie die Git-Installation mit diesen Werten aus:

  • Name: Local Git
  • Path to Git executable: git

Klicken Sie auf Save.

Jenkins speichert diese Tool-Definition in seiner Controller-Konfiguration.

Jenkins local Git tool

Führen Sie diesen Befehl aus, um die gespeicherte Git-Tool-Konfiguration zu überprüfen:

docker exec jenkins sh -lc "grep -n -E '<name>Local Git</name>|<home>git</home>' /var/jenkins_home/hudson.plugins.git.GitTool.xml" | tee /home/labex/project/git-tool-lines.txt

Die Ausgabe sollte sowohl den Tool-Namen als auch den Pfad zur ausführbaren Datei enthalten:

...<name>Local Git</name>
...<home>git</home>

Einen Job mit Label-Einschränkung erstellen

In diesem Schritt erstellen Sie einen Freestyle-Job namens labeled-tool-demo. Der Job wird auf Nodes mit dem Label linux-build beschränkt, sodass Jenkins ihn auf dem gelabelten Built-in-Node einplanen muss.

Vom Jenkins-Dashboard aus:

Klicken Sie auf New Item, geben Sie labeled-tool-demo ein, wählen Sie Freestyle project und klicken Sie auf OK.

Auf der Konfigurationsseite:

Wählen Sie Restrict where this project can be run. Geben Sie unter Label Expression Folgendes ein:

linux-build

Scrollen Sie zu Build Steps, klicken Sie auf Add build step und wählen Sie Execute shell.

Geben Sie dieses Shell-Skript ein:

echo "Running on label: linux-build"
git --version
echo "Local Git is available to this build"

Klicken Sie auf Save.

Nach dem Speichern sollte die Job-Seite geöffnet werden.

Jenkins labeled Freestyle job

Führen Sie diesen Befehl aus, um die wichtigen gespeicherten Job-Einstellungen zu protokollieren:

docker exec jenkins sh -lc "grep -n -E '<assignedNode>linux-build</assignedNode>|Running on label: linux-build|git --version' /var/jenkins_home/jobs/labeled-tool-demo/config.xml" | tee /home/labex/project/labeled-job-config.txt

Den gelabelten Job ausführen

In diesem Schritt führen Sie den Job aus und lesen die Konsolenausgabe. Dies beweist, dass Jenkins die Label-Einschränkung akzeptiert hat und der Build Git aus der konfigurierten Umgebung ausführen kann.

Klicken Sie auf der Job-Seite labeled-tool-demo auf Build Now.

Wenn Build #1 in der Build-Historie erscheint, öffnen Sie ihn und klicken Sie auf Console Output. Die Konsole sollte die Label-Meldung, eine git version-Zeile und Finished: SUCCESS anzeigen.

Jenkins labeled job console output

Führen Sie diesen Befehl im Terminal aus, um denselben Konsolenbeleg zur Überprüfung zu speichern:

curl -fsS http://localhost:8080/job/labeled-tool-demo/1/consoleText | grep -E 'Running on label|git version|Finished: SUCCESS' | tee /home/labex/project/labeled-job-console.txt

Sie sollten eine Ausgabe wie diese sehen:

Running on label: linux-build
git version ...
Finished: SUCCESS

Zusammenfassung

Sie haben den integrierten Jenkins-Node überprüft, über das Dashboard ein linux-build-Label hinzugefügt, ein benanntes lokales Git-Tool konfiguriert, einen Freestyle-Job mit Label-Einschränkung erstellt und die erfolgreiche Build-Ausgabe verifiziert.