CI/CD entsperren: Erfolgreiche Installation von Jenkins unter Ubuntu

Sind Sie viel Zeit damit verbracht, Code in Ihrer Infrastruktur mit vielen Schritten und Software bereitzustellen? Machen Sie sich keine Sorgen, Sie sind hier genau richtig, um zu lernen, wie Sie Jenkins, das am häufigsten verwendete Open-Source-Tool, installieren können.

In diesem Tutorial erfahren Sie, wie Sie Jenkins auf einer Ubuntu-Maschine installieren können, damit Sie Code mit nur einem Klick erstellen und bereitstellen können.

Lesen Sie weiter und beginnen Sie mit der Installation!

Voraussetzungen

Dieser Beitrag wird ein schrittweises Tutorial sein. Um mitzumachen, stellen Sie sicher, dass Sie eine Ubuntu-Maschine haben. Dieses Tutorial verwendet Ubuntu 18.04 mit installiertem Apache.

Installation von Java Version 11 auf einer Ubuntu-Maschine

Jenkins ist ein Continuous Integration (CI) und Continuous Deployment (CD) Tool, das in verschiedenen Servlet-Containern ausgeführt werden kann, wie z.B. Apache Tomcat oder GlassFish. Aber für diese Demo wird Jenkins auf seinem integrierten Java-Servlet-Container-Server ausgeführt.

Es gibt mehrere Java-Implementierungen, die Sie für die Arbeit mit Jenkins verwenden können, aber OpenJDK ist die beliebteste, die Sie in diesem Tutorial installieren und verwenden werden.

1. Melden Sie sich bei Ihrer Ubuntu-Maschine mit Ihrem bevorzugten SSH-Client an.

2. Führen Sie anschließend die folgenden Befehle aus, um ein Verzeichnis mit dem Namen ~/install_jenkins_demo zu erstellen und in dieses Verzeichnis zu wechseln.

mkdir ~/install_jenkins_demo
cd ~/install_jenkins_demo

3. Führen Sie den apt install-Befehl unten aus, um Java auf Ihrer Maschine zu installieren.

# Installation von Java Version: Java SE 11 (LTS)
sudo apt install default-jdk 
Installing Java Version: Java SE 11 (LTS)

4. Führen Sie schließlich den folgenden Befehl aus, um die Version von Java auf Ihrem Computer zu überprüfen. Dadurch stellen Sie sicher, dass Sie Java erfolgreich installiert haben.

# Überprüfen der Java-Version zur Bestätigung der Java-Installation.
java -version
Checking the Version of Java to verify Java installation

Installieren Sie Jenkins auf einer Ubuntu 18.04 LTS-Instanz

Jetzt, da Sie Java auf dem Ubuntu-Rechner installiert haben, ist es an der Zeit, Jenkins auf Ihrem Computer zu installieren. Die Installation von Jenkins ist ziemlich ähnlich wie die Installation anderer Pakete auf Ihrem Computer.

Vorausgesetzt, Sie sind immer noch im SSH-Client angemeldet:

1. Führen Sie zunächst den apt update Befehl aus, um Ihre Systempakete zu aktualisieren.

sudo apt update

2. Führen Sie anschließend den unten stehenden wget Befehl aus, um den Jenkins-Public Key zu Ihrem System hinzuzufügen.

Das Hinzufügen des öffentlichen Schlüssels ermöglicht es der Jenkins-Website, das offizielle Jenkins-Repository oder benötigte Pakete herunterzuladen.

wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -

3. Führen Sie die folgenden Befehle aus, um das offizielle Jenkins-Repository zu Ihrem System hinzuzufügen und Ihr System zu aktualisieren.

# Hinzufügen des offiziellen Jenkins-Repositorys zum System
sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > \
    /etc/apt/sources.list.d/jenkins.list'
# Aktualisierung des Pakets
sudo apt-get update

4. Führen Sie nun den folgenden Befehl aus, um das Jenkins-Paket zu installieren.

# Installation des Jenkins-Pakets
sudo apt-get install Jenkins
Installing the Jenkins package on an ubuntu machine

5. Führen Sie abschließend den Befehl service unten aus, um den Status des Jenkins-Dienstes zu überprüfen. # Validieren des Jenkins-Dienstes auf der Ubuntu-Maschine service jenkins status

# Validieren des Jenkins-Dienstes auf der Ubuntu-Maschine
service jenkins status

Wie unten zu sehen ist, zeigt der Status an, dass der Jenkins-Dienst aktiv ist.

Verifying the status of Jenkins service

Konfigurieren einer Jenkins-Instanz

