Partager via


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 :

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 Environnements de>pipelines>Créer un environnement.

    Capture d’écran montrant 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 de la création d’un environnement.

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.

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

    Capture d’écran des commits dans l’historique du déploiement.

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

    Capture d’écran des éléments de travail sous l’historique du 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 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.