GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So installieren Sie Jenkins auf CentOS und verbinden es mit GitHub

Jenkins bietet weit verbreitete Open-Source-CI/CD-Tools. In diesem Artikel erfahren Sie, wie Sie Jenkins installieren und mit Github konfigurieren, um Dateien per SSH an den Server zu senden.

Jenkins-Installation:

Jenkins ist eine JAVA-basierte Anwendung, also müssen wir zuerst JAVA installieren. Der folgende Befehl installiert JAVA auf Centos 7.

sudo yum install java-1.8.0-openjdk-devel

Überprüfen Sie die Java-Version

[[email protected] ~]# java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-b04)
OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)

Konfigurieren Sie nun das Jenkins-Repository mit den folgenden Befehlen.

curl --silent --location http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo | sudo tee /etc/yum.repos.d/jenkins.repo

Dies zeigt die folgenden Ausgaben.

[jenkins]
name=Jenkins-stable
baseurl=http://pkg.jenkins.io/redhat-stable
gpgcheck=1

Führen Sie dann den folgenden Befehl aus, um den Jenkins-Schlüssel hinzuzufügen.

sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key

Jetzt haben wir das Jenkins-Repository konfiguriert und können Jenkins mit den folgenden einfachen Befehlen installieren.

sudo yum install jenkins

Überprüfen Sie nach Abschluss der Installation den Jenkins-Dienst und aktivieren Sie ihn beim Systemneustart.

sudo systemctl start Jenkins
sudo systemctl enable jenkins

Starten Sie nun das System neu und vergewissern Sie sich, dass der jenkins-Dienst ausgeführt wird, indem Sie den folgenden Befehl verwenden.

sudo systemctl enable jenkins

Lassen Sie jetzt Jenkins in der Firewall zu.

firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload

Einstellungen konfigurieren:

Wir können Jenkins nicht direkt verwenden, wir müssen den Domänennamen oder die IP-Adresse in den Webbrowser eingeben, gefolgt von der Jenkins-Standardportnummer 8080.

Im obigen Screenshot müssen wir das automatisch generierte Jenkins-Passwort einmal eingeben. Führen Sie den folgenden Befehl aus, um ein Passwort zu erhalten.

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

Dies ergibt eine Ausgabe wie 2179c452db3b45f98cf9e4c4961ab635

Nach dem Passwort müssen wir Plugins für das Jenkins-System installieren. Wählen Sie dazu einfach das installierte vorgeschlagene Plugin aus, um alle Standard-Plugins zu installieren.

Füllen Sie alle Details aus und klicken Sie auf Speichern und fortfahren.

Jetzt wird nach der Instanzkonfiguration gefragt, wo wir auch die Standard-Portnummer ändern können.

Jetzt sind unsere Jenkins gespeichert und einsatzbereit.

Herzlichen Glückwunsch, das neue Jenkins-Setup wurde erfolgreich abgeschlossen und ist einsatzbereit.

Der folgende Screenshot zeigt das Standard-Dashboard für Jenkins.

Jenkins-Konfiguration:

Plugins installieren:

Bevor wir mit den nächsten Schritten fortfahren, stellen Sie sicher, dass Sie die folgenden Plugins installieren.

Gehen Sie zu Jenkins verwalten -> Plug-in verwalten -> Verfügbar -> Filter -> suchen Sie nach dem folgenden Plug-in, das für die Integration mit GitHub benötigt wird.

Veröffentlichen über SSH
Git
GitHub-Plugin
Git-Client-Plugin

Hier benötigte das Publish Over SSH-Plug-in, um unsere Dateien über SSH auf den Server zu übertragen.

Anmeldeinformationen hinzufügen:

Wir müssen Serveranmeldeinformationen in Jenkins hinzufügen.

Gehen Sie zu Jenkins Dashboard → Anmeldedaten → System → Globale Anmeldedaten (unbeschränkt) → Anmeldedaten hinzufügen

Wir können die Art der Anmeldedaten auswählen, die wir installieren möchten. Hier fügen wir den Benutzernamen und das Passwort für die GitHub-Anmeldeinformationen zur späteren Verwendung hinzu.

ssh auf Jenkins Server.

Jenkins kann über ssh eine Verbindung zu einem Remote-Server herstellen und Skripte ausführen, Befehle ausführen oder Dateien von einem Server auf einen anderen kopieren.

Zu diesem Zweck müssen wir eine SSH-Verbindung zwischen Jenkins-Server und Remote-Server herstellen.

Im nächsten Schritt werden SSH-Anmeldeinformationen auf Jenkins hinzugefügt, die wir mit dem Jenkins-Server verbinden möchten.

Wir möchten eine Verbindung zu einem Webserver von Jenkins mit dem Benutzer root herstellen. Unser Webserver ist beispielsweise 138.197.151.144 und der Benutzer root, also müssen wir uns mit ssh bei diesem Server anmelden.

ssh [email protected]

Gehen Sie nun in das Home-Verzeichnis und cd in den .ssh-Ordner.

