Installation de Jenkins avec Docker

JenkinsJenkinsBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous allons explorer le processus d'installation de Jenkins à l'aide de Docker. Jenkins est un serveur d'automatisation largement utilisé pour les processus d'intégration continue et de livraison continue (CI/CD). À la fin de ce laboratoire, vous aurez acquis une expérience pratique dans la configuration de Jenkins avec Docker, vous offrant ainsi une solide base pour vos futurs projets DevOps.

Pour les débutants, il est important de comprendre que Docker est une plateforme qui vous permet de packager et d'exécuter des applications dans des environnements isolés appelés conteneurs. Cette isolation garantit que votre application fonctionne de manière cohérente sur différents systèmes. Jenkins, quant à lui, est un outil qui aide à automatiser certaines parties du développement logiciel, en particulier la construction, les tests et le déploiement du code.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL jenkins(("Jenkins")) -.-> jenkins/InstallingJenkinsGroup(["Installing Jenkins"]) jenkins(("Jenkins")) -.-> jenkins/UsingJenkinsGroup(["Using Jenkins"]) jenkins/InstallingJenkinsGroup -.-> jenkins/initial_settings("Jenkins Initial Settings") jenkins/InstallingJenkinsGroup -.-> jenkins/docker_installation("Use Docker Installation") jenkins/UsingJenkinsGroup -.-> jenkins/create_project("Create Project") subgraph Lab Skills jenkins/initial_settings -.-> lab-391174{{"Installation de Jenkins avec Docker"}} jenkins/docker_installation -.-> lab-391174{{"Installation de Jenkins avec Docker"}} jenkins/create_project -.-> lab-391174{{"Installation de Jenkins avec Docker"}} end

Préparation de l'environnement Docker

Dans cette étape, nous nous assurerons que Docker est correctement installé et en cours d'exécution sur notre système. Docker est essentiel pour ce laboratoire car il nous permet d'exécuter Jenkins dans un conteneur, offrant ainsi un environnement cohérent et isolé.

Tout d'abord, vérifions que Docker est installé et en cours d'exécution. Ouvrez un terminal et exécutez la commande suivante :

docker --version
Sortie de la commande de version de Docker

Cette commande devrait afficher la version de Docker installée sur votre système. Vous devriez voir une sortie similaire à celle-ci :

Docker version 20.10.21, build 20.10.21-0ubuntu1~22.04.3

Si vous ne voyez pas de numéro de version, cela peut signifier que Docker n'est pas installé ou qu'il n'est pas dans le chemin d'accès (PATH) de votre système. Ne vous inquiétez pas si cela se produit ; nous allons y remédier tout de suite.

Ensuite, vérifions si le démon Docker est en cours d'exécution :

sudo systemctl status docker

Cette commande vérifie l'état du service Docker. Vous devriez voir une sortie indiquant que le service Docker est actif (en cours d'exécution). Cela pourrait ressembler à ceci :

● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2023-09-11 10:00:00 UTC; 2h 30min ago

Si Docker n'est pas en cours d'exécution, vous verrez un message indiquant que le service est inactif ou a échoué.

Téléchargement de l'image Docker de Jenkins

Dans cette étape, nous allons télécharger l'image Docker officielle de Jenkins depuis Docker Hub. Docker Hub est un dépôt basé sur le cloud où les images Docker sont stockées et partagées.

Pour télécharger la dernière version LTS (Long Term Support - Support à long terme) de Jenkins, exécutez la commande suivante :

docker pull jenkins/jenkins:lts

Décortiquons cette commande :

  • docker pull indique à Docker de télécharger une image
  • jenkins/jenkins est le nom de l'image (créée par le projet Jenkins)
  • :lts est une étiquette (tag) qui spécifie que nous voulons la version de support à long terme, qui est généralement plus stable

Cette commande télécharge l'image Jenkins sur votre machine locale. Le téléchargement peut prendre quelques minutes en fonction de votre vitesse d'internet. Vous verrez des barres de progression indiquant l'état du téléchargement des différentes couches qui composent l'image.

Une fois le téléchargement terminé, vous pouvez vérifier que l'image est maintenant disponible localement en exécutant :

docker images

Cette commande liste toutes les images Docker sur votre système. Vous devriez voir l'image Jenkins répertoriée dans la sortie, similaire à ceci :

REPOSITORY         TAG       IMAGE ID       CREATED        SIZE
jenkins/jenkins    lts       7a7add0bf3da   8 days ago     470MB

Si vous ne voyez pas l'image Jenkins, cela peut signifier que le téléchargement a échoué. Dans ce cas, essayez d'exécuter à nouveau la commande docker pull. Si les problèmes persistent, vérifiez votre connexion internet ou essayez d'utiliser un réseau différent.

Création d'un volume Docker pour les données de Jenkins

Dans cette étape, nous allons créer un volume Docker pour stocker de manière persistante les données de Jenkins. Il s'agit d'une étape cruciale pour conserver votre configuration Jenkins et l'historique des builds.

Les volumes Docker offrent un moyen de conserver les données générées et utilisées par les conteneurs Docker. Cela est particulièrement important pour Jenkins, car nous souhaitons conserver la configuration, les données des jobs et les artefacts de build même si le conteneur est arrêté ou supprimé.

Créez un nouveau volume nommé jenkins-data en exécutant la commande suivante :

docker volume create jenkins-data

Cette commande indique à Docker de créer un nouveau volume. Docker gère ces volumes en les stockant dans une partie du système de fichiers de votre hôte.

