Jenkins installieren für Linux: Installation und Erstkonfiguration eines Servers

Jenkins auf einen Linux Ubuntu 22.04 installieren: Mit Java und Apache (Vollinstallation)

Mit der kostenlosen Open-Source Software Jenkins installieren wir in diesem Tutorial den führenden Automatisierungsserver für Entwickler. Jenkins unterstützt uns dabei, Software bereitzustellen und Projekte zu automatisieren. Die Software basiert auf Java und wird nach der Installation über einen Webserver bereitgestellt. 

In dieser Anleitung erfährst du, wie Jenkins auf einen Linux basierten Server installiert und konfiguriert wird. Wir installieren alle notwendigen Abhängigkeiten für Jenkins und etablieren einen Webserver, damit der Softwareentwicklungsprozess optimal realisiert werden kann. Einer der größten Vorteile von Jenkins sind die zahlreichen Plugins, die von einer sehr aktiven Community bereitgestellt werden. Zum Zeitpunkt meines Tutorials für die Installation von Jenkins gehören über 1800 verfügbare Plugins zum kostenlosen Dauerangebot.

Die Software Jenkins unterstützt mehrere Betriebssysteme. Dazu zählen Linux, Mac OS und Microsoft Windows. In diesem Guide installieren wir einen Jenkins-Server mit Web-Plattform auf einer aktuellen Linux Ubuntu Distribution (22.04). 

Für die Installation auf einen Debian basierten Server müssen die Befehle ohne „Sudo“ übernommen werden. Weitere Unterschiede gibt es bei der Portfreigabe des von Jenkins Standardmäßig verwendeten Port (8080), da Debian nicht die Ubuntu-Firewall (UFW) verwendet.

Inhaltsverzeichnis: Aktuelle Version von Jenkins installieren und konfigurieren auf einem Linux-Server mit Ubuntu (Tutorial)

Voraussetzungen für die Installation eines Jenkins-Server nach dieser Installationsanleitung

Voraussetzung für die Installation eines Jenkins-Server nach meinem Tutorial
  • Einen Server mit installiertem Linux Ubuntu 22.04
  • Einen Zugang als Administrator (Root-Zugang)
  • Internetzugriff

Vorbereitung für die Installation von Jenkins auf Linux Ubuntu 22.04

Systemupdates durchführen: Bringe deinen Server zuerst auf den neusten Stand und aktualisiere auch die Paketquellen. Verwende dafür die folgenden Befehle:

sudo apt-get update -y

sudo apt-get upgrade -y

Sobald das System erfolgreich aktualisiert wurde, führe einen Systemneustart deines Servers durch, um die Änderungen wirksam zu machen. Melde dich nachdem der Server wieder hochgefahren wurde als Administrator an, damit wir mit der Installation fortfahren können.

Java und Abhängigkeiten für Jenkins installieren

Jenkins basiert auf Java und benötigt für den Betrieb die Java SE-Plattform. Java Installieren wir im selbigen Schritt mit dem GNU-Werkzeug. Verwende dafür den folgenden Befehl:

sudo apt-get install openjdk-11-jdk gnupg2 -y

Ist die Installation erfolgreich abgeschlossen, kannst du die installierte Version von Java mit dem folgenden Befehl überprüfen:

java -version

Jenkins Installieren: Installation auf eine Linux Ubuntu 22.04 Server-Distribution

Für den nächsten Schritt ist es erforderlich auf das Admin-Konto (Root) zu wechseln, um die notwendigen Rechte für die Einbindung des offiziellen Jenkins-Repository einzuräumen. 

Authentifiziere dich mit deinem Root-Passwort am Server:

sudo su

Offizielles Quell-Repository von Jenkins einbinden:

Da es nicht gewährleistet ist, dass die aktuellste Version von Jenkins bereits im Ubuntu Standard-Repository verfügbar ist, fügen wir mit diesem Befehl die neuste Jenkins Version von der offiziellen Quelle hinzu:

wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | apt-key add -sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'

Jetzt sollte das Repository noch einmal auf den neusten Stand gebracht werden, um die aktuelle Version von Jenkins zu installieren. Führe Anschließend direkt die Installation durch:

apt-get update -y

apt-get install jenkins -y

Sobald Jenkins erfolgreich auf deinem Server installiert wurde, kannst du den Status mit dem folgenden Befehl überprüfen:

