Jenkins - Guide rapide

Pourquoi Jenkins?

Jenkins est un logiciel qui permet continuous integration. Jenkins sera installé sur un serveur où la construction centrale aura lieu. L'organigramme suivant illustre un flux de travail très simple du fonctionnement de Jenkins.

Avec Jenkins, parfois, on peut aussi voir l'association de Hudson. Hudson est un outil d'intégration continue Java open-source très populaire développé par Sun Microsystems qui a ensuite été acquis par Oracle. Après l'acquisition de Sun par Oracle, un fork a été créé à partir du code source de Hudson, ce qui a entraîné l'introduction de Jenkins.

Qu'est-ce que l'intégration continue?

L'intégration continue est une pratique de développement qui oblige les développeurs à intégrer du code dans un référentiel partagé à intervalles réguliers. Ce concept visait à supprimer le problème de la recherche ultérieure de problèmes dans le cycle de vie de la construction. L'intégration continue nécessite que les développeurs aient des builds fréquents. La pratique courante est que chaque fois qu'une validation de code se produit, une génération doit être déclenchée.

Configuration requise

JDK JDK 1.5 ou supérieur
Mémoire 2 Go de RAM (recommandé)
Espace disque Aucune exigence minimale. Notez que puisque toutes les builds seront stockées sur les machines Jenkins, il faut s'assurer que suffisamment d'espace disque est disponible pour le stockage de build.
Version du système d'exploitation Jenkins peut être installé sur Windows, Ubuntu / Debian, Red Hat / Fedora / CentOS, Mac OS X, openSUSE, FReeBSD, OpenBSD, Gentoo.
Conteneur Java Le fichier WAR peut être exécuté dans n'importe quel conteneur prenant en charge Servlet 2.4 / JSP 2.0 ou version ultérieure (par exemple, Tomcat 5).

Télécharger Jenkins

Le site officiel de Jenkins est Jenkins . Si vous cliquez sur le lien donné, vous pouvez obtenir la page d'accueil du site officiel de Jenkins comme indiqué ci-dessous.

Par défaut, la dernière version et la version de support à long terme seront disponibles au téléchargement. Les versions précédentes sont également disponibles en téléchargement. Cliquez sur l'onglet Version du support à long terme dans la section de téléchargement.

Cliquez sur le lien «Version plus ancienne mais stable» pour télécharger le fichier de guerre Jenkins.

Démarrage de Jenkins

Ouvrez l'invite de commande. À partir de l'invite de commande, accédez au répertoire contenant le fichier jenkins.war. Exécutez la commande suivante

D:\>Java –jar Jenkins.war

Une fois la commande exécutée, diverses tâches seront exécutées, dont l'extraction du fichier war est effectuée par un serveur Web intégré appelé winstone.

D:\>Java –jar Jenkins.war
Running from: D:\jenkins.war
Webroot: $user.home/ .jenkins
Sep 29, 2015 4:10:46 PM winstone.Logger logInternal
INFO: Beginning extraction from war file

Une fois le traitement terminé sans erreurs majeures, la ligne suivante apparaîtra dans la sortie de l'invite de commande.

INFO: Jenkins is fully up and running

Accéder à Jenkins

Une fois que Jenkins est opérationnel, on peut accéder à Jenkins à partir du lien - http://localhost:8080

Ce lien affichera le tableau de bord Jenkins.

Les conditions préalables suivantes doivent être remplies pour l'installation de Jenkins Tomcat.

Étape 1: vérification de l'installation de Java

Pour vérifier l'installation de Java, ouvrez la console et exécutez la commande java suivante.

OS Tâche Commander
les fenêtres Ouvrir la console de commande \> java –version
Linux Ouvrir le terminal de commande $ java –version

Si Java a été correctement installé sur votre système, vous devriez obtenir l'une des sorties suivantes, selon la plate-forme sur laquelle vous travaillez.

OS Production
les fenêtres

Version Java "1.7.0_60"

Environnement d'exécution Java (TM) SE (build 1.7.0_60-b19)

VM serveur 64 bits Java Hotspot (TM) (build 24.60-b09, mode mixte)

Linux

version java "1.7.0_25"

Ouvrir l'environnement d'exécution JDK (rhel-2.3.10.4.el6_4-x86_64)

Ouvrez la machine virtuelle serveur JDK 64 bits (build 23.7-b01, mode mixte)

Nous supposons que les lecteurs de ce didacticiel ont installé Java 1.7.0_60 sur leur système avant de poursuivre ce didacticiel.

Si vous n'avez pas Java JDK, vous pouvez le télécharger à partir du lien Oracle

Étape 2: vérification de l'installation de Java

Définissez la variable d'environnement JAVA_HOME pour qu'elle pointe vers l'emplacement du répertoire de base où Java est installé sur votre machine. Par exemple,

OS Production
les fenêtres Définissez la variable d'environnement JAVA_HOME sur C: \ ProgramFiles \ java \ jdk1.7.0_60
Linux export JAVA_HOME = / usr / local / java-current

Ajoutez le chemin complet de l'emplacement du compilateur Java au chemin système.

OS Production
les fenêtres Ajoutez la chaîne; C: \ Program Files \ Java \ jdk1.7.0_60 \ bin à la fin de la variable système PATH.
Linux export PATH = $ PATH: $ JAVA_HOME / bin /

Vérifiez la commande java-version à partir de l'invite de commande comme expliqué ci-dessus.

Étape 3: Téléchargez Tomcat

Le site officiel de tomcat est Tomcat . Si vous cliquez sur le lien donné, vous pouvez obtenir la page d'accueil du site officiel de tomcat comme indiqué ci-dessous.

Accédez au lien https://tomcat.apache.org/download-70.cgi pour obtenir le téléchargement pour tomcat.

