Comment installer Jenkins sur Ubuntu 20.04

Introduction

Si vous devez réaliser des tâches techniques répétitives, cela peut s'avérer être difficile de trouver des solutions d'automatisation qui répondent à vos attentes. Avec Jenkins, un serveur d'automatisation open-source, vous pouvez gérer vos tâches efficacement de la construction au déploiement de logiciels. Jenkins est basé sur Java. Son installation se fait à partir de paquets Ubuntu ou en téléchargeant et exécutant son fichier d'archive d'applications web (WAR) : une série de fichiers qui constituent une application web complète à exécuter sur un serveur.

Dans ce tutoriel, nous allons installer Jenkins sur Ubuntu 20.04, démarrer le serveur de développement et créer un utilisateur administratif afin que vous commenciez à découvrir les capacités de Jenkins. Lorsque, à la fin de ce tutoriel, vous disposerez d'un serveur de niveau de développement prêt à l'utilisation suivez le guide Comment configurer Jenkins avec SSL en utilisant un proxy inverse Nginx sur Ubuntu 18.04 pour sécuriser cette installation.

Conditions préalables

Pour suivre ce tutoriel, vous aurez besoin de :

  • Un serveur Ubuntu 20.04 configuré avec un utilisateur sudo non root et un pare-feu à l'aide du guide de configuration initiale du serveur Ubuntu 20.04. Il est recommandé de commencer avec un minimum de 1 Go de RAM. Consultez les « Recommandations matérielles » de Jenkins pour obtenir des conseils qui vous permettront de planifier la capacité d'une installation Jenkins au niveau de la production.
  • Oracle JDK 11 installé, en suivant nos instructions d’installation des versions spécifiques d’OpenJDK sur Ubuntu 20.04.

Étape 1 — Installation de Jenkins

La version de Jenkins incluse par défaut dans les paquets Ubuntu est souvent inférieure à la dernière version disponible sur le projet en lui-même. Installez Jenkins en utilisant les paquets gérés par le projet pour être sûr de bien avoir les dernières corrections et fonctionnalités.

Tout d'abord, ajoutez la clé du référentiel au système :

  • wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -

Une fois la clé ajoutée, le système affichera OK.

Ensuite, ajoutons l'adresse du référentiel Debian sur la sources.list​​​​​​ du serveur :

  • sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'

Une fois les deux commandes saisies, nous exécuterons la update afin que apt utilise le nouveau référentiel.

  • sudo apt update

Enfin, nous installerons Jenkins et ses dépendances.

  • sudo apt install jenkins

Maintenant que Jenkins et ses dépendances sont installés, nous allons démarrer le serveur Jenkins.

Étape 2 — Démarrage de Jenkins

Démarrons Jenkins en utilisant systemctl :

sudo systemctl start jenkins 

Étant donné que systemctl n'affichera pas le résultat de l'état, nous utiliserons la commande status pour vérifier si Jenkins a bien démarré :

  • sudo systemctl status jenkins

Si tout a bien bien fonctionné, au début, le résultat de statut affiche que le service est actif et configuré pour démarrer au lancement :

Output● jenkins.service - LSB: Start Jenkins at boot time    Loaded: loaded (/etc/init.d/jenkins; generated)    Active: active (exited) since Fri 2020-06-05 21:21:46 UTC; 45s ago      Docs: man:systemd-sysv-generator(8)     Tasks: 0 (limit: 1137)    CGroup: /system.slice/jenkins.service 

Maintenant que Jenkins est opérationnel, ajustons nos règles de pare-feu afin de pouvoir l'atteindre à partir d'un navigateur web et terminer la configuration initiale.

Étape 3 — Ouvrir le pare-feu

Pour configurer un pare-feu UFW, consultez Configuration initiale du serveur avec Ubuntu 20.04, Étape 4 – Configuration d'un pare-feu de base. Jenkins fonctionne par défaut sur le port 8080. Nous allons ouvrir ce port en utilisant ufw :

  • sudo ufw allow 8080

Remarque : si le pare-feu est inactif, les commandes suivantes autoriseront OpenSSH et activeront le pare-feu :

  • sudo ufw allow OpenSSH
  • sudo ufw enable