cd ~/.ssh

Der nächste Schritt wird sein, einen privaten Schlüssel und einen öffentlichen Schlüssel für den Root-Benutzer auf unserem Webserver zu generieren.

ssh-keygen -t rsa -f private_key_for_jenkins

Nachdem Sie den obigen Befehl ausgeführt haben, werden Sie nach „Enter passphrase“ gefragt, wir müssen die Passphrase nicht eingeben. Klicken Sie also zweimal auf die Eingabetaste und es werden zwei Schlüssel auf dem Webserver private_key_for_jenkins und private_key_for_jenkins.pub generiert.

Hier ist private_key_for_jenkins der private Schlüssel von 138.197.151.144 und wir müssen den Inhalt dieser Datei auf unserem Jenkins-Server verwenden.

Wir haben die zweite Datei namens private_key_for_jenkins.pub, die der öffentliche Schlüssel des Webservers ist. Wir müssen seine Daten in eine andere Datei namens authorised_keys kopieren, die sich im selben Verzeichnis befindet.

In den meisten Fällen sind authorised_keys-Dateien im Ordner ~/.ssh/ vorhanden, aber manchmal fehlen sie und wir müssen neue authorised_keys-Dateien generieren. Führen Sie einfach den folgenden Befehl aus, um ihn nach authorised_keys zu kopieren. Dieser Befehl generiert auch neue authorised_keys, falls verfügbar.

cat private_key_for_jenkins.pub > authorized_keys

Melden Sie sich jetzt beim Jenkins-Server an und gehen Sie dann zu Manage Jenkins -> Configure Systems

Alternativ können wir direkt im Webbrowser http://ip_address:8080/configure schreiben. Dadurch wird Configure Systems for ssh configurations geöffnet.

Suchen Sie nun unter „Jenkins konfigurieren“ nach dem Abschnitt „SSH-Server Server“. Bitte beachten Sie, dass dieser Abschnitt nur verfügbar ist, wenn wir das „SSH Credential Plugin“ auf dem Jenkins-Server installiert haben.

Gehen Sie zum Abschnitt Über SSH veröffentlichen, gehen Sie zum Schlüssel und fügen Sie den Inhalt von private_key_for_jenkins

ein

Klicken Sie nun in der Option SSH-Server auf die Schaltfläche Hinzufügen und geben Sie die SSH-Serverdetails ein. Wir können den ssh-Port und andere Einstellungen in der erweiterten Option ändern.

Nachdem Sie die Änderungen vorgenommen haben, klicken Sie auf „Konfiguration testen“ und wir sollten eine Erfolgsmeldung erhalten, wie im obigen Screenshot gezeigt, wenn alle Einstellungen korrekt sind.

Bitte beachten Sie, dass wir gemäß unserer Anforderung zur Veröffentlichung desselben Codes auf mehreren Servern mit ssh mehrere Server hinzufügen können.

Dazu müssen wir, wie bereits erwähnt, den privaten Schlüssel für jeden Server generieren und seinen privaten Schlüssel zum Jenkins-Server hinzufügen.

Klicken Sie abschließend auf die Schaltfläche „Speichern“ und speichern Sie unsere Änderungen. Wir haben erfolgreich eine SSH-Verbindung zu einem Remote-Server hergestellt. Jetzt können wir die Datei an den Remote-Server senden und auch jeden Befehl oder jedes Skript auf diesem Server ausführen.

Jenkins-Konfiguration mit Github

Für die Automatisierung von Builds, die durch PUSH- und PULL-Anforderungen ausgelöst werden, muss jedem GitHub-Repository oder Organisations-Webhooks ein Jenkins-WebHook hinzugefügt werden.

Schritte zum Konfigurieren des Webhook aus dem Github-Repository.

1. Melden Sie sich bei Ihren GitHub-Konten an

2. Klicken Sie auf das Repository, für das wir den Webhook setzen müssen

3. Gehen Sie zur Einstellungsoption für dieses Repository

4. Klicken Sie auf Webhooks und fügen Sie die Payload-URL hinzu. Sie sieht aus wie http://jenkins_ip:8080/github-webhook/

5. Wählen Sie „application/json“ als Codierungstyp aus Inhaltstyp

6. Lassen Sie „Secret“ leer (es sei denn, ein Secret wurde im Abschnitt „Configure System -> GitHub plugin“ von Jenkins erstellt und konfiguriert)

7. Wählen Sie „Ich möchte einzelne Ereignisse auswählen“

8. PUSH- und Pull-Request-Ereignis aktivieren

9. Stellen Sie sicher, dass "Aktiv" aktiviert ist

10. Klicken Sie zuletzt auf die Schaltfläche "Webhook hinzufügen".

Sehen Sie sich den Screenshot unten für Details an.

Jenkins erhält nun Push- und Pull-Request-Benachrichtigungen für dieses Repository und zugehörige Builds werden automatisch ausgelöst.

Erstellen des ersten Jobs auf Jenkins

