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

Konfigurieren des virtuellen Agent-Computers

  1. Verwenden Sie az group create, um eine Azure-Ressourcengruppe zu erstellen.

    az group create --name <resource_group> --location <location>
    
  2. 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>.
  3. Installieren Sie das JDK.

    1. Melden Sie sich über ein SSH-Tool bei dem virtuellen Computer an.

      ssh username@123.123.123.123
      
    2. 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
      
    3. 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.

  1. Wählen Sie im Menü die Option Manage Jenkins (Jenkins verwalten) aus.

  2. Wählen Sie unter System Configuration (Systemkonfiguration) die Option Configure System (System konfigurieren) aus.

  3. Vergewissern Sie sich, dass die Jenkins-URL auf die HTTP-Adresse Ihrer Jenkins-Installation festgelegt ist: http://<your_host>.<your_domain>:8080/.

  4. Wählen Sie Speichern aus.

Hinzufügen des Agents zu Jenkins

  1. Wählen Sie im Menü die Option Manage Jenkins (Jenkins verwalten) aus.

  2. Wählen Sie unter System Configuration (Systemkonfiguration) die Option Manage Nodes and Clouds (Knoten und Clouds verwalten) aus.

  3. Wählen Sie im Menü die Option New Node (Neuer Knoten) aus.

  4. Geben Sie unter Node Name (Knotenname) einen Wert ein.

  5. Wählen Sie Permanent Agent (Dauerhafter Agent) aus.

  6. Wählen Sie OK aus.

  7. 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 oder c:\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 oder example.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.

        Node configuration example specifying a launch method of Launch agents via SSH.

      • Launch agent via execution of command on the master (Agent per Befehlsausführung auf dem Master starten):

        • Laden Sie die agent.jar Datei von https://<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.

        Node configuration example specifying a launch method of Launch agent via execution of command on the master.

  8. Wählen Sie Speichern aus.

Nach Abschluss der Konfiguration wird der virtuelle Computer von Jenkins als neuer Arbeitsknoten hinzugefügt.

Example of virtual machine as new work node

Erstellen eines Auftrags in Jenkins

  1. Wählen Sie im Menü die Option New Item (Neues Element) aus.

  2. Geben Sie demoproject1 als Namen ein.

  3. Klicken Sie auf Freestyle Project (Freestyle-Projekt).

  4. Wählen Sie OK aus.

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

    Setting up a new Jenkins job

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

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

  8. Wählen Sie Speichern aus.

Erstellen des neuen Auftrags in einem Azure-VM-Agent

  1. Wählen Sie den im vorherigen Schritt erstellten Auftrag aus.

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

  3. Nachdem der Build abgeschlossen ist, wechseln Sie zu Console output (Konsolenausgabe). Sie sehen, dass der Build remote in einem Azure-Agent ausgeführt wurde.

    Console output

Nächste Schritte