Wie man Jenkins Master und Slave auf Ubuntu einrichtet 18.04 LTS

Jenkins ist ein Automatisierungsserver, der aus dem Hudson-Projekt hervorgegangen ist und Unterstützung für viele SCM (Source Control Management) Softwaresysteme wie Git, SVN und Mercurial bietet. Jenkins bietet Hunderte von Plugins zur Automatisierung Ihres Projekts. Jenkins bietet Unterstützung für eine’Master/Slave‘-Architektur, die es ihm ermöglicht, eine große Anzahl von Projekt-Builds zu hosten.

Wie funktioniert Jenkins’Master/Slave‘?

Die Jenkins Master/Slave-Architektur wird für verteilte Build-Umgebungen verwendet, in denen die Arbeitsbelastung von Bauprojekten auf mehrere Agentenknoten verteilt ist, und wir können für jeden Build unterschiedliche Umgebungen verwenden.

In der Jenkins’master/slave‘ Architektur repräsentiert sich ein Master als eine grundlegende Jenkins Installation und übernimmt alle Aufgaben für das Build-System. Der Jenkins-Masterknoten wird für die Planung von Jobs, die Überwachung von Slave-Knoten, das Versenden von Builds an Slave-Knoten, die Aufzeichnung und Darstellung des Build-Ergebnisses sowie die direkte Ausführung von Build-Aufträgen verwendet.

Die Jenkins-Slave-Knoten, die für das Entladen von Build-Projekten vom Master eingerichtet wurden, und es ist eine Verbindung zwischen dem Master und den Slaves erforderlich. Jenkins Slave-Knoten können auf einer Vielzahl von Betriebssystemen wie Windows und Linux ausgeführt werden, und es besteht keine Notwendigkeit, vollständige Jenkins-Pakete darauf zu installieren.

In diesem Tutorial erfahren wir, wie man die Jenkins Master-Slave-Architektur mit der neuesten Ubuntu-Version Ubuntu 18.04 LTS einrichtet. Wir werden lernen, den Jenkins-Master-Server einzurichten und dann andere Ubuntu-Knoten als Jenkins-Slaves hinzuzufügen.

Voraussetzungen

  • Ubuntu 18.04.
    • Master – 10.0.15.10.10
    • slave01 – 10.0.15.21
    • slave02 – 10.0.15.15.22
  • Root-Rechte

Was werden wir tun?

  1. Jenkins Master installieren
  2. Jenkins Master-Anmeldeinformationen konfigurieren
  3. Slave-Agent-Knoten konfigurieren
  4. Neue Slave-Knoten hinzufügen
  5. Vorbereitung der Slave-Agent-Knoten zur Ausführung des Build-Vorgangs
  6. Prüfung

Schritt 1 – Jenkins Master installieren

In diesem Tutorial werden wir die grundlegende Jenkins-Installation nicht behandeln. Es gibt eine Reihe von Artikeln über HowtoForge, die die Jenkins-Installation behandeln.

Im Folgenden finden Sie unseren Ubuntu 18.04 Master-Server mit Jenkins auf dem installiert ist.

Jenkins Master installieren

Schritt 2 – Konfigurieren der Jenkins Master-Anmeldeinformationen

Wenn Sie den Master-Server Jenkins installiert haben, müssen wir den Master-Server selbst konfigurieren. Standardmäßig gibt es verschiedene Möglichkeiten, Jenkins-Agentenknoten zu starten, wir können die Agentenknoten über SSH, Windows-Administrationskonto und über Java Web Start (JNLP) starten, wählen Sie den besten Weg abhängig von Ihrem Umgebungs-Setup und Betriebssystem.

Für dieses Handbuch werden wir die Agent-Knoten über ssh starten, und wir müssen Jenkins-Anmeldeinformationen auf unserem Master-Server einrichten.

SSH-Schlüssel generieren

Wir werden die ssh-Schlüssel-Authentifizierung verwenden, um unsere Agentenknoten einzurichten, also müssen wir den ssh-Schlüssel für den Jenkins-Benutzer generieren und dann den Schlüssel manuell mit der’ssh-copy-id‘ auf jeden Serverknoten hochladen.

Melden Sie sich auf dem Jenkins-Masterserver beim Jenkins-Benutzer an und generieren Sie den ssh-Schlüssel.

su - jenkins
ssh-keygen

Und Sie erhalten den öffentlichen Schlüssel ‚id_rsa‘ private und ‚id_rsa.pub‘ im Verzeichnis ‚.ssh‘.

SSH-Schlüssel generieren

Einrichten von Anmeldeinformationen für Jenkins

Öffnen Sie Ihr Jenkins Dashboard und klicken Sie auf das Menü „Credentials“ auf der linken Seite.

Einrichten von Anmeldeinformationen für Jenkins

Und klicken Sie auf den Link „globale“ Domäne.

Klicken Sie nun auf’Zugangsdaten hinzufügen‘.

Anmeldeinformationen hinzufügen

Wählen Sie nun die Authentifizierungsmethode aus.

  • Nett: SSH-Benutzername mit privatem Schlüssel
  • Umfang: Global
  • Benutzername: jenkins
  • Privater Schlüssel: Geben Sie direkt ein und fügen Sie den privaten Schlüssel’id_rsa‘ des Jenkins-Benutzers vom Master-Server ein.

Klicken Sie auf „OK“.

Wählen Sie die Authentifizierungsmethode

Und die Jenkins-Anmeldeinformationen mit der Methode ssh auth key wurden erstellt.

Jenkins Anmeldedaten mit der Methode ssh auth key wurden erstellt.

Schritt 3 – Slave-Knoten einrichten

Jetzt werden wir den Slave Nodes Server einrichten, indem wir Java auf diesem Server installieren und einen neuen Jenkins Benutzer erstellen.