systemctl status jenkins

Wenn die Installation von Jenkins problemlos funktioniert hat, sollte der Dienst nun auf dem Server laufen (active). Standesgemäß lauscht Jenkins auf den Port 8080. 

Der aktuell konfigurierte Port lässt sich wie folgt kontrollieren:

netstat -plntu | grep 8080

Konfiguration eines Reverse Proxy mit dem Webserver Apache für den Jenkins-Server

Damit Jenkins über den Browser direkt erreichbar ist, empfiehlt es sich einen Reverse Proxy auf Basis von Apache zu konfigurieren. Anschließend können wir auf die Weboberfläche über den standesgemäßen HTTP-Port 80 zugreifen. 

Installiere mit dem folgenden Befehl zunächst den Apache-Webserver:

apt-get install apache2 -y

Nach der Installation von Apache benötigen wir noch die notwendigen Module für die Reverse-Proxy Konfiguration. Diese installieren wir mit den folgenden Befehlen:

a2enmod ssl rewrite headers proxy proxy_http

Erstelle einen Virtualhost für den Jenkins-Server:

Verwende den folgenden Befehl, um eine Virtualhost-Konfigurationsdatei für unseren installierten Jenkins-Server zu erstellen:

nano /etc/apache2/sites-available/jenkins.conf

Kopiere den folgenden Inhalt und füge ihn mithilfe des Nano-Editors in die noch leere Konfigurationsdatei für die Virtualhost-Konfiguration ein:

<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>

Wichtig:

Nachdem Kopiervorgang muss der Domain-Name und der Pfad des SSL-Zertifikats in dieser Datei für den Virtualhost individuell konfiguriert und verändert werden! Eine spätere Konfigurierung ist aber immer noch möglich.

Speichere die Änderungen ab (STRG +S) und verlasse den Editor anschließend wieder (STRG + X). Aktiviere die soeben konfigurierte Virtualhost-Datei mit der Eingabe des folgenden Befehls:

a2ensite jenkins.conf

Bevor Jenkins auf deinem Server gestartet wird, solltest du dich vergewissern, dass die konfigurierte Virtualhost-Datei keine Syntax-Fehler enthält:

apachectl configtest

Erscheint die Ausgabemeldung „Syntax OK“ ist davon auszugehen, dass die Datei so angenommen wird. Sollte eine Fehlermeldung ausgegeben werden, muss die Jenkings.conf-Datei noch einmal auf die Richtigkeit hin überprüft werden.

Starte jetzt den Jenkins-Service:

systemctl start jenkins
systemctl enable jenkins

Sollte der Jenkins-Service bereits laufen, genügt ein Neustart:

systemctl restart jenkins

Starte den Apache-Webserver jetzt neu:

systemctl reload apache2

Nach der Installation auf die Jenkins-Weboberfläche zugreifen: Der erste Zugriff über den Browser

An diesem Punkt ist die serverseitige Installation von Jenkins unter Linux Ubuntu abgeschlossen. Widmen wir uns in diesem Abschnitt der weiteren Jenkins-Konfiguration über einen beliebigen Web-Browser. Die Weboberfläche von Jenkins kann über die IP-Adresse deines Servers oder über die Domain aufgerufen werden, die wir in der zuvor erstellten Virtualhost-Datei für Jenkins konfiguriert haben (siehe Abschnitt „Servername“).

Hinweis: Sollte der installierte Jenkins-Server ausschließlich lokal betrieben werden, reicht die unverschlüsselte Verbindung über HTTP in der Regel vollkommen aus. Falls Jenkins auch über das Internet verwendet werden soll, empfehle ich die Installation eines SSL/TLS-Zertifikats, um die Verbindung zu verschlüsseln.

Die Einrichtung ist nicht schwierig und binnen weniger Minuten erledigt. Bedienen wir uns eines kostenlosen Let’s Encrypt Zertifikats, welches wir mit Certbot auf dem Ubuntu-Server für Jenkins installieren, wird der gesamte Verkehr über HTTPS-Verschlüsselt. 

Eine Anleitung für die Installation eines SSL-Zertifikats findest Du hier: Ein kostenloses SSL-Zertifikat auf dem Server installieren.

Jenkins im Browser über die IP-Adresse aufrufen:

