Jenkins unter Linux installieren und einrichten

Dieser Artikel zeigt euch, wie ihr Jenkins auf eurem Linux installiert und einrichtet. Nachdem wir allgemein über Buildserver gesprochen haben, richten wir uns nun selbst einen ein.
Vorbereitung der Linuxumgebung
Hierfür habe ich mir
eine neue virtuelle Maschine
erstellt und verwende Debian 9 als Betriebssystem. Ich habe mit apt-get update
und apt-get upgrade
das System aktualisiert jedoch keine weiteren Änderungen durchgeführt.
Es handelt sich hierbei um ein ganz frisches System. Mit SSH habe ich mich am System angemeldet und
arbeite via Konsole.
Installation von Jenkins vorbereiten
Notwendige Programme installieren
Als erstes ist Java als Laufzeitumgebung für Jenkins notwendig. Auf der Downloadseite finden wir Informationen darüber, welche Versionen unterstützt werden. Ab der Version 2.164 können Java 8 oder 11 verwendet werden. Mit default-jre wird die Standard Java Laufzeitumgebung für Debian installiert. Derzeit ist das Open JDK. Es ist ebenfalls möglich die Javaumgebung von Oracle gezielt zu installieren. In diesem Beispiel verwende ich das default-jre bzw. OpenJDK.
# Installation der "Standard" JRE
apt-get install default-jre
# Installation einer expliziten OpenJDK-Version
apt-get install openjdk-8-jre
# Prüfen, ob Java korrekt installiert wurde
java -version
Hinweis: Derzeit werden nur Java 8 oder 11 unterstützt. Eine andere Version kann zu Fehlern oder Problemen führen.
Als nächstes installieren wir Git. Git ist unser Programm zur Verwaltung des Quellcodes. Die Installation führen wir folgendermaßen durch:
apt-get install git
# Prüfen, ob Git korrekt installiert wurde
git --version
Wenn die Version von Git (aktuell: git version 2.11.0
) ausgegeben wurde, war die Installation
erfolgreich.
Das wir Git im Standard installieren sollten, hat mit der neuen Oberfläche zu tun. Die Oberfläche BlueOcean soll der neue „Standard“ für Jenkins werden. Ähnlich zu anderen Anbietern von CI/CD (Continuous Integration/Continuous Delivery) soll die Oberfläche intuitiv und einfach bedienbar sein. Weitere Informationen gibt es im Blogartikel zur Einführung von Blue Ocean .
Dabei ist wichtig zu wissen, dass ein Checkout eines Projekts nur noch via Git möglich ist. Das kommt daher, da nur Quellen wie Git, GitHub und Bitbucket oder einer „freien“ Git-URL ausgewählt werden können. Die Oberfläche bietet andere Quellen wie SVN oder Mercurial (noch?) nicht an.

Auswahl für ein neues Projekt in Jenkins Blue Ocean
Die klassische Oberfläche, welche immernoch verwendet werden kann, hat diese Einschränkung nicht. In der lässt sich jeder Schritt (inkl. Checkout bzw. laden des Quellcodes) individuell konfigurieren.

Klassische Oberfläche zur Projekterstellung in Jenkins
Optional: Weitere Programme/Laufzeitumgebungen
Die Grundprogramme (Java und Git) sind nun installiert. Je nach Projekt oder Buildscript sind weitere Anwendungen oder Bibliotheken notwendig. Da ich meine .NET Core-Projekte kompilieren möchte, benötige ich das .NET Core SDK . Das installieren wir folgendermaßen (Auszug aus der Webseite):
# Repository von Microsoft zur bekannten Liste hinzufügen
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.asc.gpg
sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/
wget -q https://packages.microsoft.com/config/debian/9/prod.list
sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list
sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg
sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list
# .NET Core SDK installieren
sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install dotnet-sdk-2.2
# Zum Test die installierte Version ausgeben
dotnet --version
Zudem arbeite ich, bei individuellen Scripts, sehr gerne mit Python. Daher installiere ich zusätzlich die aktuelle Version von Python. Meistens werden Python 2 und 3 zusammen mit Linux ausgeliefert:
# Installation von Python 2
apt-get install python
# Installation von Python 3
apt-get install python3
Sofern ihr weitere Programme oder Bibliotheken benötigt lohnt es sich, diese vorher zu installieren. Dadurch könnt ihr nach der Installation direkt loslegen mit der Konfiguration, ohne euch über notwendige Installationen (außer den vergessenen Programmen 😉 ) Gedanken machen zu müssen.
Jenkins installieren
Da die Voraussetzung (insbesondere die Java-Umgebung) geschaffen wurden, können wir nun Jenkins installieren. Auf der Downloadseite finden wir eine schnelle und kurze Anleitung. Im Handbuch sind weitere Informationen erhalten.
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get install jenkins
Um die Einrichtung abzuschließen, müssen wir nun einen Browser öffnen. Standardmäßig wird Jenkins
unter Port 8080 ausgeführt. Zugreifen können wir über den Hostnamen oder die IP-Adresse. Diese
Informationen lassen sich via hostname
oder ip address
ausgeben. In meinem Fall rufe
ich http://192.168.100.20:8080 auf. Es ist wichtig, den Port hinter dem Doppelpunkt anzugeben,
ansonsten erreicht ihr die Seite nicht.
Ihr werdet anschließend folgende Seite sehen:

Seite zum Entsperren von Jenkins
Es gibt keinen Standardadministrator für Jenkins. Daher legt Jenkins ein Zufallspasswort in einer
Datei auf dem Server ab. Die Idee dahinter ist, dass der Anwender, welcher Zugriff auf den Server
hat, auch berechtigt ist, Jenkins zu installieren und administrieren. Mittels cat
können wir den
Wert auslesen und in der Oberfläche eintragen.
cat /var/lib/jenkins/secrets/initialAdminPassword
> a1234567ca694a63bbf222fa7abc260b
Anschließend werden wir gefragt, ob wir die “Standardplugins” verwenden oder die Plugins selbst auswählen möchten. Es besteht die Möglichkeit, dass bei der linken Variante einige Plugins installiert werden, welche wir hinterher nicht benötigen.
Für einen schnellen Einstieg empfehle ich die „Standardkonfiguration“ zu verwenden. Dadurch sind die meisten Plugins vorhanden und wir können direkt loslegen. Die rechte Variante empfehle ich für Anwender, die sich mit Jenkins auskennen und wissen, welche Plugins notwendig sind. Bestimmt gibt es andere Blogs, welche auf die optimale Einrichtung von Jenkins für Umgebung X (Java, Ruby, .NET..?) eingehen und erklären, welche Plugins lohnenswert sind, und welche nicht benötigt werden.

Auswählen der Plugins für Jenkins
Anschließend sehen wir den Installationsprozess der gewählten Plugins.

Der Installationsprozess grafisch dargestellt
Die anschließenden Dialoge dienen dazu einen ersten Benutzer anzulegen und die Jenkins URL zu definieren. Nachdem der Benutzer angelegt wurde, können wir uns damit anmelden.
Ihr werdet anschließend eine Seite vorfinden, welche keine Projekte vorweist. Nun seid ihr bereit zu starten.

Startseite nach der Anmeldung mit dem neuen Benutzer
Fazit
Dieser Artikel hat euch gezeigt, wie Jenkins grundsätzlich installiert und eingerichtet wird. Im zweiten Teil erstellen wir ein Projekt und lassen es automatisch prüfen und kompilieren. Habt ihr Anmerkungen zur Installation oder bestimmte Hinweise?
Bildnachweis: Unsplash.com