Sie sind jetzt halbwegs erfolgreich mit der Installation von Jenkins. Bevor Sie jedoch tatsächlich damit beginnen können, müssen Sie es mit grundlegenden Annehmlichkeiten einrichten. Wie? Der erste Schritt bei der Einrichtung von Jenkins besteht darin, den neu installierten Jenkins zu entsperren.

Angenommen, Sie sind immer noch im SSH-Client angemeldet:

1. Öffnen Sie Ihren bevorzugten Browser und navigieren Sie zur IP-Adresse des Servers gefolgt von Port 8080 wie jenkins-ip:8080. Nach dem Navigieren zum Link müssen Sie Jenkins entsperren, indem Sie das Administratorkennwort angeben. Das Administratorkennwort befindet sich im Verzeichnis /var/lib/jenkins/secrets/initialAdminPassword auf dem Server (Schritt zwei).

Unlocking Jenkins Instance

2. Führen Sie den Befehl cat unten aus, um das Administratorpasswort auf Ihrem Computer aus dem Verzeichnis /var/lib/jenkins/secrets/initialAdminPassword hinzuzufügen.

cat /var/lib/jenkins/secrets/initialAdminPassword

Wie unten zu sehen ist, ist die riesige Zeichenfolge im Ausgabefenster das Administratorpasswort. Notieren Sie sich das Administratorpasswort, da Sie es benötigen, um Jenkins zu entsperren (Schritt drei).

Checking the Initial Admin Password

3. Wechseln Sie zurück zu Ihrem Webbrowser (Jenkins entsperren Seite) und geben Sie das Administratorpasswort ein, das Sie in Schritt zwei notiert haben.

Sobald Sie Jenkins freigeschaltet haben, leitet Ihr Browser Sie zu einer Seite weiter, auf der Sie Ihre Jenkins-Instanz mit Plugins anpassen können (Schritt vier).

4. Auf der Seite „Jenkins anpassen“ klicken Sie auf die Option „Vorgeschlagene Plugins installieren“.

Das Jenkins-Plugin ist ein Drittanbieter-Tool, das mit Jenkins integriert ist und es Ihnen ermöglicht, Aufgaben wie das Git-Plugin auszuführen. Das Git-Plugin ermöglicht die Verbindung mit einem Git-Repository, das Ausführen von Git-Befehlen usw.

Installing the Jenkins Plugin

5. Füllen Sie die Details des Admin-Benutzers wie unten gezeigt aus und klicken Sie auf „Speichern und Fortfahren“, um einen Admin-Benutzer zu erstellen. Dieser Admin-Benutzer ermöglicht Ihnen die Arbeit mit dem Jenkins-Benutzeroberflächendashboard oder der Jenkins-Instanz.

Sobald Sie auf „Speichern und Fortfahren“ klicken, erscheint ein Bildschirm zur Instanzkonfiguration, wie in Schritt fünf gezeigt.

Standardmäßig verfügt Jenkins über einen Admin-Benutzer mit Benutzername/Passwort (admin: admin), bietet Ihnen jedoch weiterhin die Möglichkeit, einen Admin-Benutzer Ihrer Wahl zu erstellen. Sie können als Administrator fortfahren, wenn Sie keinen benutzerdefinierten Admin-Benutzer erstellen möchten.

Creating the First Admin user

6. Klicken Sie schließlich auf „Speichern und Abschließen“, um die Instanzkonfiguration zu speichern.

Die Instanzkonfiguration ermöglicht es Ihnen, die Jenkins-URL festzulegen, die Sie verwenden möchten. In diesem Fall verwenden Sie die Standard-URL (d. h. server-ip:8080).

Configuring the Jenkins Instance
Jenkins Running successfully on Port 8080

Ändern eines Jenkins-Instanzstandardports

Zuvor haben Sie gelernt, dass Jenkins standardmäßig auf Port 8080 läuft, was in Ordnung ist. Aber was ist, wenn Sie andere Anwendungen auf dem gleichen Port ausführen müssen, wie zum Beispiel Apache oder NGINX? Keine Sorge! Sie können den Standardport von Jenkins (8080) ändern und die Jenkins-Instanz auf anderen Ports ausführen.

1. Öffnen Sie die Datei /etc/default/Jenkins in Ihrem bevorzugten Texteditor und ändern Sie den Standardport von 8080 auf 9090 und speichern Sie die Änderungen.

Changing the Default Jenkins Port

2. Führen Sie anschließend den untenstehenden Befehl aus, um Jenkins neu zu starten, damit die aktualisierten Konfigurationen wirksam werden.

