Introduction à Jenkins
Jenkins est un serveur d’automatisation open-source populaire utilisé pour orchestrer les processus de construction, de test et de déploiement de logiciels. Il prend en charge une variété de plugins qui améliorent ses fonctionnalités, faisant de lui l’un des outils incontournables pour automatiser presque toutes les parties du cycle de développement logiciel. L’extensibilité de Jenkins, combinée à sa communauté active, en a fait un pilier des chaînes d’outils DevOps.
Comprendre comment installer et configurer Jenkins est essentiel pour toute personne impliquée dans le DevOps ou le développement. Ce guide vous guidera à travers le processus d’installation, la configuration de Jenkins pour votre environnement, et la création de votre premier job Jenkins.
Prérequis
Avant de commencer le processus d’installation de Jenkins, assurez-vous d’avoir les éléments suivants :
- Un serveur Linux : Jenkins fonctionne mieux sur un système de type Unix, mais il peut également être utilisé sur Windows. Dans ce guide, nous nous concentrerons sur les distributions basées sur Ubuntu/Debian.
- Java installé : Jenkins fonctionne avec Java, vous devez donc vous assurer que Java est installé. Jenkins nécessite Java 8 ou 11.
- Accès root ou sudo : Vous aurez besoin de privilèges root ou sudo pour installer des paquets et configurer Jenkins sur votre serveur.
Installation de Jenkins sur Ubuntu
Commençons par installer Jenkins sur un système basé sur Ubuntu. Nous aborderons l’installation de Jenkins à l’aide du paquet par défaut d’Ubuntu et du dépôt officiel de Jenkins, garantissant ainsi que vous obteniez la dernière version.
1. Mise à jour de votre système
La première étape avant d’installer un nouveau logiciel est de vous assurer que votre système est à jour. Utilisez les commandes suivantes pour mettre à jour l’index des paquets de votre système et mettre à niveau tous les paquets installés :
$ sudo apt update
$ sudo apt upgrade
Cela mettra à jour vos listes de paquets et installera toutes les mises à niveau disponibles pour vos paquets existants.
2. Installer Java
Jenkins nécessite Java pour fonctionner. Vous pouvez installer OpenJDK, qui est l’implémentation open-source de la plateforme Java. Pour installer Java 11, utilisez la commande suivante :
$ sudo apt install openjdk-11-jdk
Une fois l’installation terminée, vérifiez que Java est installé en vérifiant la version :
$ java -version
Vous devriez voir un résultat indiquant que Java 11 est installé.
3. Ajouter le dépôt Jenkins
Maintenant, vous devez ajouter le dépôt Jenkins à votre système afin de pouvoir installer la dernière version de Jenkins. Commencez par importer la clé GPG pour le dépôt Jenkins :
$ curl -fsSL https://pkg.jenkins.io/debian/jenkins.io.key | sudo tee \
/usr/share/keyrings/jenkins-keyring.asc > /dev/null
Ensuite, ajoutez le dépôt Jenkins à la liste des sources de votre système :
$ echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \
https://pkg.jenkins.io/debian binary/ | sudo tee \
/etc/apt/sources.list.d/jenkins.list > /dev/null
4. Installer Jenkins
Une fois que le dépôt Jenkins est ajouté, mettez à jour votre liste de paquets pour refléter le nouveau dépôt :
$ sudo apt update
Ensuite, installez Jenkins en utilisant la commande suivante :
$ sudo apt install jenkins
5. Démarrer et activer Jenkins
Après l’installation, vous devez démarrer le service Jenkins et l’activer pour qu’il se lance au démarrage :
$ sudo systemctl start jenkins
$ sudo systemctl enable jenkins
Vous pouvez vérifier l’état de Jenkins pour vous assurer qu’il fonctionne correctement :
$ sudo systemctl status jenkins
6. Configurer le pare-feu
Par défaut, Jenkins fonctionne sur le port 8080. Si vous utilisez un pare-feu, comme UFW (Uncomplicated Firewall), vous devez ouvrir le port 8080 pour permettre le trafic :
$ sudo ufw allow 8080
$ sudo ufw status
Accéder à Jenkins pour la première fois
Maintenant que Jenkins est installé et en cours d’exécution, vous pouvez accéder à son interface Web pour finaliser la configuration.
1. Récupérer le mot de passe administrateur initial
La première fois que vous accédez à Jenkins, il vous demandera un mot de passe administrateur. Ce mot de passe est stocké dans un fichier sur votre serveur. Utilisez la commande suivante pour afficher le mot de passe :
$ sudo cat /var/lib/jenkins/secrets/initialAdminPassword
Copiez le mot de passe et collez-le lorsque vous y êtes invité dans l’assistant de configuration de Jenkins.
2. Ouvrir Jenkins dans votre navigateur Web
Ouvrez votre navigateur Web et naviguez à l’adresse suivante :
http://votre-ip-de-serveur:8080
Vous serez accueilli par l’assistant de configuration de Jenkins, où vous devrez coller le mot de passe que vous avez récupéré précédemment.
3. Installer les plugins suggérés
Jenkins vous proposera d’installer des plugins. Sélectionnez l’option “Installer les plugins suggérés”. Jenkins installera automatiquement les plugins les plus couramment utilisés, tels que Git, Pipeline, etc.
4. Créer un utilisateur administrateur
Après l’installation des plugins, Jenkins vous demandera de créer un utilisateur administrateur. Remplissez les informations nécessaires et cliquez sur Enregistrer et Terminer.
5. Jenkins est prêt
Vous avez maintenant installé et configuré Jenkins avec succès. Vous serez redirigé vers le tableau de bord Jenkins, où vous pourrez commencer à créer des jobs et automatiser vos tâches.
Configuration de Jenkins
Maintenant que vous avez installé Jenkins, il est temps de le configurer en fonction des besoins de votre projet. Jenkins propose une large gamme d’options de configuration qui peuvent être adaptées à presque tous les flux de travail.
1. Configurer le système
Depuis le tableau de bord Jenkins, accédez à Gérer Jenkins > Configurer le système. Cette section vous permet de définir des configurations globales, telles que des variables d’environnement, des notifications par e-mail et des chemins vers des outils de construction comme Maven, Gradle, et plus encore.
Par exemple, pour configurer Java et Git :
- JDK : Assurez-vous que Jenkins connaît le chemin de votre installation Java. Dans la section “JDK”, spécifiez manuellement le chemin ou laissez Jenkins l’installer automatiquement.
- Git : Si vous utilisez Git pour le contrôle de version, assurez-vous que Git est installé et que Jenkins peut le trouver en fournissant le chemin sous “Git”.
2. Configuration des outils globaux
Naviguez vers Gérer Jenkins > Configuration des outils globaux pour configurer les outils que Jenkins utilisera pour construire votre code. Vous pouvez configurer des outils tels que :
- Maven
- Gradle
- NodeJS
Ici, vous pouvez spécifier les chemins d’installation ou laisser Jenkins installer les outils automatiquement.
3. Configuration de la sécurité
Jenkins propose un système de sécurité robuste qui vous permet de contrôler l’accès en fonction des rôles des utilisateurs. Pour configurer la sécurité :
- Allez dans Gérer Jenkins > Configurer la sécurité globale.
- Activez La propre base de données utilisateur de Jenkins pour gérer les utilisateurs localement.
- Définissez Autorisation sur “Sécurité basée sur les rôles” pour créer des autorisations granulaires pour différents utilisateurs.
Vous pouvez également intégrer Jenkins avec des systèmes d’authentification externes comme LDAP, GitHub OAuth, ou Active Directory.
4. Configurer les plugins Jenkins
La véritable puissance de Jenkins réside dans ses plugins. Il existe des milliers de plugins disponibles pour Jenkins qui s’intègrent avec divers outils et services. Pour gérer vos plugins, accédez à Gérer Jenkins > Gérer les plugins.
D’ici, vous pouvez :
- Installer de nouveaux plugins : Parcourez les plugins disponibles et installez ceux qui répondent aux besoins de votre projet.
- Mettre à jour les plugins : Maintenez vos plugins à jour pour garantir la compatibilité avec les dernières versions de Jenkins.
Certains plugins essentiels pour une configuration CI/CD typique incluent :
- Git Plugin : Permet à Jenkins de récupérer du code à partir de dépôts Git.
- Pipeline Plugin : Vous aide à définir les jobs Jenkins sous forme de code.
- Email Extension Plugin : Pour envoyer des notifications par e-mail lorsque des builds réussissent ou échouent.
Créer votre premier job Jenkins
Maintenant que Jenkins est opérationnel, il est temps de créer votre premier job. Les jobs dans Jenkins sont essentiellement des tâches que Jenkins automatisera, comme la construction, le test et le déploiement de votre code.
1. Créer un nouveau job
- Depuis le tableau de bord Jenkins, cliquez sur Nouvel élément.
- Entrez un nom pour votre job.
- Sélectionnez Projet freestyle comme type de job et cliquez sur OK.
2. Configurer le job
Après avoir créé le job, vous serez redirigé vers la page de configuration du job. Ici, vous pouvez spécifier les détails du job :
- Gestion du code source : Si votre code est stocké dans un système de contrôle de version tel que Git, spécifiez l’URL du dépôt et toutes les informations d’identification nécessaires.
$ git clone https://github.com/votre-repo.git
- Déclencheurs de build : Spécifiez quand le job doit être exécuté. Vous pouvez configurer des déclencheurs pour exécuter le job manuellement, selon un horaire, ou automatiquement à chaque changement dans le dépôt de code (webhook).
- Environnement de build : Définissez les variables d’environnement nécessaires ou configurez des étapes de build supplémentaires.
- Étapes de build : Définissez ce que le job doit faire. Par exemple, si votre projet utilise Maven, vous pouvez ajouter une étape de build pour exécuter des commandes Maven telles que :
$ mvn clean install
3. Enregistrer et exécuter le job
Après avoir configuré votre job, cliquez sur Enregistrer. Vous pouvez maintenant déclencher le job manuellement en cliquant sur Build Now sur la page du job. Jenkins exécutera les étapes de build et affichera l’état du build.
Mise en place de pipelines Jenkins
Jenkins Pipeline est une suite de plugins qui prend en charge la mise en œuvre et l’intégration de pipelines de livraison continue dans Jenkins. Les pipelines vous permettent de définir l’ensemble de votre processus de build, de bout en bout, sous forme de code.
1. Créer un nouveau job Pipeline
Depuis le tableau de bord Jenkins :
- Cliquez sur Nouvel élément.
- Entrez un nom pour le pipeline.
- Sélectionnez Pipeline et cliquez sur OK.
2. Définir le script du pipeline
Un pipeline est défini à l’aide d’un fichier Jenkinsfile, qui est un fichier texte contenant le code du pipeline. Vous pouvez écrire le pipeline directement dans l’interface Jenkins ou le charger à partir de votre dépôt de contrôle de source.
Voici à quoi ressemble un Jenkinsfile basique :
pipeline {
agent any
stages {
stage('Build') {
steps {
sh 'mvn clean install'
}
}
stage('Test') {
steps {
sh 'mvn test'
}
}
stage('Deploy') {
steps {
sh './deploy.sh'
}
}
}
}
Ce pipeline comporte trois étapes : Build, Test, et Deploy, chacune exécutant une commande shell (sh
).
Bonnes pratiques avec Jenkins
Pour vous assurer que vous utilisez Jenkins de manière efficace, voici quelques bonnes pratiques :
- Maintenez Jenkins à jour : Mettez régulièrement à jour Jenkins et ses plugins pour bénéficier des dernières fonctionnalités et des correctifs de sécurité.
- Sauvegardez la configuration de Jenkins : Sauvegardez régulièrement la configuration de Jenkins pour éviter de perdre les paramètres des jobs et des plugins.
- Utilisez les Pipelines : Au lieu d’utiliser des jobs freestyle, essayez de définir vos processus de build en utilisant des Pipelines. Les Pipelines sont plus flexibles et peuvent gérer des flux de travail complexes.
- Surveillez les performances : Jenkins peut parfois consommer beaucoup de ressources, surtout si vous exécutez plusieurs jobs simultanément. Surveillez les performances de Jenkins et ajustez les ressources au besoin.
Conclusion
Jenkins est un outil incroyablement puissant pour automatiser les workflows de développement logiciel. Dans ce tutoriel, nous avons couvert comment installer et configurer Jenkins sur un serveur Ubuntu, créer des jobs et configurer des Pipelines Jenkins. Avec Jenkins, vous pouvez considérablement simplifier vos processus de développement et de livraison, permettant des itérations plus rapides et des logiciels de meilleure qualité.
En suivant ce guide, vous devriez maintenant disposer d’une installation Jenkins pleinement fonctionnelle prête à créer et déployer vos projets. Que vous configuriez l’intégration continue pour un petit projet ou que vous gériez des workflows complexes d’entreprise, Jenkins peut évoluer pour répondre à vos besoins.
N’oubliez pas d’explorer la vaste bibliothèque de plugins Jenkins pour trouver des intégrations et des outils qui peuvent rendre votre automatisation encore plus puissante. Vous êtes maintenant prêt à commencer à automatiser vos workflows de développement et à améliorer l’efficacité de votre équipe.
FAQs
Quelles sont les exigences système pour Jenkins ?
Jenkins fonctionne sur la plupart des systèmes d’exploitation modernes et nécessite Java 8 ou 11. Il a besoin d’au moins 1 Go de RAM pour une utilisation à petite échelle et plus pour les projets plus importants.
Jenkins peut-il être installé sur Windows ?
Oui, Jenkins peut être installé sur Windows, bien qu’il soit plus couramment utilisé sur des systèmes basés sur Linux. L’installation sur Windows suit un processus similaire avec un package MSI.
Comment mettre à jour Jenkins ?
Vous pouvez mettre à jour Jenkins via l’interface Web de Jenkins en accédant à Gérer Jenkins > Gérer les plugins. Il est essentiel de maintenir Jenkins et ses plugins à jour.
Qu’est-ce qu’un Jenkinsfile ?
Un Jenkinsfile est un fichier texte qui contient le code d’un Pipeline Jenkins. Il définit les étapes d’un pipeline d’intégration ou de livraison continue.
Jenkins peut-il être utilisé pour le déploiement ?
Oui, Jenkins peut automatiser les processus de déploiement en s’intégrant à divers outils et plateformes de déploiement tels qu’AWS, Kubernetes, et plus encore.
Comment sauvegarder Jenkins ?
Jenkins n’a pas d’outil de sauvegarde intégré, mais vous pouvez sauvegarder votre répertoire home de Jenkins, qui contient les configurations des jobs, les données des plugins, et les données des utilisateurs.