So richten Sie einen neuen Jenkins-Build-Agenten ein

Sind Ihnen die Jenkins-Ausführer ausgegangen oder stecken Ihre Jenkins-Windows-Jobs in der Warteschleife fest? Falls ja, müssen Sie mehr Jenkins-Agenten einrichten.

In diesem Tutorial erfahren Sie, wie Sie einen Jenkins-Agenten-Windows-Knoten hinzufügen, um den stetig wachsenden Ressourcenbedarf Ihrer Software-Build-Umgebung zu unterstützen!

Voraussetzungen

Um diesem Artikel zu folgen, benötigen Sie Folgendes.

  • Funktionierende Installation eines Jenkins-Controllers mit einer Version von 2.176.1 oder höher. In diesem Artikel wird der Controller als Masterknoten bezeichnet.
  • Beliebige unterstützte Windows-Betriebssysteminstallation, die als Jenkins-Agentenknoten bezeichnet wird.

Was sind Jenkins-Agenten und der Jenkins-Agenten-Controller?

A core component of Jenkins is the job. Jobs are instances of build automation that run a defined set of tasks. Supporting different job configurations requires an automation system to distribute build jobs among different nodes, which is simply an environment containing a Jenkins agent or controller.

Jenkins-Agenten laufen auf verschiedenen Umgebungen wie physischen Maschinen, virtuellen Maschinen, Kubernetes-Clustern und Docker-Images. Ein Jenkins-Agent ist eine ausführbare Datei auf einem Knoten, die vom Controller beauftragt wird, einen Job auszuführen.

Die Verwaltung der verschiedenen Jenkins-Agenten ist die Aufgabe des Agentencontrollers, der auch als Master-Knoten bekannt ist. In einer einzigen Jenkins-Knotenkonfiguration kann der Controller auch als Jenkins-Agent fungieren und Build-Jobs ausführen. Bei komplexeren Umgebungen wird diese Konfiguration jedoch einschränkend.

Verhindern, dass der Controller-Master-Knoten Jobs ausführt

Bevor Sie einen weiteren Jenkins-Agenten hinzufügen können, müssen Sie zuerst den Master-Knoten aus dem Build-Agenten-Pool entfernen. Durch das Entfernen des Master-Knotens aus diesem Pool wird sichergestellt, dass der Controller über ausreichende Ressourcen verfügt, um Build-Jobs zu koordinieren. Im Folgenden werden die erforderlichen Einstellungen erläutert, um zu verhindern, dass der Master-Knoten einen Job ausführt.

  1. Gehen Sie über einen Browser zur Jenkins-Benutzeroberfläche. In diesem Tutorial verwendet der Jenkins-Controller die Adresse 192.168.x.x:8080.
Logging into the Jenkins Dashboard.

2. Sobald das Jenkins-Dashboard angezeigt wird, klicken Sie auf den Link „Jenkins verwalten“.

Navigate to Manage Jenkins.

3. Klicken Sie als Nächstes auf den Link „System konfigurieren“ im Abschnitt „Systemkonfiguration“.

Navigate to Configure System.

4. Scrollen Sie auf der Seite nach unten, um die Einstellung „# der Ausführenden“ zu finden, und setzen Sie den Wert auf 0. Dadurch wird der Master-Knoten bzw. der Controller dazu gezwungen, keine Build-Jobs auszuführen.

Set the # of executors option to 0.

5. Auf derselben Seite finden Sie die „Jenkins-URL“. Ändern Sie die URL in die IP-Adresse und den Port, die im Browser verwendet werden, anstatt localhost:8080.

Ein Agentenknoten kann versuchen, `localhost` anstelle der richtigen IP zu verwenden, wenn er falsch konfiguriert ist. Mit der richtigen IP-Adresse konfiguriert, können zukünftige Kommunikationsprobleme des Agenten vermieden werden!

Update the Jenkins URL to the proper IP address.

6. Klicken Sie auf Speichern, um die aktualisierten Einstellungen zu bestätigen und anzuwenden.

Festlegen des TCP-Ports für eingehende Agenten

Um den Windows Jenkins-Agentenknoten mitzuteilen, wie der Jobdienst am besten gestartet und wieder mit dem Controller kommuniziert werden soll, müssen Sie die TCP-Eingangsporteinstellungen konfigurieren. Das Definieren der TCP-Eingangsporteinstellungen stellt sicher, dass der Jenkins-Agent weiß, wie er sich über das Netzwerk mit dem Jenkins-Controller verbinden kann.

  1. Navigieren Sie erneut von der Jenkins-Dashboard zur Konfigurationsseite von „Jenkins verwalten“.