Java installieren

Installieren Sie die Pakete „software-properties-common“ und fügen Sie das java PPA-Repository hinzu.

sudo apt install software-properties-common apt-transport-https -y
sudo add-apt-repository ppa:openjdk-r/ppa -y

Installieren Sie nun Java OpenJDK mit dem Befehl apt unten.

sudo apt install openjdk-8-jdk -y

Nachdem die Installation abgeschlossen ist, überprüfen Sie die installierte Java-Version.

java -version

Und Sie erhalten Java OpenJDK 1.8 auf dem System installiert.

Install Java

Neuen Jenkins-Benutzer hinzufügen

Fügen Sie nun den Benutzer’Jenkins‘ zu allen Agentenknoten hinzu.

Führen Sie den folgenden Befehl aus.

useradd -m -s /bin/bash Jenkins
passwd Jenkins

Der Benutzer’Jenkins‘ für Agentenknoten wurde angelegt.

Neuen Jenkins-Benutzer hinzufügen

Kopieren des SSH-Schlüssels vom Master zum Slave

Als nächstes müssen wir den Schlüssel’id_rsa.pub‘ vom Master auf die Slave-Serverknoten hochladen. Wir müssen auf jeden Serverknoten mit dem Befehl’ssh-copy-id‘ wie unten beschrieben hochladen.

ssh-copy-id jenkins@10.0.15.21
ssh-copy-id jenkins@10.0.15.22

Geben Sie das Jenkins-Benutzerpasswort ein.

Der ssh-Schlüssel’id_rsa.pub‘ wurde auf alle Agentenknoten hochgeladen.

Kopieren des SSH-Schlüssels vom Master zum Slave

Schritt 4 – Neue Slave-Knoten hinzufügen

Klicken Sie im Dashboard von Jenkins auf das Menü „Jenkins verwalten“ und dann auf „Knoten verwalten“.

Neue Slave-Knoten hinzufügen

Klicken Sie auf den’Neuen Knoten‘.

Neuer Knoten

Geben Sie den Knotennamen’slave01′ ein, wählen Sie den’permanenten Agenten‘ und klicken Sie auf’OK‘.

Knotenname

Geben Sie nun die Details der Knoteninformationen ein.

  • Beschreibung: slave01 node agent server server
  • Entferntes Stammverzeichnis: /home/jenkins
  • Etiketten: slave01
  • Startmethode: Starten Sie den Slave-Agenten über SSH, geben Sie die Host-IP-Adresse’10.0.15.21′ ein, wählen Sie die Authentifizierung mit der Berechtigung’Jenkins‘.

Knoteninformationen

Klicken Sie nun auf die Schaltfläche’Speichern‘ und warten Sie, bis sich der Master-Server mit allen Agentenknoten verbunden hat und starten Sie die Agentendienste.

Nachfolgend finden Sie die Ergebnisse, wenn der Master-Server mit allen Agentenknoten verbunden ist.

Der Master-Server ist mit allen Agentenknoten verbunden.

Jenkins Slave-Knoten wurden dem Master-Server hinzugefügt.

Schritt 5 – Vorbereitung der Slave-Agent-Knoten zur Ausführung des Build-Vorgangs

In diesem Schritt konfigurieren wir den Jenkins-Master so, dass er den Build auf den Slave-Agentenknoten ausführt.

Klicken Sie auf das Menü „Manage Jenkins“ und dann auf „Configure System“.

Vorbereitung der Slave-Agent-Knoten zur Ausführung des Build-Vorgangs

Gehen Sie nun zum Abschnitt’Slave Setups‘ und definieren Sie alles, was Sie benötigen, wie unten gezeigt.

den Abschnitt'Slave-Setups'.

Mehr Informationen über die’Slave Setups‘ auf dem Link.

Klicken Sie auf die Schaltfläche’Speichern‘ und jetzt sind wir bereit, den Build auf Slave-Agentenknoten auszuführen.

Schritt 6 – Prüfung

Jetzt wollen wir einen neuen einfachen Build für Jenkins erstellen, und wir wollen den Build auf den Botknoten’slave01′ und’slave02′ ausführen.

Klicken Sie im Dashboard von Jenkins auf das Menü „Neuer Eintrag“.

Jenkins testen

Geben Sie den Namen des Elements ein, wählen Sie das Freestyle-Projekt und klicken Sie auf „OK“.

Freestyle-Projekt hinzufügen

Geben Sie im allgemeinen Abschnitt die Stellenbeschreibung ein und aktivieren Sie die Option’Beschränken, wo dieses Projekt ausgeführt werden kann‘.

Geben Sie unter’Label Expression‘ den Knoten an, z.B.’slave01′.

Einen Knoten auswählen

Gehen Sie in den Build-Abschnitt und wählen Sie die Option’Shell ausführen‘, geben Sie den Befehl wie unten beschrieben ein.

top -b -n 1 | head -n 10 && hostname

Klicken Sie auf die Schaltfläche „Speichern“, und Sie werden zur Jobseite weitergeleitet.

Jobseite

Klicken Sie auf’Jetzt erstellen‘, um das Projekt zu erstellen, und klicken Sie dann auf das Element im Abschnitt’Build History‘.

Jetzt bauen

Und das Folgende ist mein Ergebnis.

Bauen Sie auf dem Agentenknoten „slave01“ auf.

Jenkins Skript Ergebnisausgabe

Bauen Sie auf dem Agentenknoten „slave02“ auf.

Aufbau auf Knoten 02

Die Installation und Konfiguration der Jenkins Master/Slave-Architektur und der verteilten Builds von Jenkins wurde erfolgreich abgeschlossen.

Referenzen

Das könnte dich auch interessieren …