Tutoriel Jenkins | Intégration continue à l'aide de Jenkins | Edureka

Le didacticiel Jenkins est le deuxième blog de la série de blogs Jenkins. Ce blog parle de l'architecture distribuée Jenkins et comment créer une build à l'aide de Jenkins.

Tutoriel Jenkins

Jenkins est l'un des outils les plus importants de . J'espère que vous avez lu mon précédent blog sur . Dans ce blog du didacticiel Jenkins, je me concentrerai sur l'architecture Jenkins et le pipeline de construction Jenkins, en plus de vous montrer comment créer une construction dans Jenkins.



Avant de poursuivre avec le didacticiel Jenkins, les principaux points à retenir du blog précédent sont:



  • Jenkins est utilisé pour intégrer toutes les étapes DevOps à l'aide de plugins.
  • Les plugins Jenkins couramment utilisés sont Git, Amazon EC2, le projet Maven 2, l'éditeur HTML, etc.
  • Jenkins a bien plus de 1000 plugins et147 000 installations actives avec plus d'un million d'utilisateurs dans le monde.
  • Avec l'intégration continue, chaque modification apportée au code sourceestconstruit. Il remplit également d'autres fonctions,cela dépend de l'outil utilisé pour l'intégration continue.
  • Nokia est passé de la version Nightly à l'intégration continue.
  • Le processus avant l'intégration continue présentait de nombreux défauts. En conséquence, non seulement la livraison du logiciel était lente, mais la qualité du logiciel n'était pas non plus à la hauteur. Les développeurs ont également eu du mal à localiser et à corriger les bogues.
  • L'intégration continue avec Jenkins a surmonté ces lacunes en déclenchant continuellement une compilation et un test pour chaque modification apportée au code source.

Le moment est venu de comprendre l'architecture Jenkins.

Architecture de Jenkins

Révisons l'architecture autonome de Jenkins que je vous ai expliquée dans le , ci-dessous le diagramme illustre la même chose.



Architecture autonome de Jenkins - Qu

Ce seul serveur Jenkins n'était pas suffisant pour répondre à certaines exigences telles que:

  • Parfois, vous pourriez avoir besoin de plusieurs environnements différents pour tester vos builds. Cela ne peut pas être fait par un seul serveur Jenkins.
  • Si des projets plus volumineux et plus lourds sont construits régulièrement, un seul serveur Jenkins ne peut pas simplement gérer toute la charge.

Pour répondre aux besoins mentionnés ci-dessus, l'architecture distribuée Jenkins a été introduite.



Architecture distribuée Jenkins

Jenkins utilise une architecture maître-esclave pour gérer les versions distribuées. Dans cette architecture, maître et esclave communiquent via le protocole TCP / IP.

Maître Jenkins

Votre serveur Jenkins principal est le Master. Le travail du maître est de gérer:

  • Planification des travaux de construction.
  • Distribution des builds aux esclaves pour l'exécution réelle.
  • Surveillez les esclaves (éventuellement en les mettant en ligne et hors ligne selon les besoins).
  • Enregistrement et présentation des résultats de construction.
  • Une instance maître de Jenkins peut également exécuter des tâches de génération directement.

Esclave Jenkins

Un esclave est un exécutable Java qui s'exécute sur une machine distante. Voici les caractéristiques des esclaves Jenkins:

  • Il entend les demandes de l'instance Jenkins Master.
  • Les esclaves peuvent fonctionner sur une variété de systèmes d'exploitation.
  • Le travail d'un esclave est de faire ce qu'on lui dit, ce qui implique d'exécuter des tâches de construction envoyées par le maître.
  • Vous pouvez configurer un projet pour qu'il s'exécute toujours sur une machine esclave particulière, ou un type particulier de machine esclave, ou simplement laisser Jenkins choisir le prochain esclave disponible.

Le diagramme ci-dessous est explicite. Il se compose d'un maître Jenkins qui gère trois esclaves Jenkins.

Regardons maintenant un exemple dans lequel Jenkins est utilisé pour des tests dans différents environnements tels que: Ubuntu, MAC, Windows etc.

Le diagramme ci-dessous représente le même:

Les fonctions suivantes sont exécutées dans l'image ci-dessus:

  • Jenkins vérifie le référentiel Git à intervalles réguliers pour toutes les modifications apportées au code source.
  • Chaque build nécessite un environnement de test différent, ce qui n'est pas possible pour un seul serveur Jenkins. Afin d'effectuer des tests dans différents environnements, Jenkins utilise différents esclaves comme indiqué dans le diagramme.
  • Jenkins Master demande à ces esclaves d'effectuer des tests et de générer des rapports de test.

Pipeline de construction Jenkins