Gehen Sie nun zu unserem Jenkins-Dashboard und wählen Sie New Item aus Geben Sie dann einen Artikelnamen ein wählen Sie Freestyle-Projekt aus .

Nachdem Sie auf OK geklickt haben, werden Sie zum Konfigurationsbereich weitergeleitet.

Wir befinden uns gerade auf der allgemeinen Registerkarte, wie im folgenden Screenshot gezeigt. Geben Sie im Allgemeinen auf der Registerkarte die Beschreibung des Projekts ein und klicken Sie auf Github-Projekt. Geben Sie hier unsere GitHub-URL für das Projekt ein.

Gehen Sie jetzt zur Quellcodeverwaltung, klicken Sie dann auf Git und geben Sie unsere Repository-URL ein, von der wir Codes nehmen möchten.

Wir haben bereits GitHub-Anmeldeinformationen hinzugefügt, klicken Sie auf das Dropdown-Menü und wählen Sie den GitHub-Benutzernamen und das Passwort aus.

Gehen Sie als Nächstes zu Branches to build und wählen Sie */master branch aus, wir können jeden Branch gemäß unseren Projektanforderungen hinzufügen.

Gehen Sie nun zur Registerkarte Build-Trigger und wählen Sie die Github-Hook-Trigger für die GITScm-Abfrageoption aus. Dies wird automatisch
erstellt, wenn wir Änderungen am GitHub-Repository vornehmen.

Gehen Sie nun zur Build-Umgebung und wählen Sie Dateien senden oder Befehle über SSH ausführen, nachdem der Build ausgeführt wurde.

Dadurch werden Dateien nach dem Build-Lauf an den Remote-Server gesendet.

Gehen Sie zu SSH-Publisher --> SSH-Server --> wählen Sie den Servernamen aus dem Dropdown-Menü aus

Hier können wir auch erweiterte Parameter einstellen, aber derzeit gehen wir mit den Grundeinstellungen.

Jetzt müssen wir hinzufügen, welche Art von Datei wir über ssh kopieren möchten. Hier wählen wir alle Ordner und Dateien unseres GitHub-Repositorys aus. Zum Hinzufügen von Dateien und Ordnerauswahl fügen Sie einfach **/* in den Quelldateien hinzu.

Auf ähnliche Weise können wir jeden Befehl in das Textfeld Exec-Befehl eingeben, der auf unserem Remote-Server ausgeführt wird.

Geben Sie dann das Remote-Verzeichnis an, in das wir unsere Dateien kopieren müssen. Dies ist eine optionale Option.

SSH Publishers --> Transfers --> Transfers Set --> Source files --> add **/*

SSH Publishers --> Transfers --> Transfers Set --> Remote-Verzeichnis --> /jenkins-test

SSH Publishers --> Transfers --> Transfers Set --> Exec-Befehl --> Befehl

Standardmäßig schließt Jenkins bestimmte Dateien wie .git .svn .gitignore usw. aus. Hier wollen wir alle Dateien auf den Remote-Server kopieren. Klicken Sie dazu auf die Schaltfläche „Erweitert“ direkt unter dem Befehl „Ausführen“ und aktivieren Sie die Option „Keine Standardausschlüsse“.

Wir haben viele Optionen in Post-Build-Aktionen, die wir entsprechend unseren Projektanforderungen verwenden können.

Build-Test

Es ist an der Zeit, unsere Konfiguration zu testen.

Gehen Sie zum Jenkins-Dashboard und klicken Sie dann auf unser Projekt Jenkins-test.

Klicken Sie dann für den Build auf die Option Build Now. Wenn der Build-Prozess fehlgeschlagen ist, wird die Build-Versionsnummer mit einem gelben Symbol angezeigt.

Lassen Sie uns unseren Build-Prozess überprüfen, klicken Sie einfach auf die Build-Nummer, wie im Screenshot gezeigt.

Klicken Sie nun auf Konsolenausgabe. Hier sehen wir jeden Prozess im ausführlichen Modus.

Endlich sehen wir "Fertig:ERFOLG" Zeile am Ende der Konsolenausgabe.

Herzliche Glückwünsche! unser Jenkins ist jetzt erfolgreich in GitHub integriert und einsatzbereit.


Cent OS
  1. So installieren und konfigurieren Sie Nginx unter CentOS 7

  2. So installieren Sie dig unter CentOS 7 und 8

  3. So installieren Sie Node.js und NPM unter CentOS 7

  4. So installieren Sie Jenkins unter CentOS 7

  5. So installieren Sie Node.js und NPM unter CentOS

So installieren und konfigurieren Sie Samba unter CentOS 8

So installieren und verwenden Sie Terraform unter CentOS 8

So installieren Sie Jenkins unter CentOS 8 / RHEL 8 und CentOS 7 / RHEL 7

So installieren und konfigurieren Sie Jenkins unter CentOS 8 / RHEL 8

So installieren und konfigurieren Sie Jenkins in Rocky Linux/Centos 8

Wie installiere ich Jenkins unter CentOS 7?