Sich wiederholende Aufgaben sind in der Regel mühsam und verbrauchen am Ende viel Zeit und Energie. Im Laufe der Zeit wurden mehrere Automatisierungstools entwickelt, um den Aufwand für die Ausführung sich wiederholender Aufgaben zu verringern. Ein solches Automatisierungstool ist Jenkins. Jenkins ist ein Open-Source-Automatisierungsserver, der entwickelt wurde, um Softwareentwicklern beim Erstellen, Testen und Bereitstellen von Anwendungen zu helfen und dadurch den kontinuierlichen Integrations- und Bereitstellungsprozess zu rationalisieren.
Wir haben bereits einen Artikel darüber geschrieben, wie man Jenkins unter CentOS 8/RHEL 8 installiert. In diesem Artikel werden wir die Dinge ein wenig anders machen und den Jenkins-Container als systemd-Dienst mit Docker ausführen.
Voraussetzungen
Ein paar Dinge sind erforderlich, bevor Sie fortfahren.
- Docker auf Ihrem Linux-System installiert.
- Ein normaler Benutzer mit sudo-Berechtigungen.
Schritt 1) Docker-Engine installieren
Zunächst muss die Docker-Engine auf Ihrem System installiert sein. Wir haben einen ausführlichen Artikel zur Installation von Docker auf CentOS 8 / RHEL 8. Führen Sie den folgenden Docker-Befehl aus, um die Docker-Version anzuzeigen
$ sudo docker version
Aus dem obigen Snippet haben wir bestätigt, dass Docker installiert ist und dass wir die Docker-Version 19.03.13 ausführen.
Schritt 2) Erstellen Sie einen Jenkins-Benutzer
Als Nächstes erstellen wir einen „Jenkins“-Systembenutzer, der den Jenkins-Dienst verwaltet. Aber erstellen Sie zuerst eine Systemgruppe für Jenkins:
$ sudo groupadd --system jenkins
Erstellen Sie dann den Jenkins-Systembenutzer
$ sudo useradd -s /sbin/nologin --system -g jenkins jenkins
Fügen Sie schließlich den Jenkins-Benutzer wie gezeigt zur Docker-Gruppe hinzu:
$ sudo usermod -aG docker jenkins
Um zu bestätigen, dass der Jenkins-Benutzer zur Docker-Gruppe hinzugefügt wurde, führen Sie den id-Befehl wie gezeigt aus
$ id jenkins
Ausgabe ist,
[[email protected] ~]$ id jenkins uid=991(jenkins) gid=986(jenkins) groups=986(jenkins),989(docker) [[email protected] ~]$
Fantastisch! Fahren wir fort und ziehen ein Jenkins-Image.
Schritt 3) Jenkins-Image vom Docker-Hub abrufen
Rufen Sie den folgenden Befehl auf, um das neueste Jenkins-Image vom Docker-Hub abzurufen.
$ sudo docker pull jenkins/jenkins:lts
Dies dauert normalerweise einige Sekunden bei einer ziemlich stabilen Internetverbindung. Überprüfen Sie nach dem Herunterladen, ob das Jenkins-Image vorhanden ist, indem Sie den folgenden Befehl aufrufen:
$ sudo docker images | grep jenkins
Die Ausgabe des obigen Befehls wäre:
[[email protected] ~]$ sudo docker images | grep jenkins jenkins/jenkins lts f669140ba6ec 6 days ago 711MB [[email protected] ~]$
Jenkins benötigt einen dauerhaften Speicher, um Daten zu speichern und auch im Falle eines Containerabsturzes wiederzuverwenden. Daher erstellen wir wie gezeigt ein Speicherverzeichnis.
$ sudo mkdir /var/jenkins $ sudo chown -R 1000:1000 /var/jenkins
Schritt 4) Erstellen Sie einen systemd-Dienst für Jenkins
Erstellen Sie mit Ihrem bevorzugten Texteditor eine Jenkins-Systemd-Datei wie gezeigt:
$ sudo vi /etc/systemd/system/jenkins-docker.service
Fügen Sie den folgenden Inhalt ein und speichern Sie die Datei.
[Unit] Description=Jenkins Server Documentation=https://jenkins.io/doc/ After=docker.service Requires=docker.service [Service] Type=simple User=jenkins Group=jenkins TimeoutStartSec=0 Restart=on-failure RestartSec=30s ExecStartPre=-/usr/bin/docker kill jenkins-server ExecStartPre=-/usr/bin/docker rm jenkins-server ExecStartPre=/usr/bin/docker pull jenkins/jenkins:lts ExecStart=/usr/bin/docker run --name jenkins-server --publish 8080:8080 --publish 50000:50000 --volume /var/jenkins:/var/jenkins_home jenkins/jenkins:lts SyslogIdentifier=jenkins ExecStop=/usr/bin/docker stop jenkins-server [Install] WantedBy=multi-user.target
Um den Jenkins-Dienst zu starten, laden Sie zuerst systemd neu und starten Sie danach Jenkins.
$ sudo systemctl daemon-reload $ sudo systemctl start jenkins-docker
Lassen Sie uns nun überprüfen, ob Jenkins ausgeführt wird. Dazu führen wir Folgendes aus:
$ sudo systemctl status jenkins-docker
Toll ! Jenkins läuft als systemd-Dienst. Da Jenkins auf Port 8080 ausgeführt wird, öffnen Sie den Port auf der Firewall wie gezeigt:
$ sudo firewall-cmd --permanent --add-port=8080/tcp $ sudo firewall-cmd --reload
Um Jenkins einzurichten, durchsuchen Sie einfach die URL des Servers wie gezeigt
http://server-ip:8080
Sie erhalten die Seite „Unlock Jenkins“ wie gezeigt. Um fortzufahren, müssen Sie das Passwort angeben, das sich in der angezeigten Datei befindet
[[email protected] ~]$ cat /var/jenkins/secrets/initialAdminPassword 9c61bd823a404056bf0a408f4622aafc [[email protected] ~]$
Wenn Sie fertig sind, klicken Sie auf „Weiter“
Wählen Sie als Nächstes die Option „Vorgeschlagene Plugins installieren“ wie gezeigt aus.
Erstellen Sie danach einen administrativen Benutzer für das Jenkins-Konto und klicken Sie auf „Speichern und fortfahren“
Der Installer führt Sie bis zum Schluss durch die restlichen Schritte. Nach erfolgreicher Installation erhalten wir das folgende Jenkins-Dashboard
Und es ist eine Hülle. In dieser Anleitung haben Sie gelernt, wie Sie Jenkins in einem Docker-Container als Systemdienst ausführen.
Auch lesen : So installieren und konfigurieren Sie Jenkins unter Ubuntu 20.04