GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Installer et exécuter Jenkins avec Systemd et Docker

Lorsque vous téléchargez et configurez Jenkins à l'aide de docker, vous devez utiliser la commande manuelle pour gérer le processus. Cela devient assez dangereux et compliqué. Donc, nous allons le gérer en utilisant systemd. En fait, c'est le gestionnaire de système et de service pour les systèmes d'exploitation Linux. Il propose le démarrage, l'activation, le redémarrage et l'arrêt des démons à la demande, la journalisation, etc.

Dans cet article, je vais télécharger le package Jenkins à partir du référentiel Docker Hub et le gérer à l'aide de systemd manager. J'ai utilisé Ubuntu Linux, mais vous pouvez le faire dans centos, Debian, Redhat, etc., qui prennent en charge systemd.

Prérequis

  1. Dernière version de Docker installée
  2. Connexion Internet pour télécharger l'image Jenkins

Configuration

Pour exécuter un processus, nous avons besoin d'utilisateurs. Donc, nous créons un groupe système, ajoutons un utilisateur système au groupe. Comme vous n'avez pas besoin de vous connecter, nous ne fournissons pas de shell de connexion. J'ai donné ici le nom "devops", vous pouvez donner votre choix.

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

Lors de l'installation de docker, un docker utilisateur a été ajouté par défaut. Donc, pour exécuter notre processus dans docker, ajoutons l'utilisateur "devops" et votre utilisateur de connexion actuel au groupe docker.

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

Nous avons besoin d'un répertoire pour mapper le volume du conteneur sur l'hôte. Alors, créons un répertoire et donnons à l'utilisateur actuel la propriété du répertoire.

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

Vous pouvez maintenant vérifier l'utilisateur "devops" à l'aide de la commande suivante. Votre sortie doit ressembler à ce qui suit.

$ id devops

Il est maintenant temps de créer un service. Les fichiers de service sont stockés dans /etc/systemd/system/ Donc, créez un fichier se terminant par .service comme indiqué ci-dessous.

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

Ajoutez le contenu suivant dans le fichier. La configuration suivante créera un nom de service docker-jenkins. Il extraira simplement la dernière version de l'image jenkins du docker hub et exécutera le conteneur. Il mappera également les ports 8080 et 50000 sur le serveur hôte, qui sont nécessaires pour accéder au service Jenkins. Comme défini dans la section Unité ci-dessous, il nécessite que docker.service soit exécuté avec succès. Si vous avez différents utilisateurs, les points de montage changent en conséquence.

[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

Rechargez le fichier de service dans le démon systemd à l'aide de la commande suivante.

$ sudo systemctl daemon-reload

Démarrez le service Docker à l'aide de la commande ci-dessous.

$ sudo systemctl start docker-jenkins

Systemd fournit également un service de journalisation par défaut dans syslog. Vous pouvez voir le journal à l'emplacement suivant.

$ sudo tail -f /var/log/syslog

Maintenant, vous pouvez démarrer le service après le redémarrage du serveur à l'aide de la fonction "d'activation" du gestionnaire systemd.

$ sudo systemctl enable docker-jenkins

Vérifiez également en redémarrant le service.

$ sudo systemctl restart docker-jenkins

Configuration Jenkins

Pour configurer jenkins, visitez d'abord http://yourserverip:8080 Ensuite, vous devez entrer le mot de passe administrateur initial, qui est défini dans le chemin suivant. Copiez la sortie et collez-la dans "Mot de passe administrateur". Cliquez ensuite sur continuer.

$ cat /data/jenkins/secrets/initialAdminPassword

Vous pouvez installer le plug-in requis et continuer.

Conclusion

Dans cet article, vous avez appris à installer la dernière version de Jenkins à l'aide de docker et à configurer le service pour l'utiliser. La gestion de Jenkins avec systemd simplifie le travail. Merci d'avoir lu.


Ubuntu
  1. Comment installer et héberger un serveur OpenVPN avec Docker

  2. Comment installer Jenkins avec Docker

  3. Installer et exécuter Vagrant sur Ubuntu 20.04

  4. Comment installer Docker et exécuter des conteneurs Docker dans Ubuntu

  5. Configuration du service Systemd pour qu'il s'exécute avec un accès root

Comment installer Sentry avec Docker sur Ubuntu 20.04

Comment installer Mailtrain sur Ubuntu 18.04 avec Docker

Installer Portainer avec Docker sur Ubuntu

Comment installer et configurer Jenkins sur Ubuntu

Comment exécuter Jenkins dans Docker à l'aide de Docker Compose avec des volumes

Installer et utiliser Docker Compose avec Docker sur Ubuntu 22.04