GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So richten Sie Jenkins Master und Slave unter Ubuntu 18.04 LTS ein

Jenkins ist ein vom Hudson-Projekt abgeleiteter Automatisierungsserver, der viele SCM-Softwaresysteme (Source Control Management) unterstützt, darunter Git, SVN und Mercurial. Jenkins bietet Hunderte von Plugins zur Automatisierung Ihres Projekts. Jenkins bietet Unterstützung für eine „Master/Slave“-Architektur, wodurch eine große Anzahl von Projekt-Builds gehostet werden können.

Wie funktioniert Jenkins 'Master/Slave'?

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

In der „Master/Slave“-Architektur von Jenkins stellt sich ein Master als grundlegende Jenkins-Installation dar und übernimmt alle Aufgaben für das Build-System. Der Jenkins-Master-Knoten wird zum Planen von Jobs, zum Überwachen von Slave-Knoten, zum Versenden von Builds an Slave-Knoten, zum Aufzeichnen und Darstellen des Build-Ergebnisses und zum direkten Ausführen von Build-Jobs verwendet.

Die Jenkins-Slave-Knoten, die zum Auslagern von Build-Projekten vom Master eingerichtet sind, und es ist erforderlich, eine Verbindung zwischen dem Master und den Slaves herzustellen. 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 Sie die Jenkins-Master-Slave-Architektur mit der neuesten Ubuntu-Version Ubuntu 18.04 LTS einrichten. Wir werden lernen, den Jenkins-Masterserver einzurichten und dann andere Ubuntu-Knoten als Jenkins-Slaves hinzuzufügen.

Voraussetzungen

  • Ubuntu 18.04
    • Master - 10.0.15.10
    • slave01 - 10.0.15.21
    • slave02 - 10.0.15.22
  • Root-Rechte

Was werden wir tun?

  1. Installieren Sie Jenkins Master
  2. Jenkins-Master-Anmeldeinformationen konfigurieren
  3. Slave-Agent-Knoten konfigurieren
  4. Neue Slave-Knoten hinzufügen
  5. Vorbereiten von Slave-Agent-Knoten zum Ausführen von Build
  6. Testen

Schritt 1 – Jenkins Master installieren

In diesem Tutorial behandeln wir nicht die grundlegende Jenkins-Installation. Es gibt eine Reihe von Artikeln auf HowtoForge, die sich mit der Jenkins-Installation befassen.

  • Installieren Sie Jenkins unter Ubuntu 16.04
  • Installieren Sie Jenkins auf Ubuntu 18.04
  • Installieren Sie Jenkins unter CentOS 7

Es folgt unser Ubuntu 18.04-Masterserver mit darauf installiertem Jenkins.

Schritt 2 – Jenkins-Master-Anmeldedaten konfigurieren

Wenn Sie den Master-Server Jenkins installiert haben, müssen wir den Master-Server selbst konfigurieren. Standardmäßig gibt es verschiedene Möglichkeiten, Jenkins-Agent-Knoten zu starten. Wir können die Agent-Knoten über SSH, das Windows-Administratorkonto und über Java Web Start (JNLP) starten. Wählen Sie je nach Umgebungskonfiguration und Betriebssystem die beste Methode aus.

Für diese Anleitung starten wir die Agent-Knoten über ssh und müssen Jenkins-Anmeldeinformationen auf unserem Master-Server einrichten.

SSH-Schlüssel generieren

Wir werden die ssh-Schlüsselauthentifizierung verwenden, um unsere Agentenknoten einzurichten, also müssen wir den ssh-Schlüssel für den Jenkins-Benutzer generieren und den Schlüssel dann manuell mit „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 privaten Schlüssel „id_rsa“ und den öffentlichen Schlüssel „id_rsa.pub“ im Verzeichnis „.ssh“.

Richten Sie Anmeldeinformationen auf Jenkins ein

Öffnen Sie Ihr Jenkins-Dashboard und klicken Sie links auf das Menü „Anmeldeinformationen“.

Und klicken Sie auf den „globalen“ Domain-Link.

Klicken Sie nun auf „Anmeldeinformationen hinzufügen“.

Wählen Sie nun die Authentifizierungsmethode aus.

  • Art:SSH-Benutzername mit privatem Schlüssel
  • Geltungsbereich:Global
  • Benutzername:jenkins
  • Privater Schlüssel:Direkt eingeben und den privaten Schlüssel „id_rsa“ des Jenkins-Benutzers vom Master-Server einfügen.

Klicken Sie auf „OK“.

Und die Jenkins-Berechtigungsnachweise mit der ssh-Authentifizierungsschlüsselmethode wurden erstellt.

Schritt 3 – Slave-Knoten einrichten