2. Klicken Sie wie unten gezeigt auf den Abschnitt „Globale Sicherheit konfigurieren“, um die TCP-Portoptionen zu finden.

Navigate to the Configure Global Security section.

3. Scrollen Sie nach unten, um den Abschnitt „Agenten“ und den TCP-Port für eingehende Agenten zu finden. Ändern Sie die Option von Deaktivieren auf Zufällig. Mit der Zufallseinstellung wählt Jenkins eine zufällige verfügbare Portnummer aus und teilt diese Portnummer einem Agenten während seiner ersten Verbindung zum Jenkins-HTTP-Port mit.

Modify the TCP port for inbound agents setting to Random.

4. Klicken Sie abschließend auf die Schaltfläche Speichern, um die aktualisierte Einstellung anzuwenden.

Erstellen eines neuen Jenkins-Agentenknotens auf dem Jenkins-Controller

Mit allen entsprechenden Einstellungen konfiguriert, ist es Zeit, Ihren neuen Jenkins-Agentenknoten zu erstellen. Erstellen Sie zunächst das Arbeitsverzeichnis auf dem Windows-Knoten. Auf dem Windows-Knoten erstellen Sie das Verzeichnis C:\Jenkins.

Sobald das Arbeitsverzeichnis erstellt wurde, befolgen Sie die unten stehenden Schritte, um Ihren neuen Knoten zu konfigurieren!

  1. Vom Jenkins-Dashboard aus klicken Sie auf den Link Verwalten von Knoten und Clouds.
Navigate to Manage Nodes and Clouds.

2. Klicken Sie auf den Link Neuer Knoten im linken Menü. Mit nur dem Controller als Agent wird in der Knotenliste anfangs nur der Master-Knoten angezeigt.

Add a New Node to Jenkins.

3. Geben Sie einen Knotennamen ein, der für dieses Tutorial „MyWindowsAgent1“ lautet, Sie können jedoch einen passenderen Bezeichner für Ihre Umgebung verwenden, und wählen Sie die Option Permanenter Agent aus. Bei zusätzlichen Agenten sehen Sie möglicherweise auch eine Option Vorhandenen Knoten kopieren. Klicken Sie abschließend auf die Schaltfläche OK.

Enter the node name and type.

4. Konfigurieren Sie den neuen Agenten mit den folgenden Einstellungen. Die grün hervorgehobenen Optionen sind die Standardwerte.

  • Anzahl der Ausführer: Entspricht in der Regel der Anzahl der Agentenkerne. Ein praktischer PowerShell-Schnipsel, um dies zu ermitteln, ist unten aufgeführt.
Get-CimInstance -ClassName Win32_Processor | Select-Object -Property Number*
  • Remote-Arbeitsverzeichnis: C:\Jenkins
  • Startmethode: Agenten durch Verbindung zum Master starten.
Configure the new Jenkins Agent node.

In einem kürzlich erschienenen Lösungsartikel auf Cloudbees.com wurden die Startoptionen für Agenten in Versionen nach 2.176.1 geändert. Das „Agent über Web Start starten“ ist nun „Agent starten, indem Sie sich mit dem Master verbinden„.

5. Klicken Sie auf die Speichern-Schaltfläche und wechseln Sie zur Bildschirmseite mit der Node-Liste, auf der der neue Windows Jenkins-Agentenknoten angezeigt wird.

6. Klicken Sie auf den Namen des neuen Knotens, MyWindowsAgent1, um die Links zur Agenteninstallation abzurufen.

Navigate to the new Windows node.

7. Öffnen Sie jetzt eine Remote-Desktop (RDP)-Verbindung zum Windows-Knoten, auf dem der Jenkins-Agent gehostet wird.

8. Gehen Sie zu http://controllerip:port/computer/nodename, über einen Browser, auf dem baldigen Windows-Agenten.

9. Klicken Sie auf die Starten-Schaltfläche, um den Agenten-Installer herunterzuladen und die Jenkins-Agenteninstallation zu starten.

Utilize the instructions and links to install the agent.

Nächste Schritte

Es gibt viele Möglichkeiten, Ihre neu gewonnenen Agenten zu nutzen. Von der Ausführung von PowerShell-Skripten in Jenkins bis zur Ausführung von Jenkins in Docker werden Sie feststellen, dass es viele Möglichkeiten gibt, Ihre Build-Umgebung zu automatisieren!

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