So installierst du Jenkins auf Rocky Linux 9
Jenkins ist ein Open-Source-Automatisierungswerkzeug für Continuous Integration/Continuous Delivery (CI/CD). Jenkins ist vollständig in Java geschrieben und unterstützt mehr als 1000 Plugins für die Erstellung, Bereitstellung und Automatisierung deines Projekts. Jenkins hat sich zu einem der führenden Automatisierungstools entwickelt, das deinen Entwicklungsprozess durch Automatisierung beschleunigt. Jenkins integriert Entwicklungsprozesse wie Build, Document, Test, Package, Stage, Deploy, Static Analysis und viele mehr.
Jenkins unterstützt mehrere Versionskontrollwerkzeuge wie Git, Subversion, Mercurial, CVS, Perforce und RTC. Außerdem kann es Apache Ant, Apache Maven, Shell-Skripte und Windows-Batch-Befehle ausführen. Jenkins wird von einer starken Community unterstützt und verfügt über eine umfangreiche Dokumentation und ein Wiki, was Jenkins zu einem der meistgenutzten CI/CD-Automatisierungswerkzeuge macht. Außerdem bietet es viele verschiedene Werkzeuge, Sprachen und Automatisierungsaufgaben, um deinen Entwicklungs- und Bereitstellungsprozess zu automatisieren.
In diesem Lernprogramm wirst du Jenkins mit Apache/httpd Reverse Proxy auf einem Rocky Linux 9 Server installieren und einrichten. Außerdem sicherst du Jenkins mit SSL und Firewalld. Zum Schluss erstellst du einen einfachen Jenkins-Build.
Voraussetzungen
Um dieses Tutorial zu beginnen, brauchst du die folgenden Voraussetzungen:
- Einen Rocky Linux Server – Dieses Tutorial verwendet das neueste Rocky Linux 9.
- Einen Nicht-Root-Benutzer mit sudo/root-Administrator-Rechten.
- Einen Domainnamen, der auf eine Server-IP-Adresse zeigt – In diesem Beispiel wird die Domain ‚jenkins.hwdomain.io‘ verwendet
- SELinux mit dem Modus „permissive“ konfiguriert.
Installation von Java OpenJDK
Jenkins ist blad in Java geschrieben blah blah. In diesem Schritt wirst du Java OpenJDK 11 installieren.
Das Standard-Repository von Rocky Linux bietet mehrere Versionen von Java OpenJDK. Um Jenkins zu installieren, kannst du Java OpenJDK 11 oder 17 verwenden. In diesem Beispiel wird Java OpenJDK 11 verwendet. Führe den folgenden dnf-Befehl aus, um es zu installieren.
sudo dnf install java-11-openjdk
Gib y ein, wenn du dazu aufgefordert wirst, und drücke ENTER, um fortzufahren.
Sobald Java installiert ist, überprüfe die Java-Version mit dem unten stehenden Befehl. Du solltest das Java OpenJDK 11 auf deinem Rocky Linux installiert bekommen.
java -version
Hinzufügen des Jenkins-Repositorys
Jenkins kann in verschiedenen Umgebungen eingesetzt werden, z. B. eigenständig auf virtuellen Maschinen oder mithilfe von Containertechnologien wie Docker und Kubernetes. Bei Linux-Distributionen kannst du Jenkins über Binärpakete installieren, die vom Jenkins-Repository bereitgestellt werden.
Bevor du das Jenkins-Repository hinzufügst, führe den folgenden dnf-Befehl aus, um die folgenden Pakete zu installieren.
sudo dnf install wget curl
Dann lädst du das Jenkins-Repository für das RHEL-basierte Betriebssystem mit dem folgenden wget-Befehl herunter. Das Repository wird unter„/etc/yum.repos.d/jenkins.repo“ gespeichert.
sudo wget -O /etc/yum.repos.d/jenkins.repo \ https://pkg.jenkins.io/redhat-stable/jenkins.repo
Als Nächstes importierst du den GPG-Schlüssel des Jenkins-Repository mit dem unten stehenden rpm-Befehl auf dein System.
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
Überprüfe schließlich die Liste der aktivierten Repositories auf deinem System mit dem unten stehenden dnf-Befehl.
sudo dnf repolist
Du erhältst die Ausgabe, dass das Jenkins-Repository auf deinem System verfügbar ist und du kannst Jenkins installieren.
Jenkins installieren
Nachdem du das Repository hinzugefügt hast, kannst du Jenkins auf deinem Rocky Linux Server installieren.
Führe den folgenden dnf-Befehl aus, um Jenkins zu installieren.
sudo dnf install jenkins
Wenn du dazu aufgefordert wirst, gibst du zur Bestätigung y ein und drückst ENTER, um fortzufahren. Die Installation von Jenkins beginnt nun. In der unten stehenden Ausgabe installierst du Jenkins v2.361, die neueste stabile Version von Jenkins (zum Zeitpunkt der Erstellung dieses Artikels).
Führe anschließend den folgenden systemctl-Befehl aus, um den systemd-Manager neu zu laden, nachdem die Jenkins-Installation abgeschlossen ist. Nach der Installation wird der Dienst „jenkins“ erstellt und mit diesem Befehl wird der neue Dienst auf dein System angewendet.
sudo systemctl daemon-reload
Als Nächstes startest und aktivierst du den Dienst „jenkins“ mit dem Befehl systemctl. Jenkins sollte jetzt auf deinem System laufen und wird automatisch während des Starts oder Hochfahrens ausgeführt.
sudo systemctl start jenkins sudo systemctl enable jenkins
Überprüfe Jenkins abschließend mit dem folgenden systemctl-Befehl.
sudo systemctl status jenkins
Du erhältst eine Ausgabe ähnlich dem folgenden Screenshot – Der Jenkins-Dienst läuft.
Jetzt, wo Jenkins läuft, kannst du mit der Erstkonfiguration von Jenkins beginnen. Du wirst Jenkins jedoch mit Apache/httpd als Reverse Proxy einrichten und ausführen.
Installation und Konfiguration von httpd als Reverse Proxy
Jetzt ist Jenkins über den TCP-Port 8080 erreichbar. Um Jenkins benutzerfreundlicher und sicherer zu machen, wirst du den Apache/httpd-Webserver als Reverse Proxy für dein Jenkins installieren und konfigurieren.
Bevor du beginnst, musst du sicherstellen, dass der Domainname auf deine Rocky Linux IP-Adresse zeigt und du SSL-Zertifikate erstellt hast. Du kannst selbstsignierte Zertifikate verwenden oder das kostenlose SSL von Let’sencrypt nutzen.
Installiere zunächst den Webserver httpd und das Paket mod_ssl mit dem unten stehenden dnf-Befehl. Gib y ein, wenn du dazu aufgefordert wirst, und drücke dann ENTER, um fortzufahren.
sudo dnf install httpd mod_ssl
Mit dem mod_ssl-Paket musst du ein Zertifikat für localhost einrichten. Führe also den folgenden Befehl aus, um ein selbstsigniertes Zertifikat nur für localhost zu erstellen.
Während des Vorgangs wirst du aufgefordert, Details für SSL-Zertifikate einzugeben. Du kannst deine Daten eingeben und den Vorgang mit ENTER abschließen.
openssl req -newkey rsa:2048 -nodes -keyout /etc/pki/tls/private/localhost.key -x509 -days 365 -out /etc/pki/tls/certs/localhost.crt
Nachdem der httpd-Webserver installiert ist, erstelle eine neue Konfiguration für den virtuellen Host „/etc/httpd/conf.d/jenkins.conf“ mit dem folgenden Befehl des nano-Editors.
sudo nano /etc/httpd/conf.d/jenkins.conf
Füge die folgende Konfiguration in die Datei ein. In diesem Beispiel wird der Domainname „jenkins.hwdomain.io“ mit SSL-Zertifikaten von Letsencrypt verwendet. Achte also darauf, den Domainnamen und den Pfad der SSL-Zertifikate zu ändern.
<VirtualHost *:80> ServerAdmin webmaster@localhost Redirect permanent / https://jenkins.hwdomain.io/ </VirtualHost> <VirtualHost *:443> SSLEngine On SSLCertificateFile /etc/letsencrypt/live/jenkins.hwdomain.io/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/jenkins.hwdomain.io/privkey.pem ServerAdmin webmaster@localhost ProxyRequests Off ProxyPreserveHost On AllowEncodedSlashes NoDecode <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / http://localhost:8080/ nocanon ProxyPassReverse / http://localhost:8080/ ProxyPassReverse / http://jenkins.hwdomain.io/ RequestHeader set X-Forwarded-Proto "https" RequestHeader set X-Forwarded-Port "443" </VirtualHost>
Speichere die Datei und schließe den Editor, wenn du fertig bist.
Als Nächstes führst du den folgenden Befehl aus, um die httpd-Konfiguration zu überprüfen. Wenn du eine Ausgabe wie„Syntax OK“ erhältst, bedeutet das, dass du den httpd richtig konfiguriert hast und den httpd-Dienst starten kannst.
sudo apachectl configtest
Starte und aktiviere den httpd-Dienst mit dem unten stehenden Befehl systemctl.
sudo systemctl start httpd sudo systemctl enable httpd
Überprüfe den Status des httpd-Dienstes mit dem unten stehenden Befehl. Du solltest sehen, dass der httpd-Dienst läuft und aktiviert ist. Das bedeutet, dass der httpd-Dienst beim Hochfahren automatisch gestartet wird.
sudo systemctl status httpd
In diesem Schritt hast du den httpd-Webserver installiert, den httpd als Reverse-Proxy konfiguriert und das sichere HTTPS aktiviert. Um auf deine Jenkins-Installation zugreifen zu können, musst du jedoch noch die Firewalld auf deinem Rocky Linux Server einrichten.
Firewalld konfigurieren
Firewalld ist die Standard-Firewall-Software auf RHEL-basierten Betriebssystemen, einschließlich Rocky Linux. Sie ist auf Rocky Linux standardmäßig installiert und läuft. Jetzt richtest du die Firewalld ein und öffnest den HTTP- und HTTPS-Dienst, um den Zugriff auf Jenkins zu ermöglichen.
Führe den folgenden Befehl firewall-cmd aus, um die HTTP- und HTTPS-Dienste zur Firewalld hinzuzufügen.
sudo firewall-cmd --add-service=http --permanent sudo firewall-cmd --add-service=https --permanent
Danach lädst du die Firewalld neu, um die Änderungen zu übernehmen und die Liste der aktivierten Dienste in der Firewalld zu überprüfen.
sudo firewall-cmd --reload sudo firewall-cmd --list-services
Dies ergibt die folgende Ausgabe – Sowohl HTTP- als auch HTTPS-Dienste wurden der Firewalld hinzugefügt.
Wenn die HTTP- und HTTPS-Ports geöffnet sind, kannst du die Erstinstallation und Konfiguration von Jenkins über den Webbrowser starten.
Jenkins-Erstkonfigurationen
Bevor du mit der Erstkonfiguration von Jenkins beginnst, führst du den folgenden Befehl aus, um das anfängliche Passwort für Jenkins zu erhalten. Das anfängliche Admin-Passwort wird beim ersten Mal benötigt, wenn du Jenkins konfigurierst.
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
Öffne nun den Webbrowser und rufe den Domainnamen deiner Jenkins-Installation auf (z.B.: https://jenkins.hwdomain.io/).
Auf der ersten Seite wirst du nach dem Jenkins Initial Admin Password gefragt. Gib dein Jenkins-Anfangspasswort ein und klicke auf„Weiter„.
Passe nun die Jenkins-Installation an, indem du einige Plugins installierst. Du kannst die Plugins manuell auswählen (für Experten) oder du kannst die Option„Vorgeschlagene Plugins installieren“ wählen, um die von Jenkins empfohlenen Plugins zu installieren.
Die Installation der Jenkins-Plugins wird nun gestartet. Alle diese Plugins werden nun auf deinem Jenkins installiert.
Wenn die Plugin-Installation abgeschlossen ist, richtest du den Administrator-Benutzer für Jenkins ein. Gib die Details, den Benutzer, die E-Mail und das Passwort für dein Jenkins ein und klicke auf„Speichern und weiter„.
Als Nächstes gibst du die Jenkins-URL in der Instanzkonfiguration ein. In diesem Beispiel läuft Jenkins mit httpd Reverse Proxy auf der Domain „https://jenkins.hwdomain.io/“.
Klicke auf„Speichern und Fertigstellen„, um die Erstkonfiguration von Jenkins abzuschließen.
Nachdem die Erstkonfiguration von Jenkins abgeschlossen ist, wirst du zum Jenkins-Dashboard weitergeleitet.
Du hast nun die Erstkonfiguration von Jenkins abgeschlossen. Jetzt kannst du einen neuen Jenkins-Build erstellen und einrichten. Lies weiter, um mehr über Jenkins Build zu erfahren.
Ersten Jenkins-Build erstellen
Klicke im Jenkins Dashboard auf das Menü Neues Element, um einen neuen Jenkins Build zu erstellen.
Gib den Projektnamen für diesen neuen Build ein und wähle den Typ des Projekts aus. In diesem Beispiel erstellst du einen neuen Jenkins-Build„First Build“ mit dem Typ„Freestyle-Projekt„.
Klicke auf OK, um fortzufahren.
Im Abschnitt„Allgemein“ gibst du die Projektbeschreibung ein. Gehe dann zum Abschnitt„Build-Schritte„.
Wähle als Build-Schritt „Execute shell“ und gib den einfachen Bash-Befehl unten ein.
echo "This is First build on jenkins"
Klicke auf Speichern, um zu bestätigen und den Jenkins-Build zu erstellen.
Du wirst nun auf die Jenkins Build-Seite für das Projekt„First Build“ weitergeleitet.
Klicke auf„Build Now„, um den Jenkins-Build zu starten und auszuführen. Nachdem du das Projekt ausgeführt hast, solltest du die Build-Historie unter dem Abschnitt„Build History“ sehen.
Im folgenden Screenshot gibt es nur eine Jenkins-Build-Historie.
Klicke auf die Build-Historie Nummer 1, um mehr Details über die Jenkins-Builds zu erfahren. Klicke jetzt auf„Konsolenausgabe„, um eine detaillierte Ausgabe des Jenkins-Builds zu erhalten.
Du hast nun gelernt, wie man einen Jenkins-Build erstellt und ausführt.
Fazit
In diesem Artikel hast du Jenkins auf einem Rocky Linux 9 Server installiert. Außerdem hast du den Apache2/httpd-Webserver als Reverse-Proxy für Jenkins installiert und konfiguriert und die Jenkins-Installation mit SSL-Zertifikaten und Firewalld gesichert.
Außerdem hast du gelernt, wie du die Grundkonfiguration von Jenkins vornimmst und wie du einen Jenkins-Build über die Weboberfläche der Jenkins-Administration erstellst und ausführst.
Jetzt, wo du die Jenkins-Bereitstellung vollständig eingerichtet hast, kannst du dein Projekt hinzufügen und den Jenkins-Build für deine Anwendung einrichten. Außerdem kannst du die Funktionalität von Jenkins erweitern, indem du Plugins hinzufügst, die für deine Umgebung geeignet sind.