sudo systemctl restart jenkins

3. Navigieren Sie abschließend zur Jenkins-URL, aber ändern Sie dieses Mal den Port auf 9090, wie unten gezeigt.

Jenkins Running successfully on Port 9090

Das sichere Ausführen von Jenkins (HTTPS) mit SSL-Zertifikat

Zu diesem Zeitpunkt läuft Ihre Jenkins-Instanz perfekt auf Port 9090. Aber ist sie sicher? Nein, das ist sie nicht. Sichern Sie Ihre Jenkins-Instanz und verhindern Sie, dass sie von Angreifern kompromittiert wird, indem Sie ein SSL-Zertifikat aktivieren.

SSL-Zertifikate werden hauptsächlich verwendet, um lokal auf dem Computer zu testen, wenn kein Zertifikat von einer externen Zertifizierungsstelle verfügbar ist.

Um Ihre Jenkins-Instanz zu sichern:

1. Führen Sie jeden der folgenden Befehle aus, um ein Verzeichnis namens ~/Zertifikate zu erstellen, um Zertifikate zu speichern, und wechseln Sie in dieses Verzeichnis.

mkdir ~/certificates
cd ~/certificates

2. Führen Sie anschließend den folgenden openssl-Befehl aus, um eine Zertifikatsanforderung (CSR) und einen privaten Schlüssel zu generieren.

openssl req -x509 -newkey rsa:4096 -keyout apache.key -out apache.crt -days 365 -nodes
Generating a CSR and private key

3. Führen Sie die folgenden Befehle aus, um ein weiteres Verzeichnis (/etc/apache2/ssl) zu erstellen und die Zertifikate aus dem Verzeichnis ~/certificates/ in das Verzeichnis /etc/apache2/ssl zu verschieben.

mkdir /etc/apache2/ssl
mv ~/certificates/* /etc/apache2/ssl/.

4. Öffnen Sie die Standard-SSL-Apache-Site-Konfigurationsdatei (/etc/apache2/sites-available/default-ssl.conf) und fügen Sie die unten stehenden Zeilen hinzu. Stellen Sie sicher, dass Sie <my-server-name> durch den tatsächlichen Namen Ihres Servers ersetzen.

Im folgenden Code geben Sie den Speicherort (Zertifikatsschlüssel und -datei) an, an dem Sie zuvor die SSL-Zertifikate kopiert haben. Außerdem fügen Sie für Jenkins hinzu, um auf Port 9090 umzuleiten, das ProxyPass-Argument hinzu und aktivieren ProxyPreserveHost.

ServerName <my-server-name>
SSLCertificateFile    /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:9090/
ProxyPassReverse / http://127.0.0.1:9090/
Updating default SSL Apache site configuration file

5. Führen Sie nun jeden der folgenden Befehle aus, um das SSL-Modul zu aktivieren, die von Ihnen modifizierte Site (Schritt vier) zu aktivieren und den Apache-Dienst neu zu starten.

# Aktivieren Sie das SSL-Modul, um mit SSL-Verbindungen arbeiten zu können.
sudo a2enmod ssl proxy proxy_http proxy_balancer
# Aktivieren Sie die von Ihnen modifizierte Site (Schritt vier)
sudo a2ensite default-ssl.conf
# Starten Sie den Apache-Dienst neu
sudo service apache2 restart

6. Schließlich navigieren Sie zu Ihrer Jenkins-Instanz, diesmal jedoch unter Verwendung von HTTPS, wie unten gezeigt.

Wie Sie sehen können, öffnet Jenkins erfolgreich mit SSL-Verbindungen auf dem HTTPS-Port. Machen Sie sich keine Sorgen, wenn Sie ein Warnsymbol sehen, das die Nachricht Nicht sicher anzeigt. Sie erhalten diese Warnung, da Sie ein selbstsigniertes Zertifikat (von Ihnen erstellt) verwenden und nicht von der Zertifizierungsstelle.

Accessing Jenkins Instance with SSL connections on HTTPS port

Abschluss

In diesem Tutorial haben Sie gelernt, wie Sie Jenkins auf einer Ubuntu-Maschine installieren und überprüfen können, ob Sie auf eine Jenkins-Instanz sicher zugreifen können.

Jetzt, wie planen Sie, Ihr Spiel mit Jenkins zu verbessern? Vielleicht Webbereitstellungen automatisieren? Oder eine Jenkins CI-CD-Pipeline erstellen, um Ihren Softwareentwicklungsprozess zu verbessern?

Source:
https://adamtheautomator.com/install-jenkins/