Vérifiez l'état de ufw pour confirmer les nouvelles règles :

  • sudo ufw status

Vous remarquerez que le trafic vers le port 8080 est autorisé depuis n'importe où :

OutputStatus: active  To                         Action      From --                         ------      ---- OpenSSH                    ALLOW       Anywhere 8080                       ALLOW       Anywhere OpenSSH (v6)               ALLOW       Anywhere (v6) 8080 (v6)                  ALLOW       Anywhere (v6) 

Une fois Jenkins installé et notre pare-feu configuré, nous pouvons achever l'étape d'installation et nous plonger dans la configuration de Jenkins.

Étape 4 — Configuration de Jenkins

Pour configurer votre installation, consultez Jenkins sur son port par défaut, 8080 en utilisant votre nom de domaine ou l'adresse IP de votre serveur : http://your_server_ip_or_domain:8080

Vous devriez voir apparaître l'écran Unlock Jenkins qui affichera l'emplacement du mot de passe initial :

Ecran Débloquer Jenkins

Dans la fenêtre du terminal, utilisez la commande cat pour afficher le mot de passe :

  • sudo cat /var/lib/jenkins/secrets/initialAdminPassword

Copiez le mot de passe alphanumérique composé de 32 caractères du terminal et collez-le dans le champ Administrator password, puis cliquez sur Continue.

L'écran suivant présente l'option d'installer des plugins suggérés ou de sélectionner des plugins spécifiques :

Personnaliser l'écran de Jenkins

Nous allons cliquer sur l'option Installer les plugins suggérés, qui lancera immédiatement le processus d'installation.

Écran d'installation des plugins de Jenkins

Une fois l'installation terminée, vous serez invité à configurer le premier utilisateur administratif. Vous pouvez sauter cette étape et continuer comme admin en utilisant le mot de passe initial utilisé ci-dessus, mais nous allons prendre quelque minutes pour créer l'utilisateur.

Remarque : le serveur Jenkins par défaut n'est pas crypté, ce qui signifie que les données soumises avec ce formulaire ne sont pas protégées. Consultez Comment configurer Jenkins avec SSL en utilisant un proxy inverse Nginx sur Ubuntu 20.04 pour protéger les identifiants d'utilisateur et les informations sur les constructions transmises via l'interface web.

Écran Créer le premier utilisateur administrateur de Jenkins

Saisissez le nom et le mot de passe de votre utilisateur :

Créer un utilisateur dans Jenkins

Vous verrez apparaître une page Instance configuration qui vous demandera de confirmer l'URL préférée de votre instance Jenkins. Vérifiez qu'il s'agit bien du nom de domaine ou de l'adresse IP de votre serveur :

Configuration d'instance dans Jenkins

Après avoir confirmé l'exactitude des informations, cliquez sur Save and Finish Vous verrez apparaître une page de confirmation confirmant que « Jenkins est prêt ! » :

Écran Jenkins est prêt

Cliquez sur Start using Jenkins pour consulter le tableau de bord principal de Jenkins :

Bienvenue dans l'écran de Jenkins

À ce stade, vous avez terminé d'installer correctement Jenkins.

Conclusion

Dans ce tutoriel, vous avez installé Jenkins en utilisant les paquets fournis par le projet, démarré le serveur, ouvert le pare-feu et créé un utilisateur administratif. À ce stade, vous pouvez commencer à explorer Jenkins.

Une fois que vous aurez terminé, suivez le guide Comment configurer Jenkins avec SSL en utilisant un proxy inverse Nginx sur Ubuntu 20.04 pour protéger vos mots de passe, ainsi que toute information sensible du système ou du produit qui sera envoyée entre votre machine et le serveur en texte clair pour continuer à utiliser Jenkins.

Pour en savoir plus sur ce que vous pouvez faire avec Jenkins, consultez d'autres tutoriels sur le sujet :

  • Comment créer des applications Android avec Jenkins
  • Comment configurer des pipelines d'intégration continue dans Jenkins sur Ubuntu 16.04