Erstellen eines statischen Jenkins Docker-Agentknotens

Erstellen eines statischen Jenkins Docker-Agentknotens

Ein statischer Knoten ist auf einer Maschine fixiert und wird durch einige feste Befehle gestartet. Ein dynamischer Knoten hat mehrere Aufgaben und kann Ihnen dabei helfen, mehrere auszuführende Agenten zu erstellen. Im Gegensatz zu statischen Knoten warten mehrere eingehende Aufgaben in der Aufgabenwarteschlange und führen dann den Build aus. Dies ist der Unterschied zwischen statisch und dynamisch.

Der statische Knoten kann mit dem Befehl java -jar gestartet werden.

1. Praxis mit statischen Knoten

Erstellen Sie zunächst einen Agenten vom Typ JNLP in Jenkins und rufen Sie die für die Verbindung erforderlichen Authentifizierungs- und Schlüsselinformationen ab.

Nach dem Befehl „jar -jar“ gibt es viele Parameter, die verwendet werden, unabhängig davon, ob Sie dynamische oder statische Knoten konfigurieren.

java -jar agent.jar -jnlpUrl http://192.168.1.200:8080/computer/buildtest01/jenkins-agent.jnlp -secret 047a2627be5ee128c1a93f281051acc7bbbbd5221dcb56ae9fa408a494e72c2f -workDir "/home/jenkins"

1.1 Statischer Docker-Knoten

Starten Sie das Image und übergeben Sie die Authentifizierungsparameter. (Docker zu verwenden bedeutet eigentlich, ein Image zu verwenden, einen Agenten im Image auszuführen und dann diese Parameter daran zu übergeben)

Laden Sie das Paket agent.jar auf die virtuelle Maschine herunter und führen Sie diese Befehle manuell aus.

Starten Sie den Knoten in der Befehlszeile java -jar agent.jar -jnlpUrl http://139.198.166.235:8080/computer/build%2D02/jenkins-agent.jnlp -secret 942d7e769a43f65388751ee954af20e90fa0c5f8bdb19e0584db4cc61adab8ba -workDir "/var/jenkins"
Von der Agent-Befehlszeile aus ausführen, wobei das Geheimnis in einer Datei gespeichert sein muss:
 
echo 942d7e769a43f65388751ee954af20e90fa0c5f8bdb19e0584db4cc61adab8ba > geheime Datei
java -jar agent.jar -jnlpUrl http://139.198.166.235:8080/computer/build%2D02/jenkins-agent.jnlp -secret @secret-file -workDir "/var/jenkins"

Wenn es sich in Docker befindet, müssen Sie ein Agent-Image finden: Inbound-Agent-Image: Docker Hub

## prüfen

[root@jenkins-agent ~]# docker run --init jenkins/inbound-agent -url http://139.198.166.235:8080 -workDir=/home/jenkins 942d7e769a43f65388751ee954af20e90fa0c5f8bdb19e0584db4cc61adab8ba build-02
 
 
 
