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
Cet article explique comment créer et cibler des environnements Azure Pipelines. Un environnement est un groupe de ressources que vous pouvez cibler avec des déploiements à partir d’un pipeline.
Un environnement représente une cible logique où votre pipeline déploie des logiciels. Les noms d’environnement courants incluent Dev, Test, QA, Staging et Production.
Remarque
Les environnements Azure DevOps ne sont pas disponibles dans les pipelines Classiques. Pour les pipelines classiques, les groupes de déploiement fournissent des fonctionnalités similaires.
Les environnements offrent les avantages suivants :
Historique du déploiement. Le nom et les détails d'exécution du pipeline sont enregistrés pour les déploiements dans un environnement et ses ressources. Dans le contexte de plusieurs pipelines ciblant le même environnement ou ressource, vous pouvez utiliser l’historique de déploiement d’un environnement pour identifier la source des modifications.
Traçabilité des validations et des éléments de travail. Vous pouvez afficher les travaux au sein de l’exécution du pipeline qui ciblent un environnement. Vous pouvez également afficher les validations et les éléments de travail qui ont été récemment déployés dans cet environnement. La traçabilité vous permet également de suivre si un élément de travail de modification de code ou de fonctionnalité/correctif de bogue a atteint un environnement.
Intégrité des ressources de diagnostic. Vous pouvez vérifier si l’application fonctionne à son état souhaité.
Sécurité. Vous pouvez sécuriser des environnements en spécifiant quels utilisateurs et pipelines sont autorisés à cibler un environnement.
Un environnement est un regroupement de ressources où les ressources elles-mêmes représentent des cibles de déploiement réelles. Les environnements Azure Pipelines prennent actuellement en charge les types de ressources kubernetes et de machines virtuelles.
Si un pipeline YAML fait référence à un environnement qui n’existe pas :
Lorsque l’utilisateur effectuant l’opération est connue et que des autorisations peuvent être affectées, Azure Pipelines crée automatiquement l’environnement.
Quand Azure Pipelines n’a pas d’informations sur l’utilisateur effectuant l’opération, par exemple dans une mise à jour YAML à partir d’un éditeur de code externe, le pipeline échoue.
Prérequis
| Catégorie | Spécifications |
|---|---|
| Azure DevOps | - Un projet Azure DevOps . - Possibilité d’exécuter des pipelines sur des agents hébergés par Microsoft. Vous pouvez acheter un travail parallèle ou demander un niveau gratuit. - Connaissance de base de YAML et d’Azure Pipelines. Pour plus d’informations, consultez Créer votre premier pipeline. - Autorisations: Pour ajouter des environnements, utilisez le rôle Créateur pour les environnements de votre projet. Par défaut, les membres des groupes Administrateurs de build, Administrateurs de mise en production et Administrateurs de projet peuvent également créer des environnements. |
| Azur | Un abonnement Azure. |
Créer un environnement
Pour créer votre premier environnement :
Connectez-vous à votre organisation Azure DevOps à l’adresse
https://dev.azure.com/{yourorganization}et ouvrez votre projet.Sélectionnez Pipelines>Environnements>Créer un environnement.
Entrez des informations pour l’environnement, puis sélectionnez Créer. Vous pouvez ajouter des ressources à un environnement existant ultérieurement.
Conseil
Créez un environnement vide et référencez-le à partir de travaux de déploiement afin d’enregistrer l'historique des déploiements dans l’environnement.
Pour créer et gérer des environnements de manière programmatique, utilisez l’API REST Azure DevOps Environments.
Vous pouvez utiliser Azure Pipelines pour effectuer un déploiement dans des environnements. Pour en savoir plus, consultez la section Construire et déployer vers Azure Kubernetes Service avec Azure Pipelines.
Cibler un environnement à partir d’une tâche de déploiement
Un travail de déploiement contient des étapes qui s’exécutent de manière séquentielle. Vous pouvez utiliser un travail de déploiement pour cibler l’ensemble d’un groupe d’environnements de ressources, comme illustré dans l’exemple d’extrait de code YAML suivant. Le pipeline s’exécute sur l’ordinateur myVM , car ce nom de ressource est spécifié.
- stage: deploy
jobs:
- deployment: DeployWeb
displayName: deploy Web App
pool:
vmImage: 'Ubuntu-latest'
# creates an environment if it doesn't exist
environment:
name: 'smarthotel-dev'
resourceName: myVM
resourceType: virtualMachine
strategy:
runOnce:
deploy:
steps:
- script: echo Hello world
Cibler une ressource d’environnement spécifique à partir d’un travail de déploiement
Vous pouvez étendre la cible de déploiement à une ressource particulière au sein de l’environnement. Vous pouvez donc enregistrer l’historique du déploiement sur la ressource spécifique. Les étapes du travail de déploiement héritent automatiquement des détails de connexion de service de la ressource que la tâche de déploiement cible.
Dans l’exemple suivant, la valeur du kubernetesServiceConnection est transmise automatiquement à la tâche depuis l’entrée environment.resource.
environment:
name: 'smarthotel-dev.bookings'
strategy:
runOnce:
deploy:
steps:
- task: KubernetesManifest@1
displayName: Deploy to Kubernetes cluster
inputs:
action: deploy
namespace: $(k8sNamespace)
manifests: $(System.ArtifactsDirectory)/manifests/*
imagePullSecrets: $(imagePullSecret)
containers: $(containerRegistry)/$(imageRepository):$(tag)
Remarque
Si vous utilisez un cluster AKS privé, vérifiez que vous êtes connecté au réseau virtuel du cluster, car le point de terminaison du serveur d’API n’est pas exposé via une adresse IP publique.
Azure Pipelines recommande de configurer un agent auto-hébergé au sein d’un réseau virtuel qui a accès au réseau virtuel du cluster. Pour plus d’informations, consultez les options de connexion au cluster privé.
Utiliser des vérifications d’approbation manuelles
Pour contrôler les déploiements dans des environnements de production, Azure Pipelines prend en charge les vérifications d’approbation manuelles. Ces vérifications permettent aux propriétaires de ressources de contrôler lorsqu’une étape d’un pipeline consomme la ressource. Les propriétaires de ressources peuvent définir des approbations et des vérifications qui doivent être satisfaites avant qu’une étape consommant cette ressource puisse commencer.
Les rôles Créateur, Administrateur et Utilisateur de l’environnement, mais pas le rôle Lecteur, peuvent gérer les approbations et les vérifications. En tant que propriétaire d’environnement, vous pouvez contrôler manuellement quand une étape doit s’exécuter à l’aide de vérifications d’approbation. Pour plus d’informations, consultez Définir des approbations et des vérifications.
Voir les environnements dans les détails d'exécution
Sous l’onglet Environnements des détails de l’exécution du pipeline, vous pouvez voir tous les environnements ciblés par les travaux de déploiement d’une exécution de pipeline.
Remarque
Si vous utilisez un cluster privé Azure Kubernetes Service (AKS), l’onglet Environnements n’est pas disponible.
Voir l’historique des déploiements
Vous pouvez sélectionner l’onglet Déploiements dans la section Environnements Azure Pipelines pour afficher l’historique des déploiements.
Affichez les travaux de tous les pipelines qui ciblent un environnement spécifique. Par exemple, deux microservices qui ont chacun leur propre pipeline peuvent être déployés dans le même environnement. L’historique du déploiement permet d’identifier tous les pipelines qui affectent l’environnement, et de visualiser également la séquence de déploiements par chaque pipeline.
Pour explorer les détails du travail, sélectionnez les onglets Modifications et Éléments de travail dans une page de déploiement. Les onglets affichent des listes de validations et d’éléments de travail déployés dans l’environnement. Chaque élément de liste représente de nouveaux éléments dans ce déploiement.
Sous l’onglet Modifications, la première liste inclut tous les commits à ce stade, et les listes suivantes incluent uniquement les modifications pour cette tâche. Si plusieurs validations sont liées au même travail, il existe plusieurs résultats sous l’onglet Modifications .
Si plusieurs tâches sont liées au même travail, il y a plusieurs résultats dans l'onglet Tâches.
Sécurité
Vous pouvez sécuriser vos environnements en définissant des autorisations utilisateur et des autorisations de pipeline.
Autorisations utilisateur
Vous pouvez contrôler qui peut créer, afficher, utiliser et gérer des environnements avec des autorisations utilisateur. Il existe quatre rôles : Creator avec une étendue de tous les environnements, Lecteur, Utilisateur et Administrateur.
Pour ajouter un utilisateur à l’aide du panneau Autorisations utilisateur d’un environnement, accédez à l’environnement spécifique que vous souhaitez autoriser, sélectionnez l’icône Autres actions, puis sélectionnez Sécurité.
Dans le volet Autorisations utilisateur de la page Sécurité, sélectionnez Ajouter, puis sélectionnez un utilisateur ou un groupe et un rôle approprié.
Dans le panneau Autorisations utilisateur, vous pouvez également définir les autorisations héritées et remplacer les rôles de votre environnement.
| Rôle | Descriptif |
|---|---|
| Créateur | Rôle global, disponible avec l’option Sécurité du hub d’environnements. Les membres de ce rôle peuvent créer l’environnement dans le projet. Les contributeurs sont par défaut ajoutés en tant que membres. Obligatoire pour déclencher un pipeline YAML lorsque l’environnement n’existe pas déjà. |
| Lecteur | Les membres de ce rôle peuvent afficher l’environnement. |
| Utilisateur | Les membres de ce rôle peuvent utiliser l’environnement lors de la création et de la modification de pipelines YAML. |
| Administrateur | Les membres de ce rôle peuvent gérer des autorisations, créer, gérer, afficher et utiliser des environnements. Pour un environnement particulier, son créateur est ajouté en tant qu’administrateur par défaut. Les administrateurs peuvent également ouvrir l’accès à un environnement pour tous les pipelines. |
Importante
Lorsque vous créez un environnement, seul le créateur possède le rôle d’administrateur.
| Rôle | Descriptif |
|---|---|
| Créateur | Rôle global, disponible avec l’option Sécurité du hub d’environnements. Les membres de ce rôle peuvent créer l’environnement dans le projet. Les contributeurs sont par défaut ajoutés en tant que membres. Obligatoire pour déclencher un pipeline YAML lorsque l’environnement n’existe pas déjà. |
| Lecteur | Les membres de ce rôle peuvent afficher l’environnement. |
| Utilisateur | Les membres de ce rôle peuvent utiliser l’environnement lors de la création et de la modification de pipelines YAML. |
| Administrateur | En plus d’utiliser l’environnement, les membres de ce rôle peuvent gérer l’appartenance à tous les autres rôles de l’environnement. Les créateurs sont par défaut ajoutés en tant que membres. |
Autorisations de pipeline
Utilisez le panneau Autorisations de pipeline de la page Sécurité pour autoriser tous les pipelines ou les pipelines sélectionnés pour le déploiement dans l’environnement.
Pour supprimer l’accès ouvert sur l’environnement ou la ressource, sélectionnez Restreindre l’autorisation dans les autorisations de pipeline.
Lorsque les autorisations sont restreintes, vous pouvez autoriser le déploiement de pipelines spécifiques sur l’environnement ou sur une ressource spécifique. Sélectionnez + et choisissez dans la liste des pipelines à autoriser.
Questions fréquentes (FAQ)
Pourquoi obtenir un message d’erreur quand j’essaie de créer un environnement ?
Si vous voyez le message Accès refusé : {User} a besoin des autorisations de création pour effectuer l'action, allez dans Paramètres de l'organisation> pour vérifier si vous avez le rôle de partie prenante. Le rôle partie prenante ne peut pas créer d’environnements, car les parties prenantes n’ont pas accès au référentiel.
Modifiez votre niveau d’accès, puis vérifiez si vous pouvez créer des environnements. Pour plus d’informations, consultez FAQ sur la gestion des utilisateurs et des autorisations.
Pourquoi obtenir une erreur indiquant qu’un environnement est introuvable ?
Si vous voyez le message JOB XXXX : L’environnement XXXX est introuvable. L’environnement n’existe pas ou n’a pas été autorisé à être utilisé., il existe plusieurs raisons possibles de l’échec.
Les paramètres d’exécution ne fonctionnent pas lors de la création d’environnements, car ils sont uniquement développés au moment de l’exécution. Vous pouvez utiliser des variables pour créer un environnement ou utiliser templateContext pour transmettre des propriétés à des modèles.
Lorsque vous faites référence à un environnement qui n’existe pas dans un fichier de pipeline YAML, Azure Pipelines crée automatiquement l’environnement dans les cas suivants :
- Vous utilisez l'assistant de création de pipeline YAML dans Azure Pipelines Web, puis faites référence à un environnement qui n’a pas encore été créé.
- Vous mettez à jour le fichier YAML à l’aide de l’éditeur Web Azure Pipelines, puis enregistrez le pipeline après avoir ajouté la référence à l’environnement.
Dans les cas suivants, Azure Pipelines n’a pas d’informations sur l’utilisateur qui crée l’environnement. Par conséquent, le pipeline échoue :
- Vous mettez à jour le fichier YAML à l’aide d’un autre éditeur de code externe.
- Vous ajoutez une référence à un environnement qui n’existe pas, puis déclenchez un pipeline d’intégration manuelle ou continue.
Auparavant, Azure Pipelines gérait ces cas en ajoutant tous les contributeurs de projet au rôle Administrateur de l’environnement. Tout membre du projet peut ensuite modifier ces autorisations et empêcher d’autres personnes d’accéder à l’environnement. Pour éviter ce résultat, Azure Pipelines fait désormais échouer ces projets.