Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Dans les versions antérieures d’Azure Pipelines, le déploiement d’applications sur plusieurs serveurs nécessite une planification et une maintenance significatives. La communication à distance Windows PowerShell devait être activée manuellement, les ports spécifiques nécessaires à l’ouverture et les agents de déploiement devaient être installés sur chaque serveur. La gestion des déploiements de déploiement nécessite également une intervention manuelle. Ces défis ont été considérablement simplifiés avec l’introduction de groupes de déploiement.
Un groupe de déploiement installe un agent de déploiement sur chaque serveur cible du groupe et permet au pipeline de mise en production de déployer progressivement l’application sur ces serveurs. Vous pouvez créer plusieurs pipelines pour les déploiements de déploiement, ce qui permet la remise par phases des mises à jour d’application à différents groupes d’utilisateurs.
Note
Les groupes de déploiement sont utilisés dans les pipelines classiques. Si vous utilisez des pipelines YAML, consultez Environnements.
Prerequisites
| Produit | Exigences |
|---|---|
| Azure DevOps | - Une organisation Azure DevOps . - Un projet Azure DevOps . |
| Générateur de démonstration Azure DevOps |
-
Configurez le générateur de démonstration. - Créez un projet Azure DevOps et veillez à choisir le modèle DeploymentGroups (numéro 15 dans la liste). |
| Azure | - Un abonnement Azure. |
Configurer des ressources dans Azure
Cette section vous guide tout au long de la configuration de vos ressources Azure à l’aide d’un modèle ARM. Il provisionne six serveurs web de machine virtuelle avec IIS configuré, une machine virtuelle SQL Server (serveur de base de données), un équilibreur de charge Azure et toutes les connexions réseau nécessaires.
Sélectionnez le bouton
pour lancer le déploiement de vos ressources dans Azure.
Renseignez les informations requises, puis sélectionnez Vérifier + créer. Vous pouvez utiliser n’importe quelle combinaison autorisée de noms d’utilisateur et de mots de passe, car elles ne seront plus utilisées dans ce tutoriel. Le nom du préfixe Env est ajouté à tous les noms de ressources pour garantir l’unicité globale. Utilisez quelque chose de personnel ou aléatoire. Si vous rencontrez un conflit d’affectation de noms lors de la validation ou de la création, essayez de modifier cette valeur et de redéployer. L’approvisionnement prend généralement 10 à 15 minutes.
Une fois la validation terminée, sélectionnez Créer pour déployer vos ressources.
Une fois le déploiement terminé, accédez à votre groupe de ressources dans le portail Azure pour passer en revue les ressources générées. Sélectionnez la machine virtuelle du serveur de base de données avec sqlSrv dans son nom pour afficher ses détails.
Copiez le nom DNS comme vous en aurez besoin dans une étape ultérieure.
Créer un groupe de déploiement
Un groupe de déploiement est une collection de machines, chacune avec un agent de déploiement installé. Ces machines communiquent avec Azure Pipelines pour coordonner les déploiements d’applications.
Accédez au projet Azure DevOps que vous avez créé précédemment à l’aide du générateur de démonstration.
Sélectionnez Groupesde déploiement>.
Sélectionnez Ajouter un groupe de déploiement.
Entrez Release en tant que nom de groupe de déploiement, puis sélectionnez Créer. Un script d’inscription sera généré. Vous pouvez utiliser ce script pour inscrire des serveurs cibles et installer l’agent de déploiement manuellement. Toutefois, dans ce tutoriel, les serveurs cibles sont automatiquement inscrits dans le cadre du pipeline de mise en production.
Créer un jeton d’accès personnel
Dans votre projet Azure DevOps, sélectionnez l’icône Paramètres utilisateur , puis sélectionnez Jetons d’accès personnels.
Sélectionnez Nouveau jeton, entrez un nom pour votre PAT, puis choisissez une date d’expiration.
Sélectionnez Personnalisé défini pour les étendues, sélectionnez Afficher toutes les étendues, puis vérifiez les étendues suivantes :
- Projet et équipe ->Lecture et écriture.
- Pools d’agents ->Lecture et gestion
- Groupes de déploiement ->Lecture et gestion.
Sélectionnez Créer lorsque vous avez terminé, puis copiez votre PAT comme vous en aurez besoin dans la section suivante.
Configurer le pipeline de mise en production
Le modèle de pipeline de mise en production classique inclut un travail d’agent, la phase Agent, qui exécute des tâches sur un agent dans un pool d’agents. Il inclut également deux travaux de groupe de déploiement : la phase de groupe de déploiement et la phase de déploiement IIS. Les travaux de groupe de déploiement exécutent des tâches sur des machines définies dans un groupe de déploiement. Suivez les étapes ci-dessous pour configurer chaque travail.
Configurer le travail de l’agent
Accédez à votre projet Azure DevOps et sélectionnez Pipelines Releases>.
Sélectionnez la définition de la version des groupes de déploiement , puis sélectionnez Modifier.
Sélectionnez l’onglet Tâches pour afficher les tâches de déploiement dans votre pipeline.
Sélectionnez l’étape de phase de l’agent , puis choisissez le pool Azure Pipelines et la spécification windows-latest .
Sélectionnez la tâche déploiement du groupe de ressources Azure, sélectionnez l’abonnement Azure que vous avez utilisé précédemment pour créer vos ressources, puis sélectionnez Autoriser pour autoriser la connexion. Une fois autorisé, sélectionnez le groupe de ressources que vous avez créé pour ce didacticiel.
Cette tâche s’exécute sur des machines virtuelles dans Azure et doit être en mesure de se connecter au pipeline pour remplir les exigences du groupe de déploiement. Pour sécuriser la connexion, une connexion de service doit être configurée à l’aide du jeton d’accès personnel (PAT) que vous avez créé précédemment. Faites défiler vers le bas dans la même tâche, puis sélectionnez Nouveau sous connexion de service Azure Pipelines.
Dans le panneau Nouvelle connexion de service , entrez l’URL de connexion de votre organisation
https://dev.azure.com/organizationNameAzure DevOps. Collez le jeton d’accès personnel que vous avez créé précédemment, spécifiez un nom de connexion de service et cochez la case Accorder l’autorisation d’accès à tous les pipelines . Sélectionnez Vérifier et enregistrer lorsque vous avez terminé.
Faites défiler vers le bas dans la tâche de déploiement du groupe de ressources Azure , puis sélectionnez dans les menus déroulants votre projet d’équipe et le groupe de déploiement que vous avez créé précédemment.
Configurer les travaux du groupe de déploiement
Dans la définition de mise en production des groupes de déploiement , sélectionnez le travail de phase de groupe de déploiement . Ce travail exécute des tâches sur les machines définies dans le groupe de déploiement. Ce travail utilise la balise SQL-Svr-DB pour effectuer un déploiement sur un sous-ensemble de cibles dans le groupe de déploiement. Dans la liste déroulante Groupe de déploiement , sélectionnez le groupe de déploiement Release que vous avez créé précédemment.
Sélectionnez le travail de phase de déploiement IIS . Ce travail utilise la balise WebSrv pour déployer l’application web sur un sous-ensemble des serveurs web. Choisissez le groupe de déploiement que vous avez créé précédemment dans la liste déroulante.
Les tâches Disconnect Azure Network Load Balancer et Connect Azure Network Load Balancer sont déconseillées. Vous pouvez les désactiver pour l’instant en cliquant avec le bouton droit sur la tâche et en sélectionnant Désactiver la ou les tâches sélectionnées.
Les tâches iis Web App Manage et IIS Web App Deploy sont préremplies et ne nécessitent aucune modification.
Sélectionnez l’onglet Variables dans le coin supérieur gauche, sélectionnez Variables de pipeline et fournissez les valeurs suivantes. Remplacez l’espace réservé dans la variable DefaultConnectionString par le nom DNS du serveur SQL que vous avez copié précédemment :
Nom de la variable Valeur de variable DatabaseName PartsUnlimited-Dev DBPassword xxxxxxxx DBUserName xxxxxxxx DefaultConnectionString Source de données=[YOUR_DNS_NAME] ; Initial Catalog=PartsUnlimited-Dev ; ID utilisateur=xxxxxxxx ;Password=xxxxxxxx ;MultipleActiveResultSets=False ; Délai d’expiration de connexion=30 ; Nom_serveur localhost Sélectionnez Enregistrer, ajoutez un commentaire si vous le souhaitez, puis sélectionnez Ok.
Conseil / Astuce
Si vous recevez une erreur indiquant que la variable DefaultConnectionString doit être enregistrée en tant que secret, sélectionnez l’icône de cadenas en regard de sa valeur pour la protéger.
Créer une version et déployer une application
Maintenant que la définition de mise en production est configurée et enregistrée, vous pouvez continuer à créer une version pour déployer votre application web sur Azure. Toutefois, avant de démarrer la version, vous devez vous assurer que le pipeline de build s’est exécuté au moins une fois. Cela génère l’artefact de pipeline requis pour le déploiement. Si vous essayez d’exécuter le pipeline de mise en production avant le pipeline de build, la section Artefacts du panneau de mise en production est vide. Suivez les étapes ci-dessous pour exécuter votre pipeline, générer un artefact de pipeline, puis créer une nouvelle version :
Dans votre projet Azure DevOps, sélectionnez Pipeline, puis sélectionnez le pipeline de build Groupes de déploiement .
Sélectionnez Exécuter le pipeline. Dans le volet d’exécution du pipeline, sélectionnez la spécification de votre agent, puis sélectionnez Exécuter.
Une fois le pipeline terminé, il génère un artefact de pipeline. Vous pouvez l’afficher à partir de la fenêtre récapitulative du pipeline :
Accédez maintenant à Pipelines>Release, sélectionnez votre définition de mise en production, puis sélectionnez Créer une version pour démarrer le pipeline de déploiement.
Sélectionnez Créer lorsque vous avez terminé, puis sélectionnez l’exécution du pipeline pour ouvrir la vue d’ensemble. Vous devez voir votre pipeline en cours. Cliquez sur l’étape pour afficher les journaux de déploiement détaillés.
Dans la fenêtre récapitulative, vous pouvez voir l’état de chaque phase du déploiement :
Résolution des problèmes
- Impossible de se connecter à un serveur maître ou cible ou une connexion a été établie avec le serveur, mais une erreur s’est produite lors du processus de connexion.
Si vous rencontrez l’une ou l’autre de ces erreurs lors de l’exécution de la tâche de déploiement Sql Dacpac sur un groupe d’ordinateurs, procédez comme suit :
- Vérifiez votre base de données :
Assurez-vous que la base de données a été créée correctement pendant le déploiement de la ressource. Vous pouvez confirmer cela à l’aide d’Azure CLI ou de sqlcmd :
sqlcmd -S <server-name> -U <username> -P <password> -Q "SELECT name FROM sys.databases"
Si votre base de données n’est pas présente dans la liste, vous pouvez en créer une à l’aide de la commande suivante :
sqlcmd -S <server-name> -U <username> -P <password> -Q "CREATE DATABASE [YourDatabaseName]"
- Vérifiez votre authentification SQL Server :
Vérifiez que l’authentification SQL Server est activée, votre serveur SQL Doit être configuré pour autoriser l’authentification SQL et Windows (mode mixte). Pour activer ceci :
a. Se connecter à l’aide de SSMS ou sqlcmd
b. Exécutez la requête suivante :
EXEC xp_instance_regwrite
N'HKEY_LOCAL_MACHINE',
N'Software\\Microsoft\\MSSQLServer\\MSSQLServer',
N'LoginMode',
REG_DWORD,
2;
c. Redémarrez le service SQL Server pour que la modification prenne effet :
net stop MSSQLSERVER
net start MSSQLSERVER
- Certains de mes agents sont hors connexion même si l’agent s’exécute sur ma machine virtuelle
Si un ou plusieurs de vos agents s’affichent en mode hors connexion, vous pouvez essayer quelques choses. Tout d’abord, connectez-vous à la machine virtuelle où l’agent est en cours d’exécution et exécutez la commande suivante pour vérifier si votre machine virtuelle résout le même ensemble d’adresses IP.
nslookup dev.azure.com
Si toutes les machines virtuelles sont résolues sur le même ensemble d’adresses IP, vérifiez que l’équilibreur de charge est configuré avec la règle de trafic sortant correcte. Vous pouvez ajouter un pool principal à votre équilibreur de charge dans Azure, ajouter les cartes réseau de vos machines virtuelles au pool principal, puis l’associer à la règle de trafic sortant de votre équilibreur de charge. Pour ce faire :
Accédez à Azure et recherchez votre équilibreur de charge.
Sélectionnez des pools principaux, choisissez votre pool existant ou créez-en un, puis ajoutez vos serveurs web sous configurations IP.
Accédez aux règles d’équilibrage de charge, sélectionnez votre règle d’équilibrage de charge et choisissez votre pool principal dans la liste déroulante du pool principal .
Nettoyer les ressources
Ce tutoriel a créé un projet Azure DevOps et déployé des ressources dans Azure. Si vous n’en avez plus besoin, procédez comme suit pour nettoyer :
Supprimez le projet Azure DevOps : accédez à lavue d’ensemble de> vos paramètres> de projetSupprimer.
Supprimez le groupe de ressources Azure Toutes les ressources Azure créées pendant ce tutoriel ont été placées dans le même groupe de ressources. La suppression du groupe de ressources supprime toutes les ressources associées. Pour ce faire, utilisez le portail Azure ou l’interface CLI :
Azure CLI
az group delete --name <RESOURCE_GROUP_NAME> --yes --no-waitportail Azure
Accédez aux > du portail Azure.
Sélectionnez le groupe de ressources que vous avez utilisé dans le didacticiel.
Sélectionnez Supprimer le groupe de ressources, confirmez le nom, puis sélectionnez Supprimer.