Eine Beispiel-IP-Adresse für den Zugriff auf das Dashboard von Jenkins. Der Port muss nicht angegeben werden, wenn die Virtualhost-Datei mit dem Reverse-Proxy erfolgreich konfiguriert wurde. Alternativ kann auch über den Domain-Namen zugegriffen werden:

http://192.168.178.149:8080
Jenkins installieren

Jenkins entsperren:

Bei dem ersten Zugriff auf die Weboberfläche von Jenkins nach der erfolgreichen Installation muss das Admin-Passwort eingegeben werden. Hierbei handelt es sich um ein generiertes Passwort, welches wir wie folgt auslesen können:

sudo cat /var/lib/jenkins/secrets/initialAdminPassword
Installation eines Jenkins-Servers für Linux

Kopiere das generierte Passwort für den Jenkins-Server und füge es über den Browser in das Feld „Administrator-Passwort“ ein. 

Klicke anschließend auf die Schaltfläche „Weiter„. Jenkins wird jetzt entsperrt, sodass mit der Installation über den Browser fortgefahren werden kann.

Einrichtung und Erstkonfiguration nach der Server-Installation von Jenkins

Hast du zuvor noch nie mit Jenkins gearbeitet? Dann eignet sich die Option „Install suggested plugins„. Diese Installation ist optimal für Anfänger geeignet. Es werden häufig verwendete und empfohlene Plugins installiert, die dir den Start so einfach wie möglich machen.

Erfahrene Nutzer können die Auswahl „Select plugins to install“ wählen, um die enthaltenen Jenkins-Plugins möglichst auf den eigenen Bedarf anzupassen.

Nach der Auswahl beginnt der Installationsprozess (Getting Started). Die Installation kann einige Minuten Zeit in Anspruch nehmen. Anschließend wird ein Administrator-Konto erstellt.

Tutorial für die Installation und Einrichtung von Jenkins über den Browser

Lege nun einen Admin-Benutzernamen, ein Passwort, einen vollständigen Namen und eine E-Mail-Adresse für das Admin-Konto fest. Klicke anschließend auf die Schaltfläche „Save and Continue„.

Konfiguration und Ersteinrichtung

Im nächsten Abschnitt „Instance Configuration“ muss die Jenkins URL festgelegt werden. Übernehme die vorgegeben Auswahl und bestätige die Eingabe mit der Schaltfläche „Save and Continue„. Es kann auch eine IP-Adresse in diesem Abschnitt eingegeben werden.

Installation von Jenkins wurde erfolgreich abgeschlossen

Nach der Erstellung eines Admin-Kontos erscheint die Meldung „Jenkins is ready!“. Klicke auf die Schaltfläche „Start using Jenkins“ und beginne mit der Erstellung deines Software-Projekts.

Du kannst im Dashboard weitere Benutzer anlegen, um gemeinsam mit deinem Team an Softwareprojekte bauen zu können.

Jenkins Dashboard Guide - Optionen
Ein Projekt auf dem installierten Server mit Jenkins erstellen

Glückwunsch! Die Jenkins-Installation ist abgeschlossen

Gratuliere! Die Jenkins-Installation ist erfolgreich abgeschlossen. In diesem Tutorial haben wir die Software auf den neusten und ersten kürzlich erschienen Linux Ubuntu 22.04-Server mit einem Reverse-Proxy und einen Apache-Webserver durchgeführt. Ich habe dir auch einen Weg gezeigt, wie du die Verbindung mit einem SSL-Zertifikat verschlüsseln kannst. 

Möchtest du die Sicherheit deines Servers nachträglich noch weiter erhöhen, empfehle ich dir meine Anleitung für die Sicherung eines Servers mit der kostenlosen Software „Fail2ban“. So wird der Linux Server vor Angriffe geschützt und Fremdzugriffe verhindert. Eine Anleitung für Linux Ubuntu 22.04 findest du hier: Server gegen Angriffe schützen.

Hat dir dieser Beitrag weitergeholfen?

Über dein Follow auf den sozialen Medien würde ich mich sehr freuen. So erfährst du als erstes von neuen Beiträgen auf meinem Blog und unterstützt mich bei meinem Wachstum. Falls du an einem Schritt dieser Anleitung nicht weiterkommst, verwende die Kommentarfunktion und ich werde dir sobald wie möglich mit Rat und Tat zur Seite stehen. Vielen Dank für deinen Besuch.

Jenkins deutsche Komplettanleitung

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.