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.
Si vous êtes nouveau dans le monde de Linux ou de LabEx, il est recommandé de commencer par le Guide de démarrage rapide avec Linux ou le Entraînement aux commandes de base Linux pour apprendre les bases de manière systématique. Une fois le cours terminé, vous pouvez revenir ici pour pratiquer vos compétences.
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

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 pullindique à Docker de télécharger une imagejenkins/jenkinsest le nom de l'image (créée par le projet Jenkins):ltsest 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 :
- Ils permettent de conserver les données au-delà du cycle de vie d'un conteneur.
- Ils peuvent être facilement sauvegardés et restaurés.
- 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-datasur/var/jenkins_homedans 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 runcrée et exécute un nouveau conteneur-dexécute le conteneur en mode détaché (en arrière - plan)-p 8080:8080mappe le port 8080 du conteneur au port 8080 de votre hôte-p 50000:50000mappe le port 50000 du conteneur au port 50000 de votre hôte-v jenkins-data:/var/jenkins_homemonte notre volume Docker sur le répertoire de base de Jenkins dans le conteneur--name jenkins-ltsattribue un nom à notre conteneur pour une référence facilejenkins/jenkins:ltsspé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 pour accéder à Jenkins et effectuer la configuration initiale.
Il existe deux méthodes pour accéder à l'interface Web de Jenkins :
Cliquez sur le symbole
+dans l'onglet supérieur de l'environnement virtuel pour créer un nouveauWeb Serviceet entrez le port8080.
Cette méthode fonctionne dans l'environnement de laboratoire, créant un nouvel onglet qui affiche l'interface Jenkins.
Ouvrez le navigateur Firefox sur le bureau VNC. Le navigateur s'ouvrira automatiquement sur
http://localhost:8080, vous n'avez donc pas besoin de saisir l'URL manuellement.
Vous devriez voir la page "Unlock Jenkins" (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 informations d'identification sur la page "Unlock Jenkins" et cliquez sur "Continue" (Continuer).

Après avoir déverrouillé Jenkins, vous serez guidé à travers le processus de configuration initiale, y compris l'installation des plugins et la création d'un utilisateur administrateur. Pour ce laboratoire, vous pouvez choisir l'option "Install suggested plugins" (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.

