GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Jenkins mit Systemd und Docker installieren und ausführen

Wenn Sie Jenkins mit Docker herunterladen und konfigurieren, müssen Sie den Prozess manuell verwalten. Es wird ziemlich unsicher und kompliziert. Also werden wir es mit systemd verwalten. Eigentlich ist es der System- und Dienstmanager für Linux-Betriebssysteme. Es bietet Funktionen zum Starten, Aktivieren, Neustarten und Stoppen von Daemons, Protokollierung usw. bei Bedarf.

In diesem Artikel lade ich das Jenkins-Paket aus dem Docker-Hub-Repository herunter und verwalte es mit dem systemd-Manager. Ich habe Ubuntu Linux verwendet, aber Sie können es in Centos, Debian, Redhat usw. tun, die systemd unterstützen.

Voraussetzungen

  1. Neueste Docker-Version installiert
  2. Internetverbindung zum Herunterladen des Jenkins-Images

Konfiguration

Um einen Prozess auszuführen, benötigen wir Benutzer. Also erstellen wir eine Systemgruppe und fügen der Gruppe einen Systembenutzer hinzu. Da Sie sich nicht anmelden müssen, stellen wir keine Anmelde-Shell zur Verfügung. Ich habe hier den Namen „devops“ gegeben, den Sie frei wählen können.

$ sudo groupadd --system devops
$ sudo useradd -s /sbin/nologin --system -g devops devops

Während der Docker-Installation wurde standardmäßig ein Benutzer-Docker hinzugefügt. Um unseren Prozess innerhalb von Docker auszuführen, fügen wir der Docker-Gruppe den Benutzer „devops“ und Ihren aktuellen Anmeldebenutzer hinzu.

$ sudo usermod -aG docker devops
$ sudo usermod -aG docker $USER

Wir benötigen ein Verzeichnis, um das Container-Volume dem Host zuzuordnen. Lassen Sie uns also ein Verzeichnis erstellen und dem aktuellen Benutzer die Eigentümerschaft im Verzeichnis zuweisen.

$ sudo mkdir -p /data/jenkins
$ chown -R $USER:$USER /data/jenkins

Sie können jetzt den Benutzer „devops“ mit dem folgenden Befehl überprüfen. Ihre Ausgabe muss der folgenden ähneln.

$ id devops

Jetzt ist es an der Zeit, einen Dienst zu erstellen. Die Dienstdateien werden in /etc/systemd/system/ gespeichert. Erstellen Sie also eine Datei mit der Endung .service, wie unten gezeigt.

$ vim /etc/systemd/system/docker-jenkins.service

Fügen Sie den folgenden Inhalt in der Datei hinzu. Die folgende Konfiguration erstellt einen Dienstnamen docker-jenkins. Es ruft einfach die neueste Version des Jenkins-Images vom Docker-Hub ab und führt den Container aus. Außerdem werden die Ports 8080 und 50000 im Hostserver zugeordnet, die für den Zugriff auf den jenkins-Dienst erforderlich sind. Wie im Abschnitt „Unit“ unten definiert, muss docker.service erfolgreich ausgeführt werden. Wenn Sie verschiedene Benutzer haben, ändern sich die Einhängepunkte entsprechend.

[Unit]

Description=My Jenkins Server

Documentation=https://jenkins.io/doc/

After=docker.service

Requires=docker.service

[Service]

Type=simple

User=devops

Group=devops

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

ExecStart=/usr/bin/docker run \

--name jenkins-server \

--publish 8080:8080 \

--publish 50000:50000 \

--volume /data/jenkins:/var/jenkins_home \

jenkins/jenkins

SyslogIdentifier=jenkin

ExecStop=/usr/bin/docker stop jenkins-server

[Install]

WantedBy=multi-user.target

Laden Sie die Dienstdatei im systemd-Daemon neu, indem Sie den folgenden Befehl verwenden.

$ sudo systemctl daemon-reload

Starten Sie den Docker-Dienst mit dem folgenden Befehl.

$ sudo systemctl start docker-jenkins

Systemd bietet auch einen Standardprotokollierungsdienst in syslog. Sie können das Protokoll an der folgenden Stelle einsehen.

$ sudo tail -f /var/log/syslog

Jetzt können Sie den Dienst starten, nachdem der Server neu gestartet wurde, indem Sie die Funktion „Aktivieren“ des Systemd-Managers verwenden.

$ sudo systemctl enable docker-jenkins

Überprüfen Sie dies auch, indem Sie den Dienst neu starten.

$ sudo systemctl restart docker-jenkins

Jenkins-Setup

Um Jenkins einzurichten, besuchen Sie zuerst http://yourserverip:8080. Dann müssen Sie das anfängliche Admin-Passwort eingeben, das im folgenden Pfad festgelegt ist. Kopieren Sie die Ausgabe und fügen Sie sie in „Administratorpasswort“ ein. Klicken Sie dann auf Weiter.

$ cat /data/jenkins/secrets/initialAdminPassword

Sie können das erforderliche Plugin installieren und fortfahren.

Schlussfolgerung

In diesem Artikel haben Sie gelernt, wie Sie die neueste Version von Jenkins mit Docker installieren und den Dienst für die Verwendung konfigurieren. Die Verwaltung von Jenkins mit systemd vereinfacht die Arbeit. Danke fürs Lesen.


Ubuntu
  1. So installieren und hosten Sie einen OpenVPN-Server mit Docker

  2. So installieren Sie Jenkins mit Docker

  3. Vagrant unter Ubuntu 20.04 installieren und ausführen

  4. So installieren Sie Docker und führen Docker-Container in Ubuntu aus

  5. Konfigurieren des Systemd-Dienstes für die Ausführung mit Root-Zugriff

So installieren Sie Sentry mit Docker unter Ubuntu 20.04

So installieren Sie Mailtrain auf Ubuntu 18.04 mit Docker

Portainer mit Docker auf Ubuntu installieren

So installieren und konfigurieren Sie Jenkins unter Ubuntu

So führen Sie Jenkins in Docker mit Docker Compose with Volumes aus

Installieren und verwenden Sie Docker Compose mit Docker unter Ubuntu 22.04