Lernprogramm: Skalieren von Jenkins-Bereitstellungen mit virtuellen Computern, die in Azure ausgeführt werden
Wichtig
Viele Azure-Dienste verfügen über Jenkins-Plug-Ins. Einige dieser Plug-Ins werden ab dem 29. Februar 2024 nicht mehr unterstützt. Die Azure CLI ist die derzeit empfohlene Methode zur Integration von Jenkins in Azure-Dienste. Weitere Informationen finden Sie im Artikel Jenkins-Plug-Ins für Azure.
In diesem Tutorial erfahren Sie, wie Sie einen virtuellen Linux-Computer in Azure erstellen und ihn Jenkins als Arbeitsknoten hinzufügen.
In diesem Tutorial erhalten Sie Informationen zu den folgenden Vorgängen:
- Erstellen des Agent-Computers
- Hinzufügen des Agents zu Jenkins
- Erstellen eines neuen Jenkins-Freestyle-Auftrags
- Ausführen des Auftrags in einem Azure-VM-Agent
Voraussetzungen
- Jenkins-Installation: Wenn Sie keinen Zugriff auf eine Jenkins-Installation haben, konfigurieren Sie Jenkins mit Azure CLI.
Konfigurieren des virtuellen Agent-Computers
Verwenden Sie az group create, um eine Azure-Ressourcengruppe zu erstellen.
az group create --name <resource_group> --location <location>
Verwenden Sie az vm create, um einen virtuellen Computer zu erstellen.
az vm create --resource-group <resource-group> --name <vm_name> --image UbuntuLTS --admin-username azureuser --admin-password "<password>"
Die wichtigsten Punkte:
- Mit dem folgenden Befehl können Sie auch Ihren SSH-Schlüssel hochladen:
--ssh-key-value <ssh_path>
.
- Mit dem folgenden Befehl können Sie auch Ihren SSH-Schlüssel hochladen:
Installieren Sie das JDK.
Melden Sie sich über ein SSH-Tool bei dem virtuellen Computer an.
ssh username@123.123.123.123
Installieren Sie das JDK mit apt. Für die Installation können auch andere Paket-Manager wie etwa yum oder pacman verwendet werden.
sudo apt-get install -y default-jdk
Führen Sie nach Abschluss der Installation
java -version
aus, um die Java-Umgebung zu überprüfen. Die Ausgabe enthält die Versionsnummern diverser Komponenten des JDK.
Konfigurieren der Jenkins-URL
Bei Verwendung von JNLP muss die Jenkins-URL konfiguriert werden.
Wählen Sie im Menü die Option Manage Jenkins (Jenkins verwalten) aus.
Wählen Sie unter System Configuration (Systemkonfiguration) die Option Configure System (System konfigurieren) aus.
Vergewissern Sie sich, dass die Jenkins-URL auf die HTTP-Adresse Ihrer Jenkins-Installation festgelegt ist:
http://<your_host>.<your_domain>:8080/
.Wählen Sie Speichern aus.
Hinzufügen des Agents zu Jenkins
Wählen Sie im Menü die Option Manage Jenkins (Jenkins verwalten) aus.
Wählen Sie unter System Configuration (Systemkonfiguration) die Option Manage Nodes and Clouds (Knoten und Clouds verwalten) aus.
Wählen Sie im Menü die Option New Node (Neuer Knoten) aus.
Geben Sie unter Node Name (Knotenname) einen Wert ein.
Wählen Sie Permanent Agent (Dauerhafter Agent) aus.
Wählen Sie OK aus.
Geben Sie Werte für die folgenden Felder an:
Name: Geben Sie einen eindeutigen Namen an, der einen Agent innerhalb der neuen Jenkins-Installation identifiziert. Dieser Wert kann sich vom Hostnamen des Agents unterscheiden. Es empfiehlt sich jedoch, für beides den gleichen Wert zu verwenden. Der Namenswert kann beliebige Sonderzeichen aus der folgenden Liste enthalten:
?*/\%!@#$^&|<>[]:;
.Remotestammverzeichnis: Ein Agent muss über ein Verzeichnis verfügen, das Jenkins zugeordnet ist. Geben Sie den Pfad zu diesem Verzeichnis auf dem Agent an. Es empfiehlt sich, einen absoluten Pfad wie
/home/azureuser/work
oderc:\jenkins
zu verwenden. Hierbei sollte es sich um einen lokalen Pfad für den Agent-Computer handeln. Der Pfad muss vom Master aus nicht sichtbar sein. Bei Verwendung eines relativen Pfads wie „./jenkins-agent“ ist der Pfad relativ zu dem Arbeitsverzeichnis, das durch die Startmethode bereitgestellt wird.Bezeichnungen: Bezeichnungen werden verwendet, um semantisch verwandte Agents in einer logischen Gruppe zu gruppieren. Beispielsweise können Sie die Bezeichnung
UBUNTU
für alle Ihre Agents definieren, auf denen die Ubuntu-Distribution von Linux ausgeführt wird.Startmethode: Es gibt zwei Optionen zum Starten des Remote-Jenkins-Knotens: Starten sie Agents über SSH und Launch-Agent über die Ausführung des Befehls auf dem Master:
Starten von Agents über SSH: Geben Sie die Werte für die folgenden Felder an:
Host: Öffentliche IP-Adresse des virtuellen Computers oder ausführen Standard Name. Beispiel:
123.123.123.123
oderexample.com
Anmeldeinformationen: Wählen Sie eine Anmeldeinformationen aus, die für die Anmeldung beim Remotehost verwendet werden sollen. Sie können auch die Schaltfläche Add (Hinzufügen) auswählen, neue Anmeldeinformationen definieren und dann die neu erstellten Anmeldeinformationen auswählen.
Überprüfungsstrategie für Hostschlüssel: Steuert, wie Jenkins den SSH-Schlüssel überprüft, der vom Remotehost während der Verbindung angezeigt wird.
Launch agent via execution of command on the master (Agent per Befehlsausführung auf dem Master starten):
Laden Sie die
agent.jar
Datei vonhttps://<your_jenkins_host_name>/jnlpJars/agent.jar
. Beispiel:https://localhost:8443/jnlpJars/agent.jar
.Laden Sie
agent.jar
auf Ihren virtuellen Computer hoch.Starten Sie Jenkins mithilfe des Befehls
ssh <node_host> java -jar <remote_agentjar_path>
. Beispiel:ssh azureuser@99.99.999.9 java -jar /home/azureuser/agent.jar
.
Wählen Sie Speichern aus.
Nach Abschluss der Konfiguration wird der virtuelle Computer von Jenkins als neuer Arbeitsknoten hinzugefügt.
Erstellen eines Auftrags in Jenkins
Wählen Sie im Menü die Option New Item (Neues Element) aus.
Geben Sie
demoproject1
als Namen ein.Klicken Sie auf Freestyle Project (Freestyle-Projekt).
Wählen Sie OK aus.
Wählen Sie auf der Registerkarte General die Option Restrict where this project can be run aus, und geben Sie
ubuntu
in Label Expression ein. In einer Meldung wird bestätigt, dass die Bezeichnung von der im vorherigen Schritt erstellten Cloudkonfiguration unterstützt wird.Wählen Sie auf der Registerkarte Source Code Management die Option Git aus, und geben Sie im Feld Repository URL die folgende URL ein:
https://github.com/spring-projects/spring-petclinic.git
Wählen Sie auf der Registerkarte Build die Option Add build step und dann Invoke top-level Maven targets aus. Geben Sie
package
in das Feld Goals ein.Wählen Sie Speichern aus.
Erstellen des neuen Auftrags in einem Azure-VM-Agent
Wählen Sie den im vorherigen Schritt erstellten Auftrag aus.
Wählen Sie Build now aus. Daraufhin wird ein neuer Buildvorgang in die Warteschlange eingereiht. Er wird jedoch erst gestartet, wenn in Ihrem Azure-Abonnement ein virtueller Agent-Computer erstellt wird.
Nachdem der Build abgeschlossen ist, wechseln Sie zu Console output (Konsolenausgabe). Sie sehen, dass der Build remote in einem Azure-Agent ausgeführt wurde.