28. Okt. 2021, 02:19:25 Uhr hudson.remoting.jnlp.Main createEngine
INFO: Agent wird eingerichtet: build-02
28. Okt. 2021, 02:19:25 Uhr hudson.remoting.jnlp.Main$CuiListener <init>
INFO: Der Jenkins-Agent läuft im Headless-Modus.
28. Okt. 2021 02:19:25 hudson.remoting.Engine startEngine
INFO: Verwendet wird die Remoting-Version: 4.11
28. Okt. 2021, 02:19:25 Uhr org.jenkinsci.remoting.engine.WorkDirManager initializeWorkDir
INFO: Verwenden von /home/jenkins/remoting als Remoting-Arbeitsverzeichnis
28. Okt. 2021, 02:19:25 Uhr org.jenkinsci.remoting.engine.WorkDirManager setupLogging
INFO: Sowohl Fehler- als auch Ausgabeprotokolle werden nach /home/jenkins/remoting gedruckt.
28. Okt. 2021, 02:19:25 Uhr hudson.remoting.jnlp.Main$CuiListener-Status
INFO: Server wird unter [http://139.198.166.235:8080/] gesucht.
28. Okt. 2021, 02:19:25 Uhr org.jenkinsci.remoting.engine.JnlpAgentEndpointResolver lösen
INFO: Der Remoting-Server akzeptiert die folgenden Protokolle: [JNLP4-connect, Ping]
28. Okt. 2021, 02:19:25 Uhr hudson.remoting.jnlp.Main$CuiListener-Status
INFO: Agentenerkennung erfolgreich
  Agentenadresse: 139.198.166.235
  Agent-Port: 50000
  Identität: 67:e8:d2:73:d1:cf:01:f6:6c:a4:cb:b3:0f:25:8c:3d
28. Okt. 2021, 02:19:25 Uhr hudson.remoting.jnlp.Main$CuiListener-Status
INFO: Händeschütteln
28. Okt. 2021, 02:19:25 Uhr hudson.remoting.jnlp.Main$CuiListener-Status
INFO: Verbindung zu 139.198.166.235:50000 wird hergestellt
28. Okt. 2021, 02:19:25 Uhr hudson.remoting.jnlp.Main$CuiListener-Status
INFO: Versuch Protokoll: JNLP4-connect
28. Okt. 2021, 02:19:25 Uhr org.jenkinsci.remoting.protocol.impl.BIONetworkLayer$Reader ausführen
INFO: Warte auf den Start von ProtocolStack.
28. Okt. 2021, 02:19:26 Uhr hudson.remoting.jnlp.Main$CuiListener-Status
INFO: Remote-Identität bestätigt: 67:e8:d2:73:d1:cf:01:f6:6c:a4:cb:b3:0f:25:8c:3d
28. Okt. 2021, 02:19:26 Uhr hudson.remoting.jnlp.Main$CuiListener-Status
INFO: Verbunden 

## Laufen

[root@jenkins-agent ~]# docker run -itd --name build-02 jenkins/inbound-agent -url http://139.198.166.235:8080 -workDir=/home/jenkins 942d7e769a43f65388751ee954af20e90fa0c5f8bdb19e0584db4cc61adab8ba build-02
bd2500223dabb45ff41c234a8871651f93b38264458c4d2bed40f821577b8944
 
 
[root@jenkins-agent ~]# docker ps
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
bd2500223dab jenkins/inbound-agent "/usr/local/bin/jenk?? vor 18 Sekunden Up 18 Sekunden build-02

Hierbei ist zu beachten, dass sich im statischen Docker-Agenten, wie etwa dem Build-Tool, nichts befindet.

[root@jenkins-agent ~]# docker exec -it build-02 bash
jenkins@bd2500223dab:~$ mvn
bash: mvn: Befehl nicht gefunden

Die Lösung besteht also darin, das Agent-Image als Basis-Image zu verwenden, das Build-Tool darin zu platzieren und es dann zu verwenden oder das Tool darin zu mounten.

docker run -itd --name build-02 \
-v /usr/local/apache-maven-3.8.1:/home/jenkins/apache-maven-3.8.1 \
jenkins/inbound-agent -url http://139.198.166.235:8080 -workDir=/home/jenkins 942d7e769a43f65388751ee954af20e90fa0c5f8bdb19e0584db4cc61adab8ba build-02

jenkins@2a682b01263b:~$ /home/jenkins/apache-maven-3.8.1/bin/mvn -v
Apache Maven 3.8.1 (05c21c65bdfed0f71a2f2ada8b84da59348c4c5d)
Maven-Startseite: /home/jenkins/apache-maven-3.8.1
Java-Version: 11.0.12, Anbieter: Eclipse Foundation, Laufzeit: /opt/java/openjdk
Standardgebietsschema: en, Plattformcodierung: UTF-8
Betriebssystemname: „Linux“, Version: „3.10.0-693.el7.x86_64“, Architektur: „amd64“, Familie: „Unix“

Verwenden Sie zum Mounten auf ähnliche Weise den Docker-Befehl.

Dies ist das Ende dieses Artikels zum Erstellen eines statischen Jenkins Docker-Agentenknotens. Weitere Informationen zu Jenkins Docker-Knoten finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Docker Gitlab+Jenkins+Harbor erstellt einen persistenten Plattformbetrieb
  • Automatisches Erstellen und Bereitstellen mit Docker+Jenkins
  • Beim Einrichten von Jenkins in einer Docker-Umgebung werden im Konsolenprotokoll beim Erstellen von Aufgaben verstümmelte chinesische Zeichen angezeigt
  • Detaillierte Erklärung zum Einrichten der Jenkins-Build-Umgebung unter Docker
  • Jenkins erstellt Docker-Image-Beispiel

<<:  Teilen Sie die Schatzkammer mit 16 englischen Schriftarten mit brennendem Flammeneffekt

>>:  Html Select verwendet das ausgewählte Attribut, um die Standardauswahl festzulegen

Artikel empfehlen

Schreiben Sie einen formellen Blog mit XHTML CSS

Der vollständige Name von Blog sollte Weblog sein,...

Lösung für die Ineffektivität der flexiblen Layoutbreite in CSS3

In Projekten wird häufig das zweispaltige Layout ...

CSS3 erzielt einen coolen 3D-Rotationsperspektiveneffekt

CSS3 erreicht coole 3D-Rotationsperspektive 3D-An...

Lernunterlagen zum Schreiben des ersten Vue-Programms

Inhaltsverzeichnis 1. Schreiben Sie ein HTML, das...

MySQL verwendet ein Limit, um die Beispielmethode für Paging zu implementieren

1. Grundlegende Implementierung des Limits Im All...

Mysql, einige komplexe SQL-Anweisungen (Abfragen und Löschen doppelter Zeilen)

1. Suchen Sie nach doppelten Zeilen Wählen Sie * ...

Grundlegendes Nutzungs-Tutorial zur IPTABLES-Firewall unter LINUX

Vorwort Für Produktions-VPS mit öffentlicher IP w...

Detaillierte Analyse des virtuellen Nginx-Hosts

Inhaltsverzeichnis 1. Virtueller Host 1.1 Virtuel...

Tutorial zur Installation von VMware Workstation 14 Pro unter Ubuntu 16.04

In diesem Artikel wird die spezifische Methode zu...

Detaillierte Erläuterung der CSS-Bildspleißtechnologie (Sprite-Bild)

CSS-Bildspleißtechnologie 1. Bildzusammenfügung B...

Lösung für das 404-Problem der Tomcat-Installation in Docker

Suchen Sie die Container-ID von Tomcat und rufen ...