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

JavaScript zum Erzielen eines Fensteranzeigeeffekts

In diesem Artikel wird der spezifische JavaScript...

So erstellen Sie Ihren eigenen nativen JavaScript-Router

Inhaltsverzeichnis Vorwort Einführung JavaScript ...

Detaillierte Erläuterung zum Einrichten des Ressourcencaches in Nginx

Ich wollte schon immer etwas über Caching lernen....

Detaillierte Analyse und Verwendung des Befehls tcpdump unter Linux

Einführung Einfach ausgedrückt ist tcpdump ein Pa...

Vor- und Nachteile von bedingten Kommentaren im Internet Explorer

Die bedingten Kommentare des Internet Explorers s...

Verwenden Sie CSS, um zwischen dem Dunkelmodus und dem Hellmodus zu wechseln

In der fünften Ausgabe von Web Skills wird ausdrü...

So verwenden Sie Nginx zum Simulieren der Canary-Freigabe

Dieser Artikel stellt die Blue-Green-Bereitstellu...