Partage via


Gérer les ressources de machine virtuelle dans les environnements

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020

Cet article explique comment utiliser des ressources de machine virtuelle dans des environnements pour gérer les déploiements Azure Pipelines sur plusieurs machines. Vous pouvez également installer des agents sur vos propres serveurs pour les déploiements propagés.

Les ressources de machine virtuelle peuvent exister dans des environnements, tels que le développement, le test ou la production. Après avoir défini un environnement, vous pouvez ajouter des machines virtuelles à cibler avec des déploiements. L’historique de déploiement de l’environnement fournit la traçabilité de chaque machine virtuelle à votre pipeline.

Prérequis

  • Accès à un référentiel source connecté à votre pipeline.
  • Accès et autorisation de télécharger et d’exécuter des scripts exécutables sur les machines virtuelles que vous souhaitez connecter à l’environnement.
  • Autorisations d’administrateur de projet ou d’administrateur de build dans le projet Azure DevOps qui contient l’environnement. Pour plus d’informations, consultez ressources de sécurité de pipeline.
  • Rôle d’administrateur pour le pool de déploiement ou ensemble de serveurs cibles disponibles pour l’organisation. Pour plus d’informations, consultez le pool de déploiement et les autorisations d’environnement.

Remarque

Pour configurer un agent de groupe de déploiement ou si vous voyez une erreur lors de l’inscription d’une ressource d’environnement de machine virtuelle, veillez à définir l’étendue de votre jeton d’accès personnel (PAT) sur toutes les organisations accessibles.

Créer l’environnement

Utilisez la procédure suivante pour ajouter une ressource de machine virtuelle à un environnement. Vous pouvez utiliser le même processus pour configurer des machines physiques.

Ajouter une ressource de machine virtuelle

  1. Dans votre projet Azure DevOps, accédez à Environnements pipelines>, puis sélectionnez Créer un environnement ou un nouvel environnement.

  2. Dans le premier écran Nouvel environnement, ajoutez un nom et une description facultative.

  3. Sous Ressource, sélectionnez Machines virtuelles, puis Sélectionnez Suivant.

    Capture d’écran montrant l’ajout d’un environnement.

Copier le script d’inscription

Les scripts d’agent pour les ressources de machine virtuelle sont similaires aux scripts des agents auto-hébergés et utilisent les mêmes commandes. Les scripts incluent un jeton d’accès personnel (PAT) Azure DevOps pour l’utilisateur connecté, qui expire trois heures après la génération du script.

  1. Dans l’écran Nouvel environnement suivant, choisissez Linux sous Système d’exploitation.

  2. Copiez le script d’inscription Linux.

    Capture d’écran montrant l’ajout d’une machine virtuelle.

Le script est le même pour toutes les machines virtuelles Linux ajoutées à l’environnement. Pour plus d’informations sur l’installation du script d’agent, consultez agents Linux auto-hébergés.

Exécuter le script copié

  1. Sélectionnez Fermer, puis notez que le nouvel environnement est créé. Pour copier à nouveau le script, par exemple si votre pater est arrivé à expiration, sélectionnez Ajouter une ressource.

    Capture d’écran du message créé par le nouvel environnement.

  2. Exécutez le script copié sur chaque machine virtuelle cible que vous souhaitez inscrire auprès de l’environnement.

    Remarque

    Si la machine virtuelle dispose déjà d’un autre agent en cours d’exécution, fournissez un nom unique pour que l’agent s’inscrive auprès de l’environnement.

Une fois la machine virtuelle inscrite, elle apparaît sous l’onglet Ressources de l’environnement.

Capture d’écran de l’onglet Ressources.

Utiliser des machines virtuelles dans des pipelines

Dans votre pipeline YAML, vous pouvez cibler des machines virtuelles en référençant leur environnement. Par défaut, le travail cible toutes les machines virtuelles inscrites pour cet environnement resourceName.

Remarque

Lorsque vous réessayez une étape, le déploiement s’exécute à nouveau sur toutes les machines virtuelles, pas seulement sur les cibles ayant échoué.

trigger: 
- main

pool: 
   vmImage: ubuntu-latest

jobs:
- deployment: VMDeploy
  displayName: Deploy to VM
  environment: 
   name: VMenv
   resourceName: VMenv
   resourceType: virtualMachine
  strategy:
     runOnce:
        deploy:   
          steps:
            - script: echo "Hello world"

Remarque

Les valeurs comme celles-ci virtualMachine respectent la resourceType casse. Une casse incorrecte n’entraîne pas de ressources correspondantes trouvées.

Vous pouvez déployer sur des machines virtuelles spécifiques dans l’environnement en les spécifiant dans resourceName. L’exemple suivant déploie uniquement sur la ressource de machine virtuelle nommée RESOURCE-PC dans l’environnement VMenv .

trigger: 
- main

pool: 
   vmImage: ubuntu-latest

jobs:
- deployment: VMDeploy
  displayName: Deploy to VM
  environment: 
    name: VMenv
    resourceType: virtualMachine
    resourceName: RESOURCE-PC # only deploy to the VM resource named RESOURCE-PC
  strategy:
    runOnce:
      deploy:   
          steps:
          - script: echo "Hello world"

Pour en savoir plus sur les travaux de déploiement de pipeline YAML, consultez le schéma des pipelines YAML.

Ajouter et gérer des balises

Les balises permettent de cibler un ensemble spécifique de machines virtuelles dans un environnement pour le déploiement. Les balises sont limitées à 256 caractères chacune. Vous pouvez utiliser un nombre illimité de balises.

Vous pouvez ajouter des balises ou supprimer des balises pour les machines virtuelles dans le script d’inscription interactif ou via l’interface utilisateur en sélectionnant Plus d’actions pour une ressource de machine virtuelle.

Capture d’écran montrant la définition des balises de machine virtuelle.

Si vous spécifiez plusieurs balises, le pipeline utilise uniquement des machines virtuelles qui incluent toutes les balises. L’exemple suivant cible uniquement les machines virtuelles qui ont à la fois les balises et prod les windows balises. Les machines virtuelles qui n’ont qu’une ou aucune des balises ne sont pas ciblées.

trigger: 
- main

pool: 
   vmImage: ubuntu-latest

jobs:
- deployment: VMDeploy
  displayName: Deploy to VM
  environment: 
    name: VMenv
    resourceType: virtualMachine
    tags: windows,prod # only deploy to VMs with both windows and prod tags
  strategy:
    runOnce:
      deploy:   
          steps:
          - script: echo "Hello world"

Appliquer une stratégie de déploiement

Vous pouvez appliquer un déploiement strategy pour définir comment déployer votre application. Les machines virtuelles prennent en charge les stratégies et les runOnce rolling stratégies. Pour plus d’informations sur les stratégies de déploiement et les hooks de cycle de vie, consultez Stratégies de déploiement.

Voir l’historique des déploiements

Sélectionnez l’onglet Déploiements pour le suivi complet des validations et des éléments de travail, ainsi qu’un historique des déploiements interpipeline pour chaque environnement et ressource.

Capture d’écran montrant la vue Déploiements de machines virtuelles.

Supprimer une machine virtuelle d’un environnement

Pour supprimer une machine virtuelle d’un environnement Linux, exécutez la commande suivante sur chaque ordinateur.

./config.sh remove