Il est utilisé pour savoir quelle tâche Jenkins est en cours d'exécution. Souvent, plusieurs modifications différentes sont apportées par plusieurs développeurs à la fois, il est donc utile de savoir quelle modification est testée ou quelle modification est dans la file d'attente ou quelle version est interrompue. C'est là que le pipeline entre en scène. Le pipeline Jenkins vous donne un aperçu de la progression des tests. Dans le pipeline de construction, la construction dans son ensemble est divisée en sections, telles que les phases de test unitaire, de test d'acceptation, de packaging, de reporting et de déploiement. Les phases du pipeline peuvent être exécutées en série ou en parallèle, et si une phase réussit, elle passe automatiquement à la phase suivante (d'où la pertinence du nom «pipeline»). L'image ci-dessous montre à quoi ressemble un pipeline de construction multiple.

J'espère que vous avez compris les concepts théoriques. Maintenant, amusons-nous avec la pratique.

Je vais créer un nouvel emploi à Jenkins, c'est un Projet Freestyle . Cependant, 3 autres options sont disponibles. Examinons les types de travaux de construction disponibles dans Jenkins.

Projet Freestyle:

Les travaux de construction Freestyle sont des travaux de construction à usage général, qui offrent une flexibilité maximale.Le travail de construction freestyle est l'option la plus flexible et configurable, et peut être utilisé pour tout type de projet. Il est relativement simple à mettre en place, et de nombreuses options que nous configurons ici apparaissent également dans d'autres tâches de build.

Tâche de multi-configuration:

Le «projet multiconfiguration» (également appelé «projet matriciel») vous permet d'exécuter le même travail de génération sur différents environnements. Il est utilisé pour tester une application dans différents environnements, avec différentes bases de données ou même sur différentes machines de construction.

Surveiller un travail externe:

La tâche de construction «Surveiller une tâche externe» vous permet de garder un œil sur les processus non interactifs, tels que les tâches cron.

Projet Maven:

Le «projet maven2 / 3» est un travail de construction spécialement adapté aux projets Maven. Jenkins comprend les fichiers pom Maven et les structures de projet, et peut utiliser les informations glanées dans le fichier pom pour réduire le travail que vous devez faire pour configurer votre projet.

Voici une vidéo sur le tutoriel Jenkins pour une meilleure compréhension de Jenkins. Regardez cette vidéo de tutoriel Jenkins.

Premiers pas avec Jenkins | Tutoriel Jenkins et DevOps | Jenkins pour les débutants | Edureka

Créer une compilation à l'aide de Jenkins

Étape 1: Depuis la page d'accueil de l'interface Jenkins, sélectionnez Nouvel article.

Étape 2: Entrez un nom et sélectionnez Projet Freestyle .

Étape 3: Cette page suivante est l'endroit où vous spécifiez la configuration du travail. Comme vous le verrez rapidement, un certain nombre de paramètres sont disponibles lorsque vous créez un nouveau projet.Sur cette page de configuration, vous avez également la possibilité de Ajouter une étape de construction pour effectuer des actions supplémentaires telles que l'exécution de scripts. J'exécuterai un script shell.

Cela vous fournira une zone de texte dans laquelle vous pourrez ajouter les commandes dont vous avez besoin. Vous pouvez utiliser des scripts pour exécuter diverses tâches telles que la maintenance du serveur, le contrôle de version, la lecture des paramètres système, etc. J'utiliserai cette section pour exécuter un script simple.

Étape 4: Enregistrez le projet et vous serez redirigé vers une page de présentation du projet. Ici, vous pouvez voir des informations sur le projet, y compris son historique de construction.

Étape 5: Cliquez sur Construisez maintenant sur le côté gauche pour démarrer la construction.

Étape 6: Pour voir plus d'informations, cliquez sur cette build dans la zone d'historique de build, après quoi vous serez redirigé vers une page avec un aperçu des informations de build.

tableau php print_r

Étape 7: La Sortie de la console Le lien sur cette page est particulièrement utile pour examiner les résultats du travail en détail.

Étape 8: Si vous revenez à la maison Jenkins, vous verrez un aperçu de tous les projets et de leurs informations, y compris leur statut.

Le statut de la construction est indiqué de deux manières, par une icône météo et par une boule colorée. L'icône météo est particulièrement utile car elle vous montre un enregistrement de plusieurs builds dans une image.

Comme vous pouvez le voir sur l'image ci-dessus, le soleil représente que toutes mes constructions ont réussi. La couleur de la balle nous donne le statut de cette construction particulière, dans l'image ci-dessus la couleur de la balle est bleue, ce qui signifie que cette construction particulière a réussi.

Dans ce tutoriel Jenkins, je viens de donner un exemple d'introduction. Dans mon prochain blog, je vais vous montrer comment extraire et créer du code à partir du référentiel GitHub à l'aide de Jenkins.

Si vous avez trouvé ceci Tutoriel Jenkins pertinent, consultez le par Edureka, une entreprise d'apprentissage en ligne de confiance avec un réseau de plus de 250 000 apprenants satisfaits répartis dans le monde entier. Le cours de formation à la certification Edureka DevOps aide les apprenants à acquérir une expertise dans divers processus et outils DevOps tels que Puppet, Jenkins, Nagios et GIT pour automatiser plusieurs étapes dans SDLC.

Vous avez une question pour nous? Veuillez le mentionner dans la section commentaires et nous vous recontacterons.