Partager via


Créer et cibler des environnements Azure DevOps

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 :

  1. Connectez-vous à votre organisation Azure DevOps à l’adresse https://dev.azure.com/{yourorganization} et ouvrez votre projet.

  2. Sélectionnez Pipelines>Environnements>Créer un environnement.

    Capture d’écran montrant les environnements.

  3. Entrez des informations pour l’environnement, puis sélectionnez Créer. Vous pouvez ajouter des ressources à un environnement existant ultérieurement.

    Capture d’écran pour la création d’un nouvel environnement.

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.

Capture d’écran montrant les environnements dans les détails de l’exécution.

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.

    Capture d’écran montrant la liste de l’historique de déploiement.

  • 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 .

    Capture d’écran des validations sous l’historique de déploiement.

  • Si plusieurs tâches sont liées au même travail, il y a plusieurs résultats dans l'onglet Tâches.

    Capture d’écran des éléments de travail sous l’historique de déploiement.

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.