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
- Dernière version de Docker installée
- 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.