Jenkins ist ein weit verbreiteter Open-Source-Automatisierungsserver für die kontinuierliche Entwicklung, das Testen und die Bereitstellung von Anwendungen. Er ermöglicht die Automatisierung sich wiederholender Aufgaben und erleichtert die Integration von Code innerhalb eines Projekts, was zu einer höheren Produktivität und einer Verringerung menschlicher Fehler führt. Mit einer modularen Architektur und zahlreichen Plugins lässt sich Jenkins leicht in beliebte Tools integrieren.
Was ist CI/CD?
CI/CD steht für „Continuous Integration / Continuous Delivery“ (kontinuierliche Integration / kontinuierliche Bereitstellung) und ist eine Entwicklungspraktik, die darauf abzielt, die Schritte im Lebenszyklus einer Anwendung zu automatisieren. Sie hilft, menschliche Fehler zu reduzieren, die Lieferzeiten zu verkürzen und die Qualität der Anwendungen zu verbessern.
- Die kontinuierliche Integration (CI) ermöglicht es Entwicklern, häufig Code in ein gemeinsames Repository zu übermitteln. Jenkins stellt automatisch sicher, dass jede Änderung kompiliert, getestet und validiert wird, bevor sie ins Hauptprojekt integriert wird.
- Die kontinuierliche Bereitstellung (CD) stellt sicher, dass der validierte Code automatisch zur Bereitstellung bereitgestellt wird, sei es in einer Test-, Vorproduktions- oder Produktionsumgebung.
Warum Jenkins verwenden?
Jenkins ist sehr beliebt, um sich wiederholende Aufgaben zu automatisieren und die Arbeit von Entwicklern und DevOps-Teams zu erleichtern. Hier sind die Hauptgründe, warum Jenkins eine unverzichtbare Wahl ist:
Open-Source- und flexibles Tool
Jenkins ist vollständig Open-Source, was bedeutet, dass es kostenlos ist und von einer aktiven Community profitiert, die ständig zu seiner Verbesserung beiträgt.
Seine modulare Architektur basiert auf Tausenden von Plugins, die es ermöglichen, Jenkins an jede Anforderung anzupassen.
Automatisierung und Zeitersparnis
Jenkins ermöglicht die Automatisierung des gesamten Entwicklungszyklus, vom ersten Build bis zur endgültigen Bereitstellung. Es kann komplexe Aufgaben ohne menschliches Eingreifen ausführen, wodurch Teams sich auf das Schreiben von Code und Innovation konzentrieren können, anstatt sich mit wiederkehrenden manuellen Prozessen zu beschäftigen.
Kontinuierliche Integration und kontinuierliche Lieferung (CI/CD)
Jenkins ist eines der am häufigsten verwendeten Tools zum Aufbau von CI/CD-Pipelines. Diese Pipelines ermöglichen eine schnellere und zuverlässigere Integration, Prüfung und Lieferung von Code.
Kompatibilität mit allen Plattformen
Jenkins ist plattformübergreifend. Es kann lokal installiert, in einem Docker-Container ausgeführt, auf On-Premise-Servern bereitgestellt oder in der Cloud gehostet werden. Diese Flexibilität ermöglicht es Teams, es in verschiedenen Infrastrukturen einzusetzen, unabhängig von ihrer Arbeitsumgebung.
Erweiterte Pipeline-Verwaltung mit Jenkinsfile
Mit Jenkins ist es möglich, CI/CD-Pipelines in Form von Code durch eine Datei namens Jenkinsfile zu definieren. Diese Datei ermöglicht es,
- die Schritte der Pipeline (Build, Tests, Validierung, Bereitstellung) genau zu beschreiben.
- die Pipeline-Konfiguration einfach zu versionieren und zu teilen.
- die Zusammenarbeit zwischen DevOps-Teams und Entwicklern zu erleichtern.
Eine aktive Community und umfassender Support
Als gereiftes Open-Source-Projekt hat Jenkins eine immense Community, die zu seiner Verbesserung beiträgt und regelmäßig Updates und neue Plugins anbietet.
Unternehmen, die erweiterten Support benötigen, können ebenfalls auf mehrere Drittanbieterdienste zurückgreifen, die kommerzielle Lösungen basierend auf Jenkins anbieten.
Installation und Konfiguration
Jenkins ist ein leistungsstarkes, aber einfach zu installierendes Tool. Dieser Leitfaden erklärt, wie man Jenkins auf Linux installiert und die anfängliche Konfiguration für einen erfolgreichen Start durchführt.
Installation
1. Zuerst muss das Jenkins-Repository hinzugefügt und die Pakete aktualisiert werden:
sudo apt update && sudo apt install -y fontconfig openjdk-17-jre
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt update
2. Die Installation von Jenkins erfolgt dann wie folgt:
sudo apt install -y jenkins
3. Den Jenkins-Dienst starten und seinen Status überprüfen:
sudo systemctl start jenkins
sudo systemctl status jenkins
4. Auf seine Web-Oberfläche zugreifen:
Diese ist standardmäßig hier verfügbar: http://localhost:8080.
Wenn du eine Installation über Docker bevorzugst, dann lautet der Befehl wie folgt:
docker run -p 8080:8080 -p 50000:50000 -d --name jenkins jenkins/jenkins:lts
Erstkonfiguration
Beim ersten Zugriff auf Jenkins wird ein initiales Passwort verlangt. Es ist über diesen Befehl verfügbar:
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
Es ist zu beachten, dass Du danach in der Lage sein wirst, neue Benutzer zu erstellen und das Administratorkonto zu ändern.
Darüber hinaus können einige Plugins unverzichtbar sein, insbesondere:
Erstellung des ersten Jobs
In der Jenkins-Oberfläche wähle Neuer Job. Nachdem Du ihm einen Namen gegeben hast, wähle Freestyle-Projekt.
Füge dann ein Repository in Source Code Management hinzu, z.B. https://github.com/dst-project.git
Füge ein einfaches Shell-Script hinzu, um zu testen, z.B.:
echo "Build en cours..." mvn clean package
Nach dem Speichern klicke auf Run build, um zu sehen, wie Jenkins die Aktionen durchführt.
Abschließend
Jenkins ist ein Tool für kontinuierliche Integration und Bereitstellung von großer Wichtigkeit. Seine Flexibilität, das reiche Plugin-Ökosystem und seine aktive Community machen es zu einer bevorzugten Lösung für Teams, die ihre Entwicklungszyklen beschleunigen und zuverlässiger machen wollen.