Vous pouvez vérifier que le volume a été créé en listant tous les volumes Docker :

docker volume ls

Vous devriez voir jenkins-data dans la liste des volumes, comme ceci :

DRIVER    VOLUME NAME
local     jenkins-data

Si vous ne voyez pas le volume, essayez de le créer à nouveau. Si les problèmes persistent, assurez-vous d'avoir les autorisations nécessaires pour créer des volumes Docker (vous devrez peut-être utiliser sudo si votre utilisateur n'est pas dans le groupe docker).

Comprendre les volumes Docker est important car :

  1. Ils permettent de conserver les données au-delà du cycle de vie d'un conteneur.
  2. Ils peuvent être facilement sauvegardés et restaurés.
  3. Ils peuvent être partagés entre les conteneurs si nécessaire.

Exécution du conteneur Docker de Jenkins

Maintenant que nous avons l'image Jenkins et un volume pour la persistance des données, nous pouvons exécuter le conteneur Jenkins. Cette étape démarrera effectivement Jenkins dans un conteneur Docker, le rendant accessible sur votre système.

Nous allons exécuter le conteneur avec les configurations suivantes :

  • Mapper le port 8080 du conteneur au port 8080 de l'hôte (pour l'interface web)
  • Mapper le port 50000 du conteneur au port 50000 de l'hôte (pour les connexions d'agents)
  • Monter le volume jenkins-data sur /var/jenkins_home dans le conteneur
  • Exécuter le conteneur en mode détaché

Exécutez la commande suivante pour exécuter le conteneur Jenkins :

docker run -d -p 8080:8080 -p 50000:50000 -v jenkins-data:/var/jenkins_home --name jenkins-lts jenkins/jenkins:lts

Décortiquons cette commande :

  • docker run crée et exécute un nouveau conteneur
  • -d exécute le conteneur en mode détaché (en arrière - plan)
  • -p 8080:8080 mappe le port 8080 du conteneur au port 8080 de votre hôte
  • -p 50000:50000 mappe le port 50000 du conteneur au port 50000 de votre hôte
  • -v jenkins-data:/var/jenkins_home monte notre volume Docker sur le répertoire de base de Jenkins dans le conteneur
  • --name jenkins-lts attribue un nom à notre conteneur pour une référence facile
  • jenkins/jenkins:lts spécifie l'image à utiliser

Après avoir exécuté cette commande, Docker démarrera le conteneur Jenkins en arrière - plan. Vous pouvez vérifier que le conteneur est en cours d'exécution en exécutant :

docker ps

Cette commande liste tous les conteneurs Docker en cours d'exécution. Vous devriez voir le conteneur Jenkins répertorié dans la sortie, similaire à ceci :

CONTAINER ID   IMAGE                 COMMAND                  CREATED         STATUS         PORTS                                                                                      NAMES
747b6dc7b1af   jenkins/jenkins:lts   "/usr/bin/tini -- /u…"   4 seconds ago   Up 3 seconds   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:50000->50000/tcp, :::50000->50000/tcp   jenkins-lts

Si vous ne voyez pas le conteneur Jenkins, il est possible qu'il ait échoué à démarrer. Vous pouvez vérifier les messages d'erreur en utilisant :

docker logs jenkins-lts

Cela affichera les journaux du conteneur, ce qui peut aider à diagnostiquer tout problème.

Accès à l'interface web de Jenkins

Maintenant que le conteneur Jenkins est en cours d'exécution, nous pouvons accéder à son interface web pour finaliser la configuration initiale. Cette étape vous guidera dans l'accès à Jenkins et la réalisation de la configuration initiale.

Il existe deux façons d'accéder à l'interface web de Jenkins :

  1. Cliquez sur le symbole + dans l'onglet supérieur de l'environnement virtuel pour créer un nouveau Web Service et entrez le port 8080.
Création de l'onglet du service web Jenkins

Cette méthode fonctionne dans l'environnement de laboratoire et crée un nouvel onglet affichant l'interface Jenkins.

  1. Ouvrez le navigateur Firefox sur le bureau VNC et accédez à http://localhost:8080.
Page d'accès à Jenkins sur Firefox

Vous devriez voir la page "Déverrouiller Jenkins". Cette mesure de sécurité garantit que seuls les utilisateurs autorisés peuvent configurer Jenkins.

Pour cet environnement de laboratoire, le nom d'utilisateur par défaut est admin et le mot de passe est également admin.

Entrez ces identifiants sur la page "Déverrouiller Jenkins" et cliquez sur "Continuer".

Identifiants de la page de déverrouillage de Jenkins

Après avoir déverrouillé Jenkins, vous serez guidé à travers le processus de configuration initiale, y compris l'installation de plugins et la création d'un utilisateur administrateur. Pour ce laboratoire, vous pouvez choisir l'option "Installer les plugins suggérés" pour commencer rapidement.

Résumé

Dans ce laboratoire, nous avons réussi à installer et configurer Jenkins en utilisant Docker. Nous avons couvert les étapes essentielles, notamment la préparation de l'environnement Docker, le téléchargement de l'image Jenkins, la création d'un volume persistant pour les données de Jenkins, l'exécution du conteneur Jenkins et l'accès à l'interface web de Jenkins pour la configuration initiale.

Cette expérience pratique vous a fourni une solide base pour utiliser Docker pour déployer Jenkins, une compétence cruciale dans les pratiques modernes de DevOps. Vous êtes maintenant prêt à explorer plus en profondeur Jenkins, à créer des jobs de build et à l'intégrer dans votre flux de travail de développement.