Créer et cibler des environnements
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
Cet article explique comment créer et cibler des environnements Azure Pipelines. Un environnement est une collection 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 standard sont 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 offrent des fonctionnalités similaires.
Les environnements offrent les avantages suivants :
Historique du déploiement. Les détails du nom et de l’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 commits et les éléments de travail qui ont été récemment déployés dans l’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
Pour ajouter un environnement, vous avez besoin des conditions préalables suivantes :
- Une organisation et un projet Azure DevOps.
- Rôle Créateur pour les environnements de votre projet.
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 Environnements de>pipelines>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
Vous pouvez créer un environnement vide et le référencer à partir de travaux de déploiement afin de pouvoir enregistrer l’historique de déploiement sur l’environnement.
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’un travail de déploiement
Un travail de déploiement est une collection d’é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 de la kubernetesServiceConnection
tâche passe automatiquement à la tâche à partir de l’entrée environment.resource
.
environment:
name: 'smarthotel-dev.bookings'
strategy:
runOnce:
deploy:
steps:
- task: KubernetesManifest@0
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 les environnements de production, Azure Pipelines prend en charge les vérifications d’approbation manuelles sur les environnements. Les vérifications d’approbation sont disponibles pour les propriétaires de ressources à 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 de l’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 toutes les validations à ce stade, et les listes suivantes incluent uniquement les modifications pour ce travail. Si plusieurs validations sont liées au même travail, il existe plusieurs résultats sous l’onglet Modifications .
Si plusieurs éléments de travail sont liés au même travail, il existe plusieurs résultats sous l’onglet Éléments de travail.
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 | Description |
---|---|
Creator | 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 à tous les pipelines. |
Important
Lorsque vous créez un environnement, seul le créateur possède le rôle d’administrateur.
Rôle | Description |
---|---|
Creator | 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 l’accès au message est refusé : {User} a besoin d’autorisations Créer pour effectuer l’action, accédez aux utilisateurs des paramètres>de l’organisation pour vérifier si vous avez le rôle 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.
Azure Pipelines peut ne pas disposer d’informations sur l’utilisateur qui crée l’environnement.
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 Création de pipeline YAML dans l’expérience Web Azure Pipelines, 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.