Comment créer un serveur Jenkins Build
L'intégration et le déploiement continus sont deux des principaux principes de DevOps. L'automatisation des processus de création et de déploiement permet aux équipes de développement logiciel d'effectuer plus souvent des modifications plus petites.
L'automatisation limite les bogues dus au code écrit par d'autres membres de l'équipe, car le code a été extrait. Pour obtenir cet avantage, un degré élevé d'automatisation et d'orchestration est nécessaire. Entrez Jenkins.
Jenkins est l'un des outils d'orchestration open source les plus populaires et les plus flexibles du marché. Que vous travailliez sur un monolithe ou des micro-services hérités, sur site ou dans le cloud, Jenkins peut vous aider.
Dans cet article, pour comprendre le fonctionnement des serveurs de génération Jenkins, nous allons parcourir les principes de base pour faire fonctionner un serveur Jenkins. Nous allons interroger un référentiel Git local et exécuter du code PowerShell lorsqu'une modification est apportée à ce référentiel pour avoir une idée du flux de travail.
Sommaire
Conditions préalables
Nous nous familiarisons avec cet article. Si vous souhaitez suivre, assurez-vous que vous disposez de quelques conditions préalables:
- Un appareil Mac, Linux ou Windows avec:
- Java 1.7 ou supérieur (Jenkins fonctionne sur Java)
- Un gestionnaire de packages (Chocolatey, Homebrew, apt, yum, etc.)
- Un navigateur Web (Chrome, Firefox ou tout navigateur basé sur Chromium fonctionne mieux)
- Git (peut installer cela avec le gestionnaire de paquets)
- Un référentiel Git
Installer Jenkins
Vous pouvez installer Jenkins de plusieurs manières, chacune s'adaptant à une plate-forme et à un cas d'utilisation différents. Si vous construisez un serveur de production, vous pouvez envisager d'utiliser une méthode différente de celle illustrée, mais la façon la plus simple d'installer Jenkins est d'utiliser un gestionnaire de packages.
Sous Windows, vous utilisez probablement Chocolatey, sous MacOS Homebrew et sous Linux, cela dépend de la distribution de Linux que vous utilisez.
Une fois que vous avez installé Jenkins, vous pouvez y accéder directement depuis votre navigateur Web. Ouvrez votre navigateur et accédez à (localhost:8080)(http://localhost:8080)
et vous voyez Jenkins démarrer ou attendre un mot de passe initial.
localhost
fait référence au service Jenkins qui s'exécute maintenant sur votre appareil lorsque le port 8080
est le port d'interface utilisateur Jenkins par défaut.
Recherche du mot de passe administrateur
Sur la première page, Jenkins écrit un mot de passe à usage unique dans un fichier, puis vous donne l'emplacement du fichier. Ce processus garantit que vous avez accès au système de fichiers du système sur lequel vous l'avez installé.
Obtenez le mot de passe de ce fichier, entrez-le dans le Mot de passe administrateur ci-dessous pour continuer.
Installation des plug-ins initiaux
Ensuite, Jenkins va vous demander si vous voulez choisir les plugins à installer ou utiliser les valeurs par défaut recommandées. Les plugins sont la façon dont Jenkins interagit avec d'autres composants et services. Vous installez plus de plugins plus tard, mais pour l'instant, sélectionnez les valeurs par défaut.
Configuration d'un utilisateur administrateur
Après quelques minutes, vous devez configurer votre premier utilisateur administrateur Jenkins. Cela peut être modifié plus tard, mais il est important d'en choisir un dont vous vous souviendrez au moins pendant le processus de configuration, comme celui ci-dessous.
Définition de l'URL Jenkins
Ensuite, vous êtes invité à configurer l'URL Jenkins. Ce processus est ne pas va faire un enregistrement DNS ou de domaine et n'a aucun effet sur la façon dont vous accédez à Jenkins. Vous n'avez pas à vous soucier de l'URL de cette procédure pas à pas. Mais l'URL sera utilisée dans tous les webhooks et variables d'environnement créés par Jenkins.
S'il s'agit d'un système de production, vous pouvez envisager d'acheter un domaine et de donner à Jenkins un sous-domaine à utiliser. (Par exemple: jenkins.mydomain.com)
Une fois que vous cliquez sur sauver et terminer, vous êtes redirigé vers une page Jenkins vide comme celle-ci.
Installation de plug-ins
Maintenant que Jenkins est opérationnel, vous devriez en savoir quelque chose: hors de la boîte, Jenkins ne fait pas grand-chose. Pour tirer le meilleur parti de Jenkins, vous devez installer des plug-ins.
Les plugins sont des packages open source qui interagissent avec d'autres programmes et services au sein de Jenkins.
Vous pouvez trouver des plugins pour tout, des systèmes de contrôle de version supplémentaires aux fournisseurs de cloud en passant par Chuck Norris.
PowerShell fait partie des exigences de cet article. En tant que tel, vous devez installer le plugin PowerShell et peut-être aussi celui de Chuck Norris.
Chuck Norris ne casse pas les builds, les builds indignes s’arrêtent en sa présence.
Cliquer sur Gérer Jenkins dans le menu de gauche, puis trouvez l'icône de la pièce du puzzle qui se lit Gérer les plugins. Ensuite, sous le Disponible onglet, vous pouvez parcourir et voir ce qui est disponible.
Cliquez sur la case à côté du plugin PowerShell et cliquez sur Installer sans redémarrer.
Configuration d'un référentiel Git
La prochaine chose que nous devons faire est de configurer notre référentiel git. Jenkins interroge ce référentiel pour les changements pour exécuter notre build. Obtenez l'URL du référentiel et clonez-la, mais enregistrez l'URL car vous en avez besoin à l'étape suivante.
De retour à Jenkins, sélectionnez Nouvel article dans le coin supérieur gauche, puis cliquez sur Projet Freestyle et lui donner un nom. Un bon nom doit être unique à Jenkins, mais décrit également rapidement quelle tâche il fait sur quel projet.
La page suivante vers laquelle vous accédez est le Configurer le projet page. Cela peut sembler écrasant, mais ne vous inquiétez pas pour le moment. Même en production, vous n'utiliserez pas la plupart d'entre elles, car si chacune de ces options a un cas d'utilisation pour quelqu'un, toutes ne conviendront pas à votre cas d'utilisation.
Lorsque vous faites défiler la page de configuration, notez les nombreuses options disponibles. Ci-dessous, vous trouverez chaque option et la valeur à fournir pour cette démonstration.
Gestion du code source
Cliquer sur Git, puis entrez l'URL de votre référentiel dans le URL du référentiel champ. Laissez le reste des paramètres par défaut. Cela va dire à Jenkins d'interroger ce référentiel pour toute modification sur la branche principale car c'est le paramètre par défaut.
Créer des déclencheurs
Sélectionner Sondage SCM, puis entrez * * * * *
dans le Programme champ. Il s'agit d'une minuterie cron qui interroge toutes les minutes les modifications apportées à ce référentiel.
Construire
Sous le Ajouter une étape de construction liste déroulante, sélectionnez Windows PowerShell et entrez Get-ChildItem $ENV:WORKSPACE
dans le Commander champ. Cette commande utilise une variable Jenkins intégrée (qui sera traitée plus en détail sous peu) pour imprimer une liste de fichiers à partir du référentiel que vous consultez.
(Facultatif) Actions après construction
Si vous avez installé le plugin Chuck Norris plus tôt, sélectionnez Activer Chuck Norris du Ajouter une étape post-construction liste déroulante pour ajouter l'effet visuel du plugin Chuck Norris à la tâche. Jenkins n'active pas réellement Chuck Norris, Jenkins cherche juste son approbation.
Exécution de la build
Toutes les générations Jenkins ont lieu dans un espace de travail, qui est un répertoire sur le serveur Jenkins. Le projet de test que vous avez défini ci-dessus clone le référentiel de l'URL git dans cet espace de travail, puis exécute les étapes de génération en tant que script .ps1.
Plus tôt lorsque vous avez entré $ENV:WORKSPACE
dans l'étape de construction, vous vous êtes peut-être demandé d'où venait cette variable. Jenkins fournit une variable d'environnement au moment de l'exécution de chaque travail, y compris $ENV:WORKSPACE
, qui pointe vers le chemin du référentiel cloné.
Maintenant que votre travail est configuré, il est temps de le tester. Vous pouvez l'exécuter de deux manières: soit poussez un nouveau commit dans le référentiel et attendez que Jenkins interroge la modification, soit appuyez sur la touche Construire maintenant sur le côté gauche de la page. Quelle que soit la méthode que vous choisissez, elle déclenche une nouvelle exécution de ce travail Jenkins, ce qui signifie que votre page d'accueil devrait maintenant ressembler à ceci:
Pour une dernière vérification de santé mentale pour vous assurer que notre travail s'est déroulé avec succès, cliquez sur le numéro de version sous le Historique de construction. Cette page vous montre quelques détails comme les changements qui ont déclenché la construction, quel est l'ID de validation git et quel utilisateur a poussé ces validations.
Pour encore plus de détails, cliquez sur Sortie console sur le côté gauche de l'écran et vous verrez chaque étape de ligne de commande que Jenkins a prise lors de l'exécution de la génération.
Parce que cette version comprenait également un Get-ChildItem
sur l'espace de travail Jenkins, la sortie de cette applet de commande au bas de la sortie de la console similaire à celle ci-dessous est affichée.
Résumé
Maintenant que vous savez comment configurer un serveur Jenkins, installer des plugins et exécuter un travail, vous devriez jeter un œil aux plugins Jenkins disponibles dans le Gérer les plug-ins page mentionnée plus haut. Tous ne répondront pas à vos besoins, mais ils répondent tous à certains besoins et méritent d'être connus.
Si vous avez GitHub Enterprise, vous pouvez connecter votre compte GitHub à Jenkins pour effectuer des tâches telles que des vérifications d'état avant de fusionner avec le maître, automatiser les déploiements à partir de la source et exécuter un pipeline CI contre toute nouvelle modification du code. S'amuser!