Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
L’intégration continue (CI) et le déploiement continu (CD) forment un pipeline par lequel vous pouvez générer, publier et déployer votre code. Azure DevOps Services fournit un ensemble complet et complet d’outils d’automatisation CI/CD pour le déploiement sur Azure. Jenkins est un outil basé sur un serveur CI/CD tiers populaire qui fournit également l’automatisation CI/CD. Vous pouvez utiliser Azure DevOps Services et Jenkins ensemble pour personnaliser la façon dont vous fournissez votre application ou service cloud.
Dans ce tutoriel, vous utilisez Jenkins pour créer une application web Node.js. Vous utilisez ensuite Azure DevOps pour le déployer
vers un groupe de déploiement qui contient des machines virtuelles Linux. Vous apprenez à :
- Obtenez l’exemple d’application.
- Configurez les plug-ins Jenkins.
- Configurez un projet Jenkins Freestyle pour Node.js.
- Configurez Jenkins pour l’intégration d’Azure DevOps Services.
- Créez un point de terminaison de service Jenkins.
- Créez un groupe de déploiement pour les machines virtuelles Azure.
- Créez un pipeline de livraison Azure Pipelines.
- Exécutez des déploiements manuels et déclenchés par CI.
Prerequisites
Abonnement Azure : si vous n’avez pas d’abonnement Azure, créez un compte Azure gratuit avant de commencer.
Serveur Jenkins : si vous n’avez pas installé de serveur Jenkins, créez un serveur Jenkins sur Azure.
Note
Pour plus d’informations, consultez Se connecter à Azure DevOps Services.
Vous avez besoin d’une machine virtuelle Linux pour une cible de déploiement. Pour plus d’informations, consultez Créer et gérer des machines virtuelles Linux avec Azure CLI.
Ouvrez le port de trafic entrant 80 pour votre machine virtuelle. Pour plus d’informations, consultez Créer des groupes de sécurité réseau à l’aide du portail Azure.
Obtenir l’exemple d’application
Vous avez besoin d’une application pour déployer, stockée dans un référentiel Git. Pour ce tutoriel, nous vous recommandons d’utiliser cet exemple d’application disponible à partir de GitHub. Ce tutoriel contient un exemple de script utilisé pour installer Node.js et une application. Si vous souhaitez utiliser votre propre référentiel, vous devez configurer un exemple similaire.
Créez une duplication de cette application et notez l’emplacement (URL) à utiliser dans les étapes ultérieures de ce didacticiel. Pour plus d’informations, consultez l’article Créer un fork d'un dépôt.
Note
L’application a été créée via Yeoman. Il utilise Express, Bower et Grunt. Et il a quelques packages npm en tant que dépendances. L’exemple contient également un script qui configure Nginx et déploie l’application. Elle est exécutée sur les machines virtuelles. Plus précisément, le script :
- Installe Node, Nginx et PM2.
- Configure Nginx et PM2.
- Démarre l’application Node.
Configurer des plug-ins Jenkins
Tout d’abord, vous devez configurer deux plug-ins Jenkins : NodeJS et VS Team Services Continuous Deployment.
- Ouvrez votre compte Jenkins, puis sélectionnez Gérer Jenkins.
- Dans la page Gérer Jenkins , sélectionnez Gérer les plug-ins.
- Filtrez la liste pour localiser le plug-in NodeJS , puis sélectionnez l’option Installer sans redémarrage .
- Filtrez la liste pour rechercher le plug-in déploiement continu VS Team Services et sélectionnez l’option Installer sans redémarrage .
- Revenez au tableau de bord Jenkins et sélectionnez Gérer Jenkins.
- Sélectionnez Configuration globale de l’outil. Recherchez NodeJS et sélectionnez installations NodeJS.
- Sélectionnez l’option Installer automatiquement , puis entrez une valeur Nom .
- Cliquez sur Enregistrer.
Configurer un projet Jenkins Freestyle pour Node.js
- Sélectionnez Nouvel élément. Entrez un nom d’élément.
- Sélectionnez Le projet Freestyle. Cliquez sur OK.
- Sous l’onglet Gestion du code source , sélectionnez Git et entrez les détails du référentiel et de la branche qui contiennent le code de votre application.
- Sous l’onglet Déclencheurs de build , sélectionnez Poll SCM et entrez la planification
H/03 * * * *pour interroger le référentiel Git pour les modifications toutes les trois minutes. - Sous l'onglet Environnement de build, sélectionnez Indiquer le chemin du dossier bin/ pour Node & npm et sélectionnez la valeur de Installation NodeJS. Laissez le fichier npmrc défini pour utiliser la valeur par défaut du système.
- Sous l’onglet Build , sélectionnez Exécuter l’interpréteur de commandes et entrez la commande
npm installpour vous assurer que toutes les dépendances sont mises à jour.
Configurer Jenkins pour l’intégration d’Azure DevOps Services
Note
Vérifiez que le jeton d’accès personnel (PAT) que vous utilisez pour les étapes suivantes contient l’autorisation Release (lecture, écriture, exécution et gestion) dans Azure DevOps Services.
Créez un PAT dans votre organisation Azure DevOps Services si vous n’en avez pas déjà un. Jenkins requiert ces informations pour accéder à votre organisation Azure DevOps Services. Veillez à stocker les informations de jeton pour les prochaines étapes de cette section.
Pour savoir comment générer un jeton, lisez Comment créer un jeton d’accès personnel pour Azure DevOps Services ?.
Sous l’onglet Actions post-build , sélectionnez Ajouter une action post-build. Sélectionnez Archiver les artefacts.
Pour les fichiers à archiver, entrez
**/*pour inclure tous les fichiers.Pour créer une autre action, sélectionnez Ajouter une action post-build.
Sélectionnez La version du déclencheur dans TFS/Team Services. Entrez l’URI de votre organisation Azure DevOps Services, par exemple https://{nom_organisation}.visualstudio.com.
Entrez le nom du projet .
Choisissez un nom pour le pipeline de mise en production. (Vous créez ce pipeline de mise en production ultérieurement dans Azure DevOps Services.)
Choisissez les informations d’identification pour vous connecter à votre environnement Azure DevOps Services ou Azure DevOps Server :
- Laissez le nom d’utilisateur vide si vous utilisez Azure DevOps Services.
- Entrez un nom d’utilisateur et un mot de passe si vous utilisez une version locale d’Azure DevOps Server.
Enregistrez le projet Jenkins.
Créer un point de terminaison de service Jenkins
Un point de terminaison de service permet à Azure DevOps Services de se connecter à Jenkins.
- Ouvrez la page Services dans Azure DevOps Services, ouvrez la liste Nouveau point de terminaison de service , puis sélectionnez Jenkins.
- Attribuez un nom à cette connexion.
- Entrez l’URL de votre serveur Jenkins, puis sélectionnez l’option Accepter les certificats SSL non approuvés . Un exemple d’URL est http://{YourJenkinsURL}.westcentralus.cloudapp.azure.com.
- Entrez le nom d’utilisateur et le mot de passe de votre compte Jenkins.
- Sélectionnez Vérifier la connexion pour vérifier que les informations sont correctes.
- Sélectionnez OK pour créer le point de terminaison de service.
Créer un groupe de déploiement pour les machines virtuelles Azure
Vous avez besoin d’un groupe de déploiement pour inscrire l’agent Azure DevOps Services afin que le pipeline de mise en production puisse être déployé sur votre machine virtuelle. Les groupes de déploiement facilitent la définition de groupes logiques de machines cibles pour le déploiement et l’installation de l’agent requis sur chaque ordinateur.
Note
Dans la procédure suivante, veillez à installer les prérequis et à ne pas exécuter le script avec des privilèges sudo.
- Ouvrez l’onglet Versions du hub Build &Release , ouvrez les groupes de déploiement, puis sélectionnez + Nouveau.
- Entrez un nom pour le groupe de déploiement et une description facultative. Sélectionnez ensuite Créer.
- Choisissez le système d’exploitation de votre machine virtuelle cible de déploiement. Par exemple, sélectionnez Ubuntu 16.04+.
- Sélectionnez Utiliser un jeton d’accès personnel dans le script pour l’authentification.
- Sélectionnez le lien Prérequis système . Installez les conditions préalables pour votre système d’exploitation.
- Cliquez sur Copier le script dans le Presse-papiers pour le copier.
- Connectez-vous à votre machine virtuelle cible de déploiement et exécutez le script. N’exécutez pas le script avec des privilèges sudo.
- Une fois l’installation terminée, vous êtes invité à indiquer des balises de groupe de déploiement. Acceptez les valeurs par défaut.
- Dans Azure DevOps Services, recherchez votre machine virtuelle nouvellement inscrite dans Les cibles sous Groupes de déploiement.
Créer un pipeline de déploiement Azure Pipelines
Un pipeline de mise en production spécifie le processus que Azure Pipelines utilise pour déployer l’application. Dans cet exemple, vous exécutez un script shell.
Pour créer le pipeline de mise en production dans Azure Pipelines :
- Ouvrez l’onglet Versions du hub Build &Release , puis sélectionnez Créer un pipeline de mise en production.
- Sélectionnez le modèle vide en choisissant de commencer par un processus vide.
- Dans la section Artefacts , sélectionnez + Ajouter un artefact et choisissez Jenkins pour le type de source. Sélectionnez votre connexion de point de terminaison de service Jenkins. Sélectionnez ensuite le travail source Jenkins, puis sélectionnez Ajouter.
- Sélectionnez le menu déroulant à côté de L’environnement 1. Sélectionnez Ajouter une phase de groupe de déploiement.
- Choisissez votre groupe de déploiement.
- Sélectionnez cette option + pour ajouter une tâche à la phase de groupe de déploiement.
- Sélectionnez la tâche de script Shell , puis sélectionnez Ajouter. La tâche de script Shell fournit la configuration d’un script à exécuter sur chaque serveur afin d’installer Node.js et de démarrer l’application.
- Pour le chemin de script, entrez $(System.DefaultWorkingDirectory)/Fabrikam-Node/deployscript.sh.
- Sélectionnez Avancé, puis activez Spécifier le répertoire de travail.
- Pour le répertoire de travail, entrez $(System.DefaultWorkingDirectory)/Fabrikam-Node.
- Modifiez le nom du pipeline de mise en production sur le nom que vous avez spécifié sous l’onglet Actions post-build de la build dans Jenkins. Jenkins a besoin de ce nom pour pouvoir déclencher une nouvelle version lorsque les artefacts sources sont mis à jour.
- Sélectionnez Enregistrer et sélectionnez OK pour enregistrer le pipeline de mise en production.
Exécuter des déploiements manuels et déclenchés par CI
- Sélectionnez + Mise en production , puis sélectionnez Créer une mise en production.
- Sélectionnez la build que vous avez terminée dans la liste déroulante mise en surbrillance, puis sélectionnez File d’attente.
- Choisissez le lien de mise en production dans le message contextuel. Par exemple : « Release Release-1 a été créé ».
- Ouvrez l’onglet Journaux pour suivre la sortie de la console de déploiement.
- Dans votre navigateur, ouvrez l’URL de l’un des serveurs que vous avez ajoutés à votre groupe de déploiement. Par exemple, entrez http://{your-server-ip-address}.
- Accédez au référentiel Git source et modifiez le contenu du titre h1 dans l’application de fichier/views/index.jade avec un texte modifié.
- Validez votre modification.
- Après quelques minutes, vous verrez une nouvelle version créée sur la page Versions d’Azure DevOps. Ouvrez la version pour voir le déploiement en cours. Félicitations!
Résolution des problèmes du plug-in Jenkins
Si vous rencontrez des bogues avec les plug-ins Jenkins, créez un problème dans jenkins JIRA pour le composant spécifique.
Étapes suivantes
Dans ce tutoriel, vous avez automatisé le déploiement d’une application sur Azure à l’aide de Jenkins pour générer et Azure DevOps Services pour la version. Vous avez appris à :
- Générez votre application dans Jenkins.
- Configurez Jenkins pour l’intégration d’Azure DevOps Services.
- Créez un groupe de déploiement pour les machines virtuelles Azure.
- Créez un pipeline Azure qui configure les machines virtuelles et déploie l’application.
Pour en savoir plus sur l’utilisation d’Azure Pipelines pour les étapes de génération et de mise en production, reportez-vous à ce sujet.
Pour en savoir plus sur la création d’un pipeline CI/CD basé sur YAML à déployer sur des machines virtuelles, passez au didacticiel suivant.