Jenkins auf Debian 9 installieren

Jenkins schnell und einfach installieren
Jenkins ist ein Open-Source-Automatisierungsserver zur automatischen Wiederholung von technischen Aufgaben, die an der kontinuierlichen Integration und Lieferung von Software beteiligt sind.
In diesem Artikel zeige ich dir, wie du Jenkins auf dem neuen Debian9 installierst und die Verbindung zum Jenkins mit Hilfe von Let’s Encrypt verschlüsseln kannst.
Server vorbereiten
Jenkins bietet einen eigenen Webserver an. Dieser ist allerdings nicht verschlüsselt. Daher bietet es sich an, einen Reversproxy mit Hilfe von Apache2 vor den Jenkins Webserver zu schalten.
Installiere dir hierzu einen Apache2 Webserver, bevor du ihn mit Hilfe von Let’s Encrypt verschlüsseln kannst. In diesem Artikel zeige ich dir wie das geht. Richte deinen Webserver so ein, dass Anfragen über HTTP auf HTTPS automatisch weitergeleitet werden.
Um Apache als Proxy nutzen zu können, müssen die entsprechenden Erweiterungen noch aktiviert werden. Nutze dafür folgende Befehle:
a2enmod proxy a2enmod proxy_http a2enmod headers
Anschließend bearbeite die beiden Apache Config Dateien /etc/apache2/sites-available/000-default.conf und /etc/apache2/sites-available/000-default-le-ssl.conf.
Der Inhalt für 000-default.conf:
<VirtualHost deineDomain.tld:80> ServerName deineDomain.tld ServerAdmin deineE-Mail-Adresse ErrorLog ${APACHE_LOG_DIR}/jenkins-error.log CustomLog ${APACHE_LOG_DIR}/jenkins-access.log combined RewriteEngine on RewriteCond %{SERVER_NAME} =deineDomain.tld RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent] </VirtualHost>
So sollte das Ergebnis dann so aussehen:
Der Inhalt für 000-default-le-ssl.conf:
<IfModule mod_ssl.c> <VirtualHost deineDomain.tld:443> ServerName deineDomain.tld ServerAdmin deineE-Mail-Adresse ErrorLog ${APACHE_LOG_DIR}/jenkins-ssl-error.log CustomLog ${APACHE_LOG_DIR}/jenkins-ssl-access.log combined SSLCertificateFile /etc/letsencrypt/live/deineDomain.tld/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/deineDomain.tld/privkey.pem Include /etc/letsencrypt/options-ssl-apache.conf ProxyPass / http://localhost:8080/ nocanon ProxyPassReverse / http://localhost:8080/ ProxyPassReverse / http://deineDomain.tld ProxyPreserveHost On ProxyRequests Off AllowEncodedSlashes NoDecode <Proxy http://localhost:8080/*> Order deny,allow Allow from all </Proxy> </VirtualHost> </IfModule>
Das Ergebnis sollte dann so aussehen:
Anschließend starte Apache2 neu:
service apache2 restart
Anschließend kannst du Jenkins installieren.
Jenkins installieren
Noch ist Jenkins noch nicht im Standard-Repository von Debian 9 enthalten. Daher muss das Repository der Entwickler aktiviert werden. Führe dazu folgende Befehle in dieser Reihenfolge aus:
wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | apt-key add - echo deb http://pkg.jenkins.io/debian-stable binary/ | tee /etc/apt/sources.list.d/jenkins.list apt-get update
Anschließend lässt sich Jenkins über apt installieren
apt -y install jenkins
Damit Jenkins nicht von außerhalb über den Port 8080 erreichbar ist, sondern nur über den verschlüsselten Apache Proxy, muss die Config von Jenkins noch angepasst werden.
Konfiguration anpassen
Bearbeite hierzu mit Nano die Datei /etc/default/jenkins
nano /etc/default/jenkins
Anschließend füge in die letzte Zeile folgendes ein:
--httpListenAddress=127.0.0.1
Am Ende sollte das Ergebnis so aussehen:
Starte anschließend Jenkins neu.
service jenkins restart
Installation testen
Rufe in einem Browser deiner Wahl folgenden Link auf:
http://DomainOderIP:8080/
Da du den Zugriff auf den Port von außerhalb gesperrt hast, sollte das nicht funktionieren.
http://DomainOderIP/
Jetzt solltest du auf folgende Seite weitergeleitet werden und anschließend Jenkins sehen.
https://DomainOderIP/
Jenkins einrichten
Hast du Jenkins zum ersten Mal aufgerufen, wirst du nach einem Key gefragt. Diesen findest du, indem du folgenden Befehl im Terminal benutzt:
cat /var/lib/jenkins/secrets/initialAdminPassword
Wähle nun die empfohlenen Pakete aus. Diese sollten jetzt automatisch installiert werden:
Anschließend wirst du gebeten einen Benutzer anzulegen. Achte darauf, dass du ein möglichst sicheres Passwort verwendest.
Anschließend ist Jenkins fertig eingerichtet:
Fazit
Mit ein wenig Aufwand lässt sich Jenkins auf deinem Debian 9 Server einrichten. Durch die Verwendung von Apache2 als Revers Proxy und das kostenlose Zertifikat von Let’s Encrypt ist die Verbindung zu Jenkins auch von außerhalb sicher und verschlüsselt.
Vielen Dank für dein Feedback!
Wir melden uns bei dir, sobald der Artikel zu deinem Wunschthema fertig ist.
Übrigens: kennst du schon unser Tutorial zum Thema Dockerize Wordpress mit Docker Compose?