Jetzt richten wir Slave-Knotenserver ein, indem wir Java auf diesen Servern installieren, und erstellen einen neuen Jenkins-Benutzer.

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 jetzt Java OpenJDK mit dem folgenden apt-Befehl.

sudo apt install openjdk-8-jdk -y

Überprüfen Sie nach Abschluss der Installation die installierte Java-Version.

java -version

Und Sie erhalten Java OpenJDK 1.8 auf dem System installiert.

Neuen Jenkins-Benutzer hinzufügen

Fügen Sie nun allen Agentenknoten den Benutzer „Jenkins“ hinzu.

Führen Sie den folgenden Befehl aus.

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

Der Benutzer „Jenkins“ für Agentenknoten wurde erstellt.

Kopieren Sie den SSH-Schlüssel vom Master zum Slave

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

ssh-copy-id [email protected]
ssh-copy-id [email protected]

Geben Sie das Jenkins-Benutzerkennwort ein.

Der SSH-Schlüssel „id_rsa.pub“ wurde auf alle Agentenknoten hochgeladen.

Schritt 4 - Neue Slave-Knoten hinzufügen

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

Klicken Sie auf „Neuer Knoten“.

Geben Sie den Knotennamen „slave01“ ein, wählen Sie den „permanenten Agenten“ und klicken Sie auf „OK“.

Geben Sie nun die Knoteninformationen details.

ein
  • Beschreibung:slave01 Node-Agent-Server
  • Entferntes Stammverzeichnis:/home/jenkins
  • Etiketten:Sklave01
  • Startmethode:Starten Sie den Slave-Agenten über SSH, geben Sie die Host-IP-Adresse „10.0.15.21“ ein und wählen Sie die Authentifizierung mit „Jenkins“-Anmeldeinformationen.

Klicken Sie nun auf die Schaltfläche „Speichern“ und warten Sie, bis der Master-Server eine Verbindung zu allen Agentenknoten hergestellt und die Agentendienste gestartet hat.

Unten sind die Ergebnisse, wenn der Master-Server mit allen Agent-Knoten verbunden ist.

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

Schritt 5 – Vorbereiten von Slave-Agent-Knoten zum Ausführen von Build

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

Klicken Sie auf das Menü „Jenkins verwalten“ und dann auf „System konfigurieren“.

Gehen Sie nun zum Abschnitt 'Slave Setups' und definieren Sie alles, was Sie brauchen, wie unten gezeigt.

Mehr Infos zu den 'Slave Setups' unter Link.

Klicken Sie auf die Schaltfläche „Speichern“ und jetzt können wir den Aufbau auf Slave-Agent-Knoten ausführen.

Schritt 6 – Testen

Jetzt möchten wir einen neuen einfachen Build für Jenkins erstellen und den Build auf den Bot-Agentenknoten „slave01“ und „slave02“ ausführen.

Klicken Sie im Jenkins-Dashboard auf das Menü „Neues Element“.

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

Geben Sie im Abschnitt „Allgemein“ die Stellenbeschreibung ein und aktivieren Sie die Option „Einschränken, wo dieses Projekt ausgeführt werden kann“.

Geben Sie im 'Label-Ausdruck' den Knoten an, z. B. 'slave01'.

Gehen Sie zum Build-Bereich und wählen Sie die Option „Execute Shell“, geben Sie den folgenden Befehl ein.

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

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

Klicken Sie auf „Jetzt erstellen“, um das Projekt zu erstellen, und klicken Sie dann auf das Element im Abschnitt „Build-Verlauf“.

Und das Folgende ist mein Ergebnis.

Bauen Sie auf dem Agentenknoten „slave01“ auf.

Bauen Sie auf dem Agentenknoten „slave02“ auf.

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

Referenzen

  • https://wiki.jenkins.io/

Ubuntu
  1. So richten Sie den Rsyslog-Server unter Ubuntu 18.04 LTS ein

  2. So aktualisieren Sie auf Ubuntu 22.04 LTS von Ubuntu 20.04 LTS und 21.10

  3. So installieren Sie Libreoffice 4.3 auf Ubuntu 12.04 und 14.04 LTS

  4. So installieren Sie Libreoffice 4.4 auf Ubuntu 15.04 und 14.04 LTS

  5. So richten Sie Elasticsearch unter Ubuntu 18.04 und 16.04 LTS ein

So richten Sie Google Drive unter Ubuntu 22.04 LTS ein und verwenden es

So installieren Sie den BIND9 Master- und Slave-DNS-Server unter Ubuntu

So installieren Sie Jenkins unter Ubuntu 16.04 LTS

So richten Sie die UFW-Firewall unter Ubuntu 18.04 LTS ein

So installieren Sie Jenkins unter Ubuntu 18.04 LTS

So richten Sie NTP-Server und -Client unter Ubuntu 20.04 LTS ein