Créez un travail de construction Jenkins pour automatiser les déploiements Web

La construction et le déploiement d’une application peuvent être des tâches difficiles. Pourquoi ne pas utiliser une tâche de construction Jenkins pour automatiser l’ensemble du processus ? Vous vous concentrez sur la construction pendant que Jenkins gère le déploiement du code.

Dans ce tutoriel, vous apprendrez comment automatiser le déploiement de votre code en utilisant Jenkins pour gagner du temps, vous permettant de vous concentrer sur d’autres tâches simultanément.

Prêt ? Il est temps de plonger !

Prérequis

Ce tutoriel propose des démonstrations pratiques. Si vous souhaitez suivre, assurez-vous d’avoir ce qui suit :

Bien que le dépôt illustré dans les captures d’écran ci-dessous diffère légèrement de celui lié ci-dessus, une fois cloné, vous utiliserez également une URL de dépôt différente.

Création d’un travail de construction Jenkins

Jenkins est un serveur d’automatisation open-source qui aide à automatiser le cycle de vie du développement logiciel. Ce cycle de vie comprend la construction, le test et le déploiement, ce qui facilite l’intégration continue et la livraison continue.

Dans cette démo, vous verrez comment créer un travail de construction Jenkins. Un travail de construction est généralement une configuration pour exécuter automatiquement des tâches de construction/emballage de logiciels.

  1. Ouvrez votre navigateur préféré, accédez à http://localhost:8080/ et connectez-vous à votre tableau de bord Jenkins. Le port 8080 est le port par défaut pour accéder au tableau de bord Jenkins.

2. Sur votre Tableau de bord Jenkins, cliquez sur le bouton Nouvel élément dans le panneau de gauche pour initialiser la création d’un travail de construction. Cela redirige le navigateur vers une nouvelle page de travail.

Creating a new Jenkins Job

3. Ensuite, saisissez un nom de projet que vous préférez pour le travail de construction dans le champ de saisie affiché ci-dessous. Pour cet exemple, le nom du projet est webDeploy.

Sélectionnez l’option Projet Freestyle pour activer la création d’emplois, les actions de post-build de script et configurer les déclencheurs de build du projet, puis cliquez sur OK. Vous serez redirigé vers la page de configuration du travail que vous verrez à l’étape suivante.

Creating a Jenkins project

4. Cliquez sur l’onglet Général, et cochez la case Projet GitHub pour lier un gestionnaire de code source afin que Jenkins sache d’où extraire votre code. Cette démo utilise Git comme gestionnaire de code source pour le projet d’exemple hébergé sur GitHub que vous avez précédemment forké. Collez l’URL du référentiel GitHub depuis votre compte GitHub dans le champ URL du projet ci-dessous.

Linking Jenkins to a source code manager

5. Enfin, cliquez sur l’onglet Gestion du code source, puis sélectionnez Git, qui est votre gestionnaire de code source.

