Jenkins ist ein Automatisierungsserver, der aus dem Hudson-Projekt hervorgegangen ist. Jenkins ist eine serverbasierte Anwendung, die in einem Java-Servlet-Container ausgeführt wird und viele SCM-Softwaresysteme (Source Control Management) unterstützt, darunter Git, SVN und Mercurial. Jenkins bietet Hunderte von Plugins zur Automatisierung Ihres Projekts. Jenkins, erstellt von Kohsuke Kawaguchi, wurde erstmals 2011 unter MIT-Lizenz veröffentlicht und ist eine kostenlose Software.
In diesem Tutorial zeige ich Ihnen, wie Sie die neueste stabile Jenkins-Version auf Ubuntu Server 18.04 LTS (Bionic Beaver) installieren. Wir werden Jenkins auf unserem eigenen Domänennamen ausführen und Jenkins so installieren und konfigurieren, dass es unter dem Reverse-Proxy des Apache-Webservers ausgeführt wird.
Voraussetzungen
- Ubuntu 18.04
- Root-Rechte
Was werden wir tun?
- Installieren Sie Java
- Installieren Sie Jenkins
- Installieren und konfigurieren Sie Apache2 als Reverse Proxy für Jenkins
- UFW-Firewall konfigurieren
- Jenkins konfigurieren
- Jenkins-Sicherheit
- Testen
Schritt 1 – Java installieren
Jenkins ist eine Java-basierte Anwendung, daher müssen wir Java OpenJDK auf dem Server installieren. In diesem Schritt installieren wir Java 8 aus einem PPA-Repository, das wir zuerst hinzufügen werden.
Installieren Sie Software-Properties-Common Packages und fügen Sie dann das Java OpenJDK PPA-Repository hinzu.
sudo apt install software-properties-common apt-transport-https -y
sudo add-apt-repository ppa:openjdk-r/ppa -y
Installieren Sie nun Java 8 mit dem apt-Befehl.
sudo apt install openjdk-8-jdk -y
Überprüfen Sie nach Abschluss der Installation die auf dem System installierte Java-Version.
java -version
Und Sie erhalten das Java OpenJDK 1.8, das jetzt auf dem Ubuntu 18.04-System installiert ist.
Hinweis:
- Wenn Sie mehrere Java-Versionen auf Ihrem System haben, ändern Sie die Standard-Java-Version mit dem folgenden Befehl.
sudo update-alternatives --config java
Schritt 2 – Jenkins installieren
Jenkins stellt ein Ubuntu-Repository für die Installationspakete bereit und wir werden Jenkins aus diesem Repository installieren.
Fügen Sie den Jenkins-Schlüssel und das Repository mit dem folgenden Befehl zum System hinzu.
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
echo 'deb https://pkg.jenkins.io/debian-stable binary/' | tee -a /etc/apt/sources.list
Aktualisieren Sie nun das Repository und installieren Sie Jenkins.
sudo apt update
sudo apt install jenkins -y
Wenn die Installation abgeschlossen ist, starten Sie den Jenkins-Dienst und fügen Sie ihn der Startzeit hinzu.
systemctl start jenkins
systemctl enable jenkins
Jenkins läuft jetzt auf dem Ubuntu 18.04-Server und läuft auf dem Standardport „8080“. Überprüfen Sie es mit netstat wie unten.
netstat -plntu
Und Sie erhalten das Ergebnis wie folgt.
Schritt 3 – Installieren und konfigurieren Sie Apache2 als Reverse-Proxy für Jenkins
In diesem Tutorial führen wir Jenkins hinter einem Apache-Webserver aus und konfigurieren Apache als Reverse-Proxy für Jenkins.
Zuerst werden wir Apache installieren und einige erforderliche Module aktivieren, und dann werden wir die virtuelle Hostdatei mit dem Domänennamen jenkins.hakase-labs.io für Jenkins erstellen. Bitte verwenden Sie hier Ihren eigenen Domainnamen und ersetzen Sie ihn in allen Konfigurationsdateien, wo immer er erscheint.
Installieren Sie den Apache2-Webserver aus dem Ubuntu-Repository.
sudo apt install apache2 -y
Wenn die Installation abgeschlossen ist, aktivieren Sie die Module proxy und proxy_http, damit wir Apache als Frontend-Server/Reverse-Proxy für Jenkins konfigurieren können.
a2enmod proxy
a2enmod proxy_http
Erstellen Sie als Nächstes eine neue virtuelle Hostdatei für Jenkins im Verzeichnis „sites-available“.
cd /etc/apache2/sites-available/
vim jenkins.conf
Fügen Sie die Konfiguration des virtuellen Hosts unten ein.
<Virtualhost *:80> ServerName jenkins.hakase-labs.io ProxyRequests Off ProxyPreserveHost On AllowEncodedSlashes NoDecode <Proxy http://localhost:8080/*> Order deny,allow Allow from all </Proxy> ProxyPass / http://localhost:8080/ nocanon ProxyPassReverse / http://localhost:8080/ ProxyPassReverse / http://jenkins.hakase-labs.io/ </Virtualhost>
Speichern und beenden Sie, aktivieren Sie dann den virtuellen Jenkins-Host mit dem Befehl a2ensite.
a2ensite jenkins
Starten Sie die Apache- und Jenkins-Dienste neu.
systemctl restart apache2
systemctl restart jenkins
Die Installation und Konfiguration von Apache2 als Reverse-Proxy für Jenkins ist abgeschlossen.
Schritt 4 – UFW-Firewall konfigurieren
Bevor wir die UFW-Firewall auf dem Ubuntu-Server aktivieren, müssen wir den Port für grundlegende Dienste wie SSH, HTTP und HTTPS hinzufügen.
Fügen Sie der ufw-Firewall SSH-, HTTP- und HTTPS-Dienste hinzu.
ufw allow ssh
ufw allow http
ufw allow https
Starten und aktivieren Sie nun die ufw-Firewall.
ufw enable
Geben Sie 'y' ein und drücken Sie die Eingabetaste.
Die UFW-Firewall ist jetzt aktiviert und der HTTP-Port wurde hinzugefügt.
Schritt 5 – Jenkins konfigurieren
Jenkins läuft unter dem Domainnamen „http://jenkins.hakase-labs.io“. Öffnen Sie Ihren Webbrowser und geben Sie die URL ein.
Sie erhalten den Bildschirm, der Sie auffordert, das anfängliche Administratorkennwort einzugeben. Ein Passwort wurde bereits von Jenkins generiert, also müssen wir nur die Ergebnisse anzeigen und in das Passwortfeld kopieren.
Zeigen Sie das anfängliche Admin-Passwort Jenkins mit dem cat-Befehl an.
cat /var/lib/jenkins/secrets/initialAdminPassword
Fügen Sie die Ergebnisse auf dem Bildschirm ein und klicken Sie auf „Weiter“.
Jetzt sollten wir einige Plugins in Jenkins installieren, um eine gute Grundlage für die spätere Verwendung zu erhalten. Wählen Sie „Vorgeschlagene Plugins installieren“ und klicken Sie darauf.
Installation von Jenkins-Plugins läuft.
Nachdem die Plugin-Installation abgeschlossen ist, müssen wir ein neues Admin-Passwort erstellen. Geben Sie Ihren Admin-Benutzernamen, Ihr Passwort, Ihre E-Mail-Adresse usw. ein und klicken Sie auf „Speichern und fortfahren“.
Geben Sie für die Instanzkonfiguration den Jenkins-Domänennamen „http://jenkins.hakase-labs.io“ ein und klicken Sie auf die Schaltfläche „Speichern und fertig stellen“.
Klicken Sie nun auf die Schaltfläche „Jenkins verwenden“.
Und Sie werden zum Jenkins-Admin-Dashboard weitergeleitet.
Die Installation und Konfiguration von Jenkins wurde erfolgreich abgeschlossen
Schritt 6 – Jenkins-Sicherheit
Vom Jenkins-Admin-Dashboard aus müssen wir die Standardsicherheitseinstellungen für Jenkins konfigurieren, auf „Jenkins verwalten“ und dann auf „Globale Sicherheit konfigurieren“ klicken.
Jenkins stellt im Abschnitt „Zugriffskontrolle“ mehrere Autorisierungsmethoden bereit. Wir werden die „Matrix-basierte Sicherheit“ verwenden, damit wir alle Benutzerrechte kontrollieren können.
Fügen Sie den Benutzer „hakase“ im Feld „Benutzer/Gruppe“ hinzu und klicken Sie auf „Hinzufügen“.
Geben Sie dem 'hakase'-Benutzer alle Privilegien, indem Sie alle Optionen aktivieren, und klicken Sie auf die Schaltfläche 'Speichern'.
Sie werden zum Dashboard weitergeleitet, und wenn es eine Anmeldeoption gibt, geben Sie einfach Ihren Admin-Benutzer und Ihr Passwort ein.
Schritt 7 – Testen
In diesem Abschnitt wollen wir einen einfachen Job für den Jenkins-Server erstellen. Wir erstellen einen einfachen Job zum Testen von Jenkins und zum Ermitteln der Serverlast mit dem Befehl top.
Klicken Sie im Jenkins-Admin-Dashboard auf „Neuen Job erstellen“.
Geben Sie den Jobnamen ein. Wir verwenden hier „Checking System“, wählen „Freestyle Project“ und klicken auf „OK“.
Wechseln Sie zur Registerkarte „Bauen“. Wählen Sie bei „Build-Schritt hinzufügen“ die Option „Shell ausführen“.
Geben Sie den folgenden Befehl in das Feld ein.
top -b -n 1 | head -n 5
Klicken Sie auf „Speichern“.
Sie befinden sich nun auf der Jobseite des Jobs 'Projektprüfsystem'. Klicken Sie auf „Build Now“, um den Job „Checking System“ auszuführen.
Nachdem der Job ausgeführt wurde, sehen Sie den 'Build History', klicken Sie auf den ersten Job, um die Ergebnisse zu sehen.
Hier sind die Ergebnisse des von Jenkins ausgeführten Jobs.
Die Installation und Konfiguration des Jenkins-Automatisierungstools mit Apache2 als Reverse-Proxy auf Ubuntu 18.04 wurde erfolgreich abgeschlossen.
Referenzen
- https://wiki.jenkins.io/
- https://wiki.jenkins.io/Standard+Security+Setup
- https://jenkins-le-guide-complet.github.io/