Accédez à la section «Distributions binaires». Téléchargez le fichier zip Windows 32 bits.

Décompressez ensuite le contenu du fichier zip téléchargé.

Étape 4: Configuration de Jenkins et Tomcat

Copiez le fichier Jenkis.war qui a été téléchargé à partir de la section précédente et copiez-le dans le dossier webapps du dossier tomcat.

Ouvrez maintenant l'invite de commande. À partir de l'invite de commande, accédez au répertoire dans lequel se trouve le dossier tomcat7. Accédez au répertoire bin de ce dossier et exécutez le fichier start.bat

E:\Apps\tomcat7\bin>startup.bat

Une fois le traitement terminé sans erreurs majeures, la ligne suivante apparaîtra dans la sortie de l'invite de commande.

INFO: Server startup in 1302 ms

Ouvrez le navigateur et accédez au lien - http://localhost:8080/jenkins. Jenkins sera opérationnel sur tomcat.

Pour cet exercice, vous devez vous assurer que la connectivité Internet est présente depuis la machine sur laquelle Jenkins est installé. Dans votre tableau de bord Jenkins (écran d'accueil), cliquez sur l'option Gérer Jenkins sur le côté gauche.

Dans l'écran suivant, cliquez sur l'option «Gérer les plugins».

Dans l'écran suivant, cliquez sur l'onglet Disponible. Cet onglet donnera une liste de plugins disponibles au téléchargement. Dans l'onglet 'Filtre', tapez 'Git plugin'

La liste sera ensuite filtrée. Cochez l'option Git Plugin et cliquez sur le bouton 'Installer sans redémarrer'

L'installation commencera alors et l'écran sera actualisé pour afficher l'état du téléchargement.

Une fois toutes les installations terminées, redémarrez Jenkins en exécutant la commande suivante dans le navigateur. http://localhost:8080/jenkins/restart

Une fois Jenkins redémarré, Git sera disponible en option lors de la configuration des jobs. Pour vérifier, cliquez sur Nouvel élément dans les options de menu de Jenkins. Saisissez ensuite un nom pour une tâche, dans le cas suivant, le nom saisi est «Démo». Sélectionnez «Projet Freestyle» comme type d'élément. Cliquez sur le bouton Ok.

Dans l'écran suivant, si vous accédez à la section Gestion du code source, vous verrez désormais «Git» en option.

Étape 1: Téléchargement et configuration de Maven

Le site officiel de maven est Apache Maven . Si vous cliquez sur le lien donné, vous pouvez obtenir la page d'accueil du site officiel de maven comme indiqué ci-dessous.

En naviguant sur le site, accédez à la section Fichiers et téléchargez le lien vers le fichier Binary.zip.

Une fois le fichier téléchargé, extrayez les fichiers dans le dossier d'application approprié. Pour cela, les fichiers maven seront placés dans E: \ Apps \ apache-maven-3.3.3.

Étape 2: Configuration de Jenkins et Maven

Dans le tableau de bord Jenkins (écran d'accueil), cliquez sur Gérer Jenkins dans le menu de gauche.

Ensuite, cliquez sur «Configurer le système» sur le côté droit.

Dans l'écran Configurer le système, faites défiler vers le bas jusqu'à ce que vous voyiez la section Maven, puis cliquez sur le bouton «Ajouter Maven».

Décochez l'option «Installer automatiquement».

Ajoutez n'importe quel nom pour le paramètre et l'emplacement de MAVEN_HOME.

Ensuite, cliquez sur le bouton «Enregistrer» à la fin de l'écran.

Vous pouvez maintenant créer un travail avec l'option 'Projet Maven'. Dans le tableau de bord Jenkins, cliquez sur l'option Nouvel élément.

Vous auriez probablement vu plusieurs fois dans les exercices précédents où nous devions configurer des options dans Jenkins. Ce qui suit montre les différentes options de configuration de Jenkins.

Ainsi, on peut obtenir les différentes options de configuration pour Jenkins en cliquant sur l'option «Gérer Jenkins» dans le menu de gauche.

L'écran suivant vous sera alors présenté -

Cliquez sur Configurer le système. Vous trouverez ci-dessous certains des paramètres de configuration de Jenkins qui peuvent être exécutés.

Répertoire de base Jenkins

Jenkins a besoin d'espace disque pour effectuer des builds et conserver des archives. On peut vérifier cet emplacement depuis l'écran de configuration de Jenkins. Par défaut, il est défini sur ~ / .jenkins, et cet emplacement sera initialement stocké dans l'emplacement de votre profil utilisateur. Dans un environnement approprié, vous devez remplacer cet emplacement par un emplacement adéquat pour stocker toutes les versions et archives pertinentes. Une fois peut le faire des manières suivantes

  • Définissez la variable d'environnement "JENKINS_HOME" sur le nouveau répertoire de base avant de lancer le conteneur de servlet.

  • Définissez la propriété système "JENKINS_HOME" sur le conteneur de servlet.

  • Définissez l'entrée d'environnement JNDI "JENKINS_HOME" sur le nouveau répertoire.

L'exemple suivant utilisera la première option de définition de la variable d'environnement "JENKINS_HOME".

Créez d'abord un nouveau dossier E: \ Apps \ Jenkins. Copiez tout le contenu du ~ / .jenkins existant dans ce nouveau répertoire.

Définissez la variable d'environnement JENKINS_HOME pour qu'elle pointe vers l'emplacement du répertoire de base où Java est installé sur votre machine. Par exemple,

OS Production
les fenêtres Définissez la variable d'environnement JENKINS_HOME sur l'emplacement souhaité. À titre d'exemple, vous pouvez le définir sur E: \ Apps \ Jenkins
Linux exportez JENKINS_HOME = / usr / local / Jenkins ou l'emplacement que vous désirez.

Dans le tableau de bord Jenkins, cliquez sur Gérer Jenkins dans le menu de gauche. Cliquez ensuite sur «Configurer le système» sur le côté droit.

Dans le répertoire d'accueil, vous verrez maintenant le nouveau répertoire qui a été configuré.

# d'exécuteurs

Cela fait référence au nombre total d'exécutions de tâches simultanées qui peuvent avoir lieu sur la machine Jenkins. Cela peut être modifié en fonction des besoins. Parfois, la recommandation est de garder ce nombre identique au nombre de CPU sur les machines pour de meilleures performances.

Variables d'environnement

Ceci est utilisé pour ajouter des variables d'environnement personnalisées qui s'appliqueront à tous les travaux. Ce sont des paires clé-valeur et peuvent être consultées et utilisées dans les builds, le cas échéant.

URL Jenkins

Par défaut, l'URL Jenkins pointe vers localhost. Si vous avez une configuration de nom de domaine pour votre machine, définissez-la sur le nom de domaine sinon remplacez l'hôte local par l'IP de la machine. Cela vous aidera à configurer les esclaves et à envoyer des liens en utilisant l'e-mail, car vous pouvez accéder directement à l'URL Jenkins en utilisant la variable d'environnement JENKINS_URL qui peut être accédée en tant que $ {JENKINS_URL}.

Notification par e-mail

Dans la zone de notification par e-mail, vous pouvez configurer les paramètres SMTP pour l'envoi d'e-mails. Cela est nécessaire pour que Jenkins se connecte au serveur de messagerie SMTP et envoie des e-mails à la liste des destinataires.

Pour gérer Jenkins, cliquez sur l'option «Gérer Jenkins» dans le menu de gauche.

Ainsi, on peut obtenir les différentes options de configuration pour Jenkins en cliquant sur l'option «Gérer Jenkins» dans le menu de gauche.

L'écran suivant vous sera alors présenté -

Certaines des options de gestion sont les suivantes -

Configurer le système

C'est ici que l'on peut gérer les chemins vers les différents outils à utiliser dans les builds, tels que les JDK, les versions d'Ant et Maven, ainsi que les options de sécurité, les serveurs de messagerie et d'autres détails de configuration à l'échelle du système. Lorsque les plugins sont installés. Jenkins ajoutera les champs de configuration requis de manière dynamique après l'installation des plugins.

Recharger la configuration à partir du disque

Jenkins stocke tous les détails de configuration de son système et de sa tâche de construction sous forme de fichiers XML qui sont stockés dans le répertoire de base de Jenkins. Ici aussi, tout l'historique de construction est stocké. Si vous migrez des travaux de build d'une instance Jenkins vers une autre, ou archivez d'anciens travaux de build, vous devrez ajouter ou supprimer les répertoires de travaux de build correspondants dans le répertoire builds de Jenkins. Vous n'avez pas besoin de mettre Jenkins hors ligne pour ce faire - vous pouvez simplement utiliser l'option «Recharger la configuration à partir du disque» pour recharger le système Jenkins et créer directement les configurations de travail.

Gérer le plugin

Ici, on peut installer une grande variété de plugins tiers directement à partir de différents outils de gestion de code source tels que Git, Mercurial ou ClearCase, pour coder la qualité et les métriques de couverture du code. Les plugins peuvent être installés, mis à jour et supprimés via l'écran Gérer les plugins.

Informations système

Cet écran affiche une liste de toutes les propriétés système Java actuelles et des variables d'environnement système. Ici, on peut vérifier exactement quelle version de Java Jenkins s'exécute, sous quel utilisateur il s'exécute, et ainsi de suite.

La capture d'écran suivante montre certaines des informations de valeur de nom disponibles dans cette section.

Journal du système

L'écran Journal système est un moyen pratique d'afficher les fichiers journaux Jenkins en temps réel. Encore une fois, l'utilisation principale de cet écran est le dépannage.

Charger les statistiques

Cette page affiche des données graphiques sur l'occupation de l'instance Jenkins en termes de nombre de builds simultanés et de la longueur de la file d'attente de build, ce qui donne une idée du temps que vos builds doivent attendre avant d'être exécutées. Ces statistiques peuvent donner une bonne idée de la nécessité d'une capacité supplémentaire ou de nœuds de construction supplémentaires du point de vue de l'infrastructure.

Console de script

Cet écran vous permet d'exécuter des scripts Groovy sur le serveur. Il est utile pour le dépannage avancé car il nécessite une solide connaissance de l'architecture interne de Jenkins.

Gérer les nœuds

Jenkins est capable de gérer des builds parallèles et distribués. Dans cet écran, vous pouvez configurer le nombre de versions souhaitées. Jenkins s'exécute simultanément et, si vous utilisez des builds distribués, configurez des nœuds de build. Un nœud de construction est une autre machine que Jenkins peut utiliser pour exécuter ses constructions.

Préparez-vous à l'arrêt

S'il est nécessaire d'arrêter Jenkins, ou le serveur sur lequel Jenkins s'exécute, il est préférable de ne pas le faire lorsqu'une compilation est en cours d'exécution. Pour arrêter Jenkins proprement, vous pouvez utiliser le lien Prepare for Shutdown, qui empêche le démarrage de toute nouvelle compilation. Finalement, lorsque toutes les versions actuelles seront terminées, on pourra arrêter Jenkins proprement.

Pour cet exercice, nous allons créer un travail dans Jenkins qui récupère une simple application HelloWorld, construit et exécute le programme java.

Step 1 - Accédez au tableau de bord Jenkins et cliquez sur Nouvel élément

Step 2- Dans l'écran suivant, entrez le nom de l'objet, dans ce cas, nous l'avons nommé Helloworld. Choisissez l'option 'Projet Freestyle'

Step 3 - L'écran suivant apparaîtra dans lequel vous pouvez spécifier les détails du travail.

Step 4- Nous devons spécifier l'emplacement des fichiers à construire. Dans cet exemple, nous supposerons qu'un dépôt git local (E: \ Program) a été configuré et contient un fichier 'HelloWorld.java'. Par conséquent, faites défiler vers le bas et cliquez sur l'option Git et entrez l'URL du dépôt git local.

Note- Si votre référentiel est hébergé sur Github, vous pouvez également saisir l'url de ce référentiel ici. En plus de cela, vous devrez cliquer sur le bouton Ajouter pour les informations d'identification pour ajouter un nom d'utilisateur et un mot de passe au référentiel github afin que le code puisse être récupéré dans le référentiel distant.

Step 5 - Allez maintenant dans la section Build et cliquez sur Add build step → Exécuter la commande batch Windows

Step 6 - Dans la fenêtre de commande, entrez les commandes suivantes puis cliquez sur le bouton Enregistrer.

Javac HelloWorld.java
Java HelloWorld

Step 7 - Une fois enregistré, vous pouvez cliquer sur l'option Construire maintenant pour voir si vous avez défini avec succès le travail.

Step 8- Une fois la construction planifiée, elle s'exécutera. La section suivante de l'historique de construction montre qu'une génération est en cours.

Step 9- Une fois la construction terminée, un statut de la construction indiquera si la construction a réussi ou non. Dans notre cas, la construction suivante a été exécutée avec succès. Cliquez sur le n ° 1 dans l'historique de construction pour afficher les détails de la construction.

Step 10 - Cliquez sur le lien Sortie de la console pour voir les détails de la construction

Outre les étapes indiquées ci-dessus, il existe tellement de façons de créer une tâche de construction, les options disponibles sont nombreuses, ce qui fait de Jenkins un outil de déploiement continu si fantastique.

Jenkins fournit une fonctionnalité prête à l'emploi pour Junit et fournit une multitude de plugins pour les tests unitaires pour d'autres technologies, par exemple MSTest pour les tests unitaires .Net. Si vous allez sur le lienhttps://wiki.jenkins-ci.org/display/JENKINS/xUnit+Plugin il donnera la liste des plugins de test unitaire disponibles.

Exemple de test Junit dans Jenkins

L'exemple suivant considérera

  • Une classe HelloWorldTest simple basée sur Junit.
  • Ant comme outil de construction dans Jenkins pour construire la classe en conséquence.

Step 1 - Accédez au tableau de bord Jenkins et cliquez sur le projet HelloWorld existant et choisissez l'option Configurer

Step 2 - Accédez à la section Ajouter une étape de construction et choisissez l'option Invoke Ant.

Step 3 - Cliquez sur le bouton Avancé.

Step 4 - Dans la section du fichier de construction, entrez l'emplacement du fichier build.xml.

Step 5 - Cliquez ensuite sur l'option Ajouter une option de post-construction et choisissez l'option "Publier le rapport de résultat du test Junit"

Step 6- Dans les rapports de test XML, entrez l'emplacement comme indiqué ci-dessous. Assurez-vous que Reports est un dossier qui est créé dans l'espace de travail du projet HelloWorld. Le «* .xml» dit essentiellement à Jenkins de récupérer les fichiers xml de résultat qui sont produits par l'exécution des cas de test Junit. Ces fichiers xml qui seront ensuite convertis en rapports qui pourront être consultés ultérieurement.

Une fois terminé, cliquez sur l'option Enregistrer à la fin.

Step 7 - Une fois enregistré, vous pouvez cliquer sur l'option Construire maintenant.

Une fois la construction terminée, un état de la construction indiquera si la construction a réussi ou non. Dans les informations de sortie de construction, vous remarquerez maintenant une section supplémentaire appelée Résultat du test. Dans notre cas, nous avons entré un cas de test négatif afin que le résultat échoue juste à titre d'exemple.

On peut aller à la sortie de la console pour voir plus d'informations. Mais ce qui est plus intéressant, c'est que si vous cliquez sur Résultat du test, vous verrez maintenant une vue détaillée des résultats du test.

L'un des principes de base de l'intégration continue est qu'une construction doit être vérifiable. Vous devez être en mesure de déterminer objectivement si une version particulière est prête à passer à l'étape suivante du processus de construction, et le moyen le plus pratique de le faire est d'utiliser des tests automatisés. Sans des tests automatisés appropriés, vous devez conserver de nombreux artefacts de construction et les tester à la main, ce qui n'est guère dans l'esprit de l'intégration continue. L'exemple suivant montre comment utiliser Selenium pour exécuter des tests Web automatisés.

Step 1 - Allez dans Gérer les plugins.

Step 2- Trouvez le plugin Hudson Selenium et choisissez de l'installer. Redémarrez l'instance Jenkins.

Step 3 - Allez dans Configurer le système.

Step 4 - Configurez le jar du serveur sélénium et cliquez sur le bouton Enregistrer.

Note- Le fichier jar sélénium peut être téléchargé à partir de l'emplacement SeleniumHQ

Cliquez sur le téléchargement du serveur autonome Selenium.

Step 5 - Revenez à votre tableau de bord et cliquez sur l'option Configurer pour le projet HelloWorld.

Step 6 - Cliquez sur Ajouter une étape de construction et choisissez l'option "SeleniumHQ htmlSuite Run"

Step 7- Ajoutez les détails nécessaires pour le test du sélénium. Ici, le suiteFile est la TestSuite générée à l'aide de Selenium IDE. Cliquez sur Enregistrer et exécutez une construction. Maintenant, la post build lancera le pilote sélénium et exécutera le test html.

Jenkins est livré avec une fonction prête à l'emploi pour ajouter une notification par e-mail pour un projet de construction.

Step 1- Configuration d'un serveur SMTP. Goto Manage Jenkins → Configurer le système. Accédez à la section Notification par e-mail et entrez le serveur SMTP requis et les détails du suffixe de messagerie de l'utilisateur.

Step 2- Configurer les destinataires dans le projet Jenkins - Lorsque vous configurez un projet de build Jenkins, juste à la fin se trouve la possibilité d'ajouter des destinataires qui recevraient des notifications par e-mail pour les builds instables ou cassés. Cliquez ensuite sur le bouton Enregistrer.

Outre la valeur par défaut, il existe également des plugins de notification disponibles sur le marché. Un exemple est le plugin de notification de Tikal Knowledge qui permet d'envoyer des notifications d'état de la tâche aux formats JSON et XML. Ce plugin permet de configurer les points de terminaison comme indiqué ci-dessous.

Voici les détails de chaque option -

  • "Format" - Il s'agit du format de charge utile de notification qui peut être JSON ou XML.

  • "Protocol" - protocole à utiliser pour l'envoi de messages de notification, HTTP, TCP ou UDP.

  • "Event" - Les événements de travail qui déclenchent des notifications: travail démarré, travail terminé, travail finalisé ou tous les événements (option par défaut).

  • "URL"- URL à laquelle envoyer des notifications. Il prend la forme de "http://host"pour le protocole HTTP et "host:port"pour les protocoles TCP et UDP.

  • "Timeout" - Délai en millisecondes pour l'envoi de la demande de notification, 30 secondes par défaut.

Comme démontré dans la section précédente, il existe de nombreux plugins de reporting disponibles, le plus simple étant les rapports disponibles pour les tests jUnit.

Dans l'action Post-build pour n'importe quel travail, vous pouvez définir les rapports à créer. Une fois les générations terminées, l'option Résultats des tests sera disponible pour une analyse plus approfondie.

Jenkins possède une multitude de plugins d'analyse de code. Les différents plugins peuvent être trouvés surhttps://wiki.jenkins-ci.org/display/JENKINS/Static+Code+Analysis+Plugins

Ce plugin fournit des utilitaires pour les plugins d'analyse de code statique. Jenkins peut analyser le fichier de résultats à partir de divers outils d'analyse de code tels que CheckStyle, FindBugs, PMD, etc. Pour chaque outil d'analyse de code correspondant, un plugin dans Jenkins doit être installé.

De plus, le plugin complémentaire Static Analysis Collector est disponible et combine les résultats individuels de ces plugins en un seul graphique de tendance et une vue.

Les plugins peuvent fournir des informations telles que

  • Le nombre total d'avertissements dans une tâche
  • Une présentation des avertissements nouveaux et corrigés d'une construction
  • Rapports de tendance indiquant le nombre d'avertissements par build
  • Vue d'ensemble des avertissements trouvés par module, package, catégorie ou type
  • Rapports détaillés des avertissements trouvés éventuellement filtrés par gravité (ou nouveaux et corrigés)

Parfois, de nombreuses machines de construction sont nécessaires s'il y a des cas dans lesquels il y a des projets plus grands et plus lourds qui sont construits régulièrement. Et exécuter toutes ces versions sur une machine centrale n'est peut-être pas la meilleure option. Dans un tel scénario, on peut configurer d'autres machines Jenkins pour qu'elles soient des machines esclaves pour alléger la charge du serveur Jenkins maître.

Parfois, vous pouvez également avoir besoin de plusieurs environnements différents pour tester vos builds. Dans ce cas, l'utilisation d'un esclave pour représenter chacun de vos environnements requis est presque indispensable.

Un esclave est un ordinateur configuré pour décharger les projets de construction du maître et une fois configuré, cette répartition des tâches est assez automatique. Le comportement exact de la délégation dépend de la configuration de chaque projet; certains projets peuvent choisir de "s'en tenir" à une machine particulière pour une construction, tandis que d'autres peuvent choisir de se déplacer librement entre les esclaves.

Étant donné que chaque esclave exécute un programme distinct appelé "agent esclave", il n'est pas nécessaire d'installer le Jenkins complet (package ou binaires compilés) sur un esclave. Il existe différentes manières de démarrer des agents esclaves, mais à la fin, l'agent esclave et le maître Jenkins doivent établir une liaison de communication bidirectionnelle (par exemple une socket TCP / IP) pour fonctionner.

Pour configurer des esclaves / nœuds dans Jenkins, suivez les étapes ci-dessous.

Step 1 - Accédez à la section Gérer Jenkins et faites défiler jusqu'à la section Gérer les nœuds.

Step 2 - Cliquez sur Nouveau nœud

Step 3 - Donnez un nom au nœud, choisissez l'option Esclave muet et cliquez sur OK.

Step 4- Entrez les détails de la machine esclave du nœud. Dans l'exemple ci-dessous, nous considérons la machine esclave comme une machine Windows, par conséquent, l'option «Laisser Jenkins contrôler cet esclave Windows en tant que service Windows» a été choisie comme méthode de lancement. Nous devons également ajouter les détails nécessaires du nœud esclave, tels que le nom du nœud et les informations de connexion pour la machine du nœud. Cliquez sur le bouton Enregistrer. Les étiquettes pour lesquelles le nom est entré comme «New_Slave» sont celles qui peuvent être utilisées pour configurer les travaux pour utiliser cette machine esclave.

Une fois les étapes ci-dessus terminées, la nouvelle machine à nœuds sera initialement dans un état hors ligne, mais sera en ligne si tous les paramètres de l'écran précédent ont été saisis correctement. On peut à tout moment rendre la machine esclave du nœud hors ligne si nécessaire.

Il existe de nombreux plugins disponibles qui peuvent être utilisés pour transférer les fichiers de construction après une construction réussie vers l'application / le serveur Web respectif. Un exemple est le «Deploy to container Plugin». Pour l'utiliser, suivez les étapes ci-dessous.

Step 1- Allez dans Gérer Jenkins → Gérer les plugins. Allez dans la section Disponible et trouvez le plugin «Deploy to container Plugin» et installez le plugin. Redémarrez le serveur Jenkins.

Ce plugin prend un fichier war / ear et le déploie sur un serveur d'applications distant en cours d'exécution à la fin d'une construction.

Tomcat 4.x / 5.x / 6.x / 7.x

JBoss 3.x / 4.x

Glassfish 2.x / 3.x

Step 2- Accédez à votre projet Build et cliquez sur l'option Configurer. Choisissez l'option "Déployer la guerre / l'oreille dans un conteneur"

Step 3- Dans la section Déployer war / ear vers un conteneur, entrez les détails requis du serveur sur lequel les fichiers doivent être déployés et cliquez sur le bouton Enregistrer. Ces étapes garantissent désormais que les fichiers nécessaires sont déployés dans le conteneur nécessaire après une génération réussie.

Il existe différents plugins disponibles dans Jenkins pour présenter les métriques des builds qui sont effectuées sur une période de temps. Ces métriques sont utiles pour comprendre vos builds et leur fréquence d'échec / échec au fil du temps. À titre d'exemple, regardons le 'plugin Build History Metrics'.

Ce plugin calcule les métriques suivantes pour toutes les versions une fois installées

  • Temps moyen de défaillance (MTTF)
  • Temps moyen de récupération (MTTR)
  • Écart type des temps de construction

Step 1 - Accédez au tableau de bord Jenkins et cliquez sur Gérer Jenkins

Step 2 - Accédez à l'option Gérer les plugins.

Step 3 - Allez dans l'onglet Disponible et recherchez le plugin 'Build History Metrics plugin' et choisissez 'installer sans redémarrer'.

Step 4- L'écran suivant apparaît pour confirmer l'installation réussie du plugin. Redémarrez l'instance Jenkins.

Lorsque vous accédez à votre page Job, vous verrez un tableau avec les métriques calculées. Les métriques sont affichées pour les 7 derniers jours, les 30 derniers jours et tout le temps.

Pour voir les tendances générales de Jenkins, il existe des plugins disponibles pour collecter des informations à partir des builds et de Jenkins et les afficher dans un format graphique. Un exemple d'un tel plugin est le 'plugin Hudson global-build-stats'. Passons donc en revue les étapes pour cela.

Step 1 - Accédez au tableau de bord Jenkins et cliquez sur Gérer Jenkins

Step 2 - Allez dans l'option Gérer les plugins

Step 3 - Allez dans l'onglet Disponible et recherchez le plugin 'Hudson global-build-stats plugin' et choisissez 'installer sans redémarrer'.

Step 4- L'écran suivant apparaît pour confirmer l'installation réussie du plugin. Redémarrez l'instance Jenkins.

Pour voir les statistiques globales, veuillez suivre les étapes 5 à 8.

Step 5- Accédez au tableau de bord Jenkins et cliquez sur Gérer Jenkins. Dans l'écran Gérer Jenkins, faites défiler vers le bas et vous verrez maintenant une option appelée `` Statistiques de construction globales ''. Cliquez sur ce lien.

Step 6- Cliquez sur le bouton «Initialiser les statistiques». Cela permet de rassembler tous les enregistrements existants pour les constructions qui ont déjà été effectuées et des graphiques peuvent être créés en fonction de ces résultats.

Step 7- Une fois les données initialisées, il est temps de créer un nouveau graphique. Cliquez sur le lien "Créer un nouveau graphique".

Step 8- Un pop-up viendra pour saisir les informations pertinentes pour les nouveaux détails du graphique. Saisissez les informations obligatoires suivantes

  • Titre - Toute information sur le titre, pour cet exemple est donnée en tant que «Démo»
  • Largeur du graphique - 800
  • Hauteur du diagramme - 600
  • Échelle de temps du graphique - Quotidien
  • Durée du graphique - 30 jours

Le reste des informations peut rester tel quel. Une fois les informations saisies, cliquez sur Créer un nouveau graphique.

Vous verrez maintenant le graphique qui affiche les tendances des builds au fil du temps.

Si vous cliquez sur n'importe quelle section du graphique, cela vous donnera un aperçu des détails du travail et de leurs constructions.

Voici quelques-unes des activités de base que vous allez effectuer, dont certaines sont les meilleures pratiques pour la maintenance du serveur Jenkins

Options d'URL

Les commandes suivantes, lorsqu'elles sont ajoutées à l'URL de l'instance Jenkins, exécutent les actions appropriées sur l'instance Jenkins.

http://localhost:8080/jenkins/exit - arrêter Jenkins

http://localhost:8080/jenkins/restart - redémarrez jenkins

http://localhost:8080/jenkins/reload - pour recharger la configuration

Sauvegarder la maison Jenkins

Le répertoire de base de Jenkins n'est rien d'autre que l'emplacement sur votre lecteur où Jenkins stocke toutes les informations pour les travaux, les builds, etc. L'emplacement de votre répertoire de base peut être vu lorsque vous cliquez sur Gérer Jenkins → Configurer le système.

Configurez Jenkins sur la partition qui a le plus d'espace disque libre - Étant donné que Jenkins prendrait le code source pour les différents travaux définis et ferait des compilations continues, assurez-vous toujours que Jenkins est installé sur un lecteur disposant de suffisamment d'espace disque. Si votre disque dur manque d'espace, toutes les compilations de l'instance Jenkins commenceront à échouer.

Une autre bonne pratique consiste à écrire des tâches cron ou des tâches de maintenance qui peuvent effectuer des opérations de nettoyage pour éviter que le disque sur lequel Jenkins est configuré ne devienne plein.

Jenkins fournit un bon support pour fournir un déploiement et une livraison continus. Si vous regardez le déroulement de tout développement logiciel via le déploiement, ce sera comme indiqué ci-dessous.

La partie principale du déploiement continu est de s'assurer que l'ensemble du processus présenté ci-dessus est automatisé. Jenkins réalise tout cela via divers plugins, l'un d'entre eux étant le «Deploy to container Plugin» qui a été vu dans les leçons précédentes.

Il existe des plugins disponibles qui peuvent en fait vous donner une représentation graphique du processus de déploiement continu. Mais commençons par créer un autre projet dans Jenkins, afin que nous puissions voir au mieux comment cela fonctionne.

Créons un projet simple qui émule l'étape QA et teste l'application Helloworld.

Step 1- Accédez au tableau de bord Jenkins et cliquez sur Nouvel élément. Choisissez un «projet Freestyle» et entrez le nom du projet comme «QA». Cliquez sur le bouton Ok pour créer le projet.

Step 2 - Dans cet exemple, nous gardons les choses simples et utilisons simplement ce projet pour exécuter un programme de test pour l'application Helloworld.

Donc, notre projet QA est maintenant configuré. Vous pouvez faire une compilation pour voir si elle se construit correctement.

Step 3 - Allez maintenant dans votre projet Helloworld et cliquez sur l'option Configurer

Step 4 - Dans la configuration du projet, choisissez l'option 'Ajouter une action post-construction' et choisissez 'Construire d'autres projets'

Step 5- Dans la section «Projet à construire», entrez QA comme nom du projet à construire. Vous pouvez laisser l'option par défaut de «Déclencher uniquement si la construction est stable». Cliquez sur le bouton Enregistrer.

Step 6- Construisez le projet Helloworld. Maintenant, si vous voyez la sortie de la console, vous verrez également qu'après la construction du projet Helloworld, la construction du projet QA se produira également.

Step 7- Laissez maintenant installer le plugin de pipeline de livraison. Allez dans Gérer Jenkins → Gérer les plugins. Dans l'onglet disponible, recherchez «Plugin de pipeline de livraison». Cliquez sur Installer sans redémarrer. Une fois terminé, redémarrez l'instance Jenkins.

Step 8 - Pour voir le pipeline de livraison en action, dans le tableau de bord Jenkins, cliquez sur le symbole + dans l'onglet à côté de l'onglet «Tous».

Step 9 - Entrez un nom pour le nom de la vue et choisissez l'option «Vue du pipeline de livraison».

Step 10- Dans l'écran suivant, vous pouvez laisser les options par défaut. On peut modifier les paramètres suivants -

  • Assurez-vous que l'option «Afficher les résultats de l'analyse statique» est cochée.
  • Assurez-vous que l'option «Afficher le temps total de construction» est cochée.
  • Pour le travail initial - Entrez le projet Helloworld comme premier travail à construire.
  • Entrez un nom pour le pipeline
  • Cliquez sur le bouton OK.

Vous verrez maintenant une vue magnifique de l'ensemble du pipeline de livraison et vous pourrez voir l'état de chaque projet dans l'ensemble du pipeline.

Un autre plugin célèbre est le build pipeline plugin. Jetons un coup d'oeil à ceci.

Step 1- Allez dans Gérer Jenkins → Gérer les plugins. Dans l'onglet disponible, recherchez «Build Pipeline Plugin». Cliquez sur Installer sans redémarrer. Une fois terminé, redémarrez l'instance Jenkins.

Step 2 - Pour voir le pipeline de construction en action, dans le tableau de bord Jenkins, cliquez sur le symbole + dans l'onglet à côté de l'onglet «Tous».

Step 3 - Entrez un nom pour le nom de la vue et choisissez l'option «Construire la vue du pipeline».

Step 4- Acceptez les paramètres par défaut, juste dans le travail initial sélectionné, assurez-vous de saisir le nom du projet Helloworld. Cliquez sur le bouton Ok.

Vous verrez maintenant une vue magnifique de l'ensemble du pipeline de livraison et vous pourrez voir l'état de chaque projet dans l'ensemble du pipeline.

Pour obtenir la liste de tous les plugins disponibles dans Jenkins, on peut visiter le lien - https://wiki.jenkins-ci.org/display/JENKINS/Plugins

Nous avons déjà vu de nombreuses instances pour installer des plugins, regardons quelques autres tâches de maintenance en ce qui concerne les plugins

Désinstaller des plugins

Pour désinstaller un plugin, allez dans Gérer Jenkins → Gérer les plugins. Cliquez sur l'onglet Installé. Certains plugins auront l'option Désinstaller. Vous pouvez cliquer sur ces boutons pour désinstaller les plugins. Assurez-vous de redémarrer votre instance Jenkins après la désinstallation.

Installer une autre version d'un plugin

Parfois, il peut être nécessaire d'installer une ancienne version d'un plugin, dans un tel cas, vous pouvez télécharger le plugin à partir de la page de plugin correspondante sur le site Web de Jenkins. Vous pouvez ensuite utiliser leUpload option pour télécharger le plugin manuellement.

Dans Jenkins, vous avez la possibilité de configurer les utilisateurs et leurs autorisations pertinentes sur l'instance Jenkins. Par défaut, vous ne voudrez pas que tout le monde puisse définir des tâches ou d'autres tâches administratives dans Jenkins. Jenkins a donc la possibilité de mettre en place une configuration de sécurité.

Pour configurer la sécurité dans Jenkins, suivez les étapes ci-dessous.

Step 1 - Cliquez sur Gérer Jenkins et choisissez l'option «Configurer la sécurité globale».

Step 2- Cliquez sur l'option Activer la sécurité. À titre d'exemple, supposons que nous voulons que Jenkins maintienne sa propre base de données d'utilisateurs, donc dans le domaine de la sécurité, choisissez l'option 'Jenkins' own user database '.

Par défaut, vous souhaitez qu'un administrateur central définisse les utilisateurs dans le système, assurez-vous donc que l'option «Autoriser les utilisateurs à s'inscrire» est désactivée. Vous pouvez laisser le reste tel quel pour le moment et cliquer sur le bouton Enregistrer.

Step 3- Vous serez invité à ajouter votre premier utilisateur. À titre d'exemple, nous mettons en place des utilisateurs administrateurs pour le système.

Step 4- Il est maintenant temps de configurer vos utilisateurs dans le système. Maintenant, lorsque vous allez dans Gérer Jenkins et faites défiler vers le bas, vous verrez une option `` Gérer les utilisateurs ''. Cliquez sur cette option.

Step 5- Tout comme vous avez défini votre utilisateur administrateur, commencez à créer d'autres utilisateurs pour le système. À titre d'exemple, nous créons simplement un autre utilisateur appelé «utilisateur».

Step 6- Il est maintenant temps de configurer vos autorisations, essentiellement qui a accès à quoi. Accédez à Gérer Jenkins → Configurer la sécurité globale.

Maintenant dans la section Autorisation, cliquez sur 'Matrix based security'

Step 7- Si vous ne voyez pas l'utilisateur dans la liste des groupes d'utilisateurs, entrez le nom d'utilisateur et ajoutez-le à la liste. Donnez ensuite les autorisations appropriées à l'utilisateur.

Cliquez sur le bouton Enregistrer une fois que vous avez défini les autorisations appropriées.

Votre sécurité Jenkins est maintenant configurée.

Note - Pour l'authentification Windows AD, il faut ajouter le plugin Active Directory à Jenkins.

Jenkins a un plugin de sauvegarde qui peut être utilisé pour sauvegarder les paramètres de configuration critiques liés à Jenkins. Suivez les étapes ci-dessous pour mettre en place une sauvegarde.

Step 1 - Cliquez sur Manage Jenkins et choisissez l'option 'Manage Plugins'.

Step 2- Dans l'onglet disponible, recherchez «Plugin de sauvegarde». Cliquez sur Installer sans redémarrer. Une fois terminé, redémarrez l'instance Jenkins

Step 3- Maintenant, lorsque vous allez dans Gérer Jenkins et faites défiler vers le bas, vous verrez `` Gestionnaire de sauvegarde '' en option. Cliquez sur cette option.

Step 4 - Cliquez sur Setup.

Step 5- Ici, le champ principal à définir est le répertoire de votre sauvegarde. Assurez-vous qu'il se trouve sur un autre lecteur différent du lecteur sur lequel votre instance Jenkins est configurée. Cliquez sur le bouton Enregistrer.

Step 6 - Cliquez sur 'Backup Hudson configuration' depuis l'écran du gestionnaire de sauvegarde pour lancer la sauvegarde.

L'écran suivant affichera l'état de la sauvegarde

Pour récupérer à partir d'une sauvegarde, accédez à l'écran du gestionnaire de sauvegarde, cliquez sur Restaurer la configuration Hudson.

La liste des sauvegardes sera affichée, cliquez sur celle appropriée pour cliquer sur Lancer la restauration pour commencer la restauration de la sauvegarde.

Les tests Web tels que les tests de sélénium peuvent être exécutés sur des machines esclaves distantes via l'installation du plugin maître esclave et de la suite sélénium. Les étapes suivantes montrent comment exécuter des tests à distance à l'aide de cette configuration.

Step 1- Assurez-vous que votre configuration maître-esclave est en place. Accédez à votre serveur Jenkins principal. Accédez à Gérer Jenkins → Gérer les nœuds.

Dans notre liste de nœuds, l'étiquette DXBMEM30 est la machine esclave. Dans cet exemple, les machines maître et esclave sont des machines Windows.

Step 2 - Cliquez sur configurer pour la machine esclave DXBMEM30.

Step 3 - Assurez-vous que la méthode de lancement est définie comme `` Lancer les agents esclaves via Java Web Start ''

Step 4- Allez maintenant sur votre machine esclave et à partir de là, ouvrez une instance de navigateur sur votre instance maître Jenkins. Ensuite, allez dans Gérer Jenkins → Gérer les nœuds. Allez sur DXBMEM30 et cliquez sur

Step 5 - Cliquez sur l'instance DXBMEM30.

Step 6 - Faites défiler vers le bas et vous verrez l'option de lancement qui est l'option pour démarrer 'Java Web Start'

Step 7- Un avertissement de sécurité vous sera présenté. Cliquez sur la case à cocher Acceptation et cliquez sur exécuter.

Vous verrez maintenant une fenêtre Jenkins Slave ouverte et maintenant connectée.

Step 8- Configurer vos tests pour qu'ils s'exécutent sur l'esclave. Ici, vous devez vous assurer que le travail en cours de création est spécifiquement destiné à exécuter uniquement les tests de sélénium.

Dans la configuration du travail, assurez-vous que l'option 'Restreindre où ce projet peut être exécuté' est sélectionnée et dans l'expression d'étiquette, mettez le nom du nœud esclave.

Step 9- Assurez-vous que la partie sélénium de votre travail est configurée. Vous devez vous assurer que le fichier Sample.html et le fichier selenium-server.jar sont également présents sur la machine esclave.

Une fois que vous avez suivi toutes les étapes ci-dessus et cliquez sur Construire, ce projet exécutera le test Selenium sur la machine esclave comme prévu.