Copiez et collez cette URL du référentiel GitHub (https://github.com/Claradev32/webDeploy.git) dans le champ d’entrée. Cliquez sur le bouton Enregistrer pour sauvegarder vos configurations actuelles.

Linking Jenkins to Source Code Manager (Git)

Création de références pour un projet Jenkins

Vous préférez peut-être garder votre référentiel privé, ce qui est courant pour les projets clients. Si c’est le cas, vous devrez créer des références pour autoriser Jenkins à cloner votre projet depuis GitHub.

Pour créer des références pour votre projet Jenkins, vous devez d’abord générer et ajouter une clé SSH à votre compte GitHub :

1. Ouvrez votre terminal Ubuntu et exécutez la commande ci-dessous pour générer une clé SSH avec ed25519 comme type de clé. Remplacez [email protected] par votre adresse e-mail GitHub pour l’ajouter en tant que commentaire à la clé SSH que vous allez générer.

ssh-keygen -t ed25519 -C "[email protected]"

2. Enregistrez votre clé SSH publique avec la commande suivante :

  • Spécifiez un emplacement pour sauvegarder la clé SSH et appuyez sur Entrée. Si vous ne le faites pas, la commande enregistre la clé SSH dans un emplacement par défaut, comme indiqué ci-dessous.
  • Entrez une passphrase sécurisée pour la clé SSH, appuyez sur Entrée pour confirmer la passphrase, et vous verrez la sortie de votre clé SSH publique.
  • Prenez note de l’emplacement de votre clé SSH générée car vous allez l’ajouter à votre compte GitHub dans les étapes suivantes.
Adding a Passphrase to the SSH key

3. Connectez-vous à GitHub sur votre navigateur web et accédez à la page de vos paramètres de compte.

4. Cliquez sur le lien Clés SSH et GPG dans le panneau de gauche, puis cliquez sur Nouvelle clé SSH, comme indiqué ci-dessous, pour configurer votre nouvelle clé SSH.

Creating a Github SSH key

5. Enfin, saisissez le titre de votre choix pour la clé SSH. Le titre est uniquement à des fins de documentation interne. Collez votre clé SSH, à partir du fichier précédemment enregistré, dans le champ de saisie Clé, et cliquez sur Ajouter une clé SSH pour enregistrer la clé.

Remarquez qu’il s’agit de votre clé publique et non de votre clé privée !

Saving New SSH Key

Ajout de la clé privée SSH aux identifiants Jenkins

Maintenant que vous avez créé votre paire de clés SSH pour l’utiliser comme identifiant Jenkins, vous devez également ajouter votre clé privée SSH à vos identifiants Jenkins pour autoriser l’accès de Jenkins à votre dépôt GitHub. Mais d’abord, prenez note de l’URL SSH de votre dépôt GitHub.

1. Accédez à la page de votre dépôt GitHub, cliquez sur Code → SSH, et cliquez sur l’icône de copie ci-dessous pour copier l’URL SSH dans le presse-papiers.

Noting Down GitHub SSH URL

2. Ensuite, accédez à votre tableau de bord Jenkins, puis cliquez sur Gérer Jenkins pour accéder à la page des paramètres de votre projet.

Accessing Jenkins Settings

3. Faites défiler vers le bas, puis cliquez sur l’option Gérer les identifiants sous la section Sécurité pour voir la liste de vos identifiants Jenkins.

Accessing Jenkins Credentials

4. Cliquez sur Jenkins sur la page Identifiants ci-dessous pour accéder à la page « Système » où vous pouvez ajouter de nouveaux identifiants.

Accessing System Page to Add Credentials

5. Maintenant, sur la page Système, survolez la section Identifiants globaux (non restreints) pour afficher le menu déroulant et cliquez sur l’icône de flèche vers le bas.

Cliquez sur Ajouter des identifiants dans le menu déroulant. La page redirige vers un formulaire où vous configurerez les nouveaux identifiants comme indiqué dans l’étape suivante.

System Page

6. Sélectionnez Nom d’utilisateur SSH avec clé privée dans le premier champ de saisie et saisissez un nom d’utilisateur de projet dans le champ Nom d’utilisateur. Pour cet exemple, le nom d’utilisateur est CI/CD.

Dans ce cas, le nom d’utilisateur est uniquement une documentation interne et n’est pas utilisé à des fins d’authentification.

Setting a Username for Jenkins Global Credentials

7. Exécutez la commande ci-dessous pour afficher votre clé privée SSH, en changeant l’emplacement vers lequel votre clé est enregistrée, comme indiqué ci-dessous (la clé ci-dessous est située dans le répertoire principal). Notez votre clé privée SSH, car vous la ajouterez à vos informations d’identification Jenkins à l’étape suivante.

cat ~/.ssh/id_ed25519
Viewing Secret Key

8. Une fois que vous avez noté votre clé privée SSH, revenez à la page Credentials globales (non restreintes).

Entrez la phrase secrète que vous avez définie dans la section « Création d’informations d’identification pour un projet Jenkins » (étape deux) dans le champ de saisie Passphrase, et cliquez sur OK. Cela autorise l’accès de Jenkins à votre référentiel GitHub.

Si vous n’avez pas inclus de mot de passe lors de la création de la clé SSH, cliquez sur Entrer directement et cliquez sur le bouton Add. Entrez votre clé privée SSH dans le champ de saisie Key, comme indiqué ci-dessous, et appuyez sur le bouton OK pour enregistrer les informations d’identification.

Adding GitHub SSH key to Jenkins Credentials

8. Retournez sur votre tableau de bord Jenkins, survolez votre souris sur votre projet et cliquez sur l’icône de flèche vers le bas, puis choisissez Configure, comme indiqué ci-dessous. La page redirige vers la page de configuration de votre projet.

Configuring Jenkins Project

10. Enfin, sélectionnez le nom d’utilisateur des identifiants dans le champ déroulant (étape six de la section « Ajout de la clé secrète aux identifiants Jenkins »). Jenkins applique par défaut le principe CID pour assurer l’intégration et le déploiement continus de votre projet.

Connecting Jenkins to GitHub

Configuration des déclencheurs de construction et des actions post-construction

Vous avez maintenant créé avec succès le squelette d’un travail de construction. Mais si vous apportez régulièrement des modifications à votre projet, devrez-vous les déployer manuellement à chaque fois ? Pourquoi ne pas configurer des déclencheurs de construction ? Les déclencheurs de construction redéploient automatiquement les modifications apportées à votre projet et poussées sur GitHub.

1. Sur la page de configuration de vos projets, cliquez sur l’onglet Déclencheurs de construction, et cochez l’option Déclencheur de crochet GitHub pour le sondage GITScm. Cette option vous permet de redéployer automatiquement les modifications apportées à votre projet.

Configuring build triggers

2. Cliquez sur l’onglet Construction, cliquez sur Ajouter une étape de construction, et sélectionnez Exécuter un script shell pour créer un script qui s’exécutera chaque fois que Jenkins télécharge une nouvelle version de votre code.

Creating a Build Script

Le script shell que vous créez dépend de votre environnement de développement. Si vous êtes sous Windows, Windows exécutera le script ; il en va de même pour les autres systèmes d’exploitation.

3. Tapez les commandes shell ci-dessous, et cliquez sur Enregistrer pour sauvegarder le script de construction. Après avoir enregistré les modifications, la page est redirigée vers le tableau de bord de votre projet.

Les commandes ci-dessous récupèrent (pull) votre code depuis l’emplacement distant de votre code source (origin master) et avec NodeJS NPM install (npm install) les dépendances nécessaires pour exécuter votre projet. Les commandes s’exécutent à chaque fois que vous faites une demande de push à votre gestionnaire de code source.

Ce projet particulier utilise NodeJS pour les dépendances, mais votre projet particulier peut être différent.

git pull origin master
npm install
Adding Commands to the Automated Build Script

4. Maintenant, sur le tableau de bord de votre projet, cliquez sur Build Now pour lancer la construction.

Running the Build

5. Faites défiler vers le bas jusqu’à l’historique de construction pour voir l’état de la construction. Si la construction a réussi, vous verrez une sortie similaire à la capture d’écran ci-dessous.

Viewing Successful Build

Si la construction échoue, vous verrez la sortie indiquée ci-dessous.

Failed build history

6. Ensuite, faites défiler vers le haut et cliquez sur Configurer pour configurer les actions post-construction du projet.

Configuring Project’s Post Build Actions

7. Cliquez sur l’onglet Actions post-construction, puis cliquez sur Ajouter une action post-construction et choisissez Éditeur Git. La page développe la section des paramètres Éditeur Git (étape suivante).

Accessing Git Publisher Post-Build Action

8. Enfin, activez l’option Push uniquement si la construction réussit et cliquez sur le bouton Enregistrer pour sauvegarder les modifications. L’activation de cette option indique à Jenkins de déployer le code uniquement lorsqu’une exécution de construction réussit.

Adding Post-Build Actions

Conclusion

Dans ce tutoriel, vous avez suivi le processus de connexion de Jenkins à votre système de gestion de code source. Vous avez également créé un script de build qui s’exécute automatiquement lorsque Jenkins télécharge une nouvelle version de votre code et configuré des déclencheurs de build pour automatiser les déploiements web.

Maintenant, pourquoi ne pas vous faire gagner du temps en automatisant le déploiement de votre application avec un job de build Jenkins ?

Source:
https://adamtheautomator.com/jenkins-build-job/