Environnement – ressource de machine virtuelle

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

Utilisez des ressources de machine virtuelle pour gérer les déploiements sur plusieurs machines avec des pipelines YAML. Les ressources de machine virtuelle vous permettent d’installer des agents sur vos propres serveurs pour les déploiements continus.

Les ressources de machine virtuelle se connectent aux environnements. Après avoir défini un environnement, vous pouvez ajouter des machines virtuelles à cibler avec des déploiements. La vue d’historique des déploiements dans un environnement fournit la traçabilité de votre machine virtuelle à votre pipeline.

Prérequis

Vous devez disposer d’au moins une licence de base et accéder aux zones suivantes :

  • le référentiel connecté à votre pipeline
  • la machine virtuelle que vous souhaitez connecter à l’environnement

Pour plus d’informations sur la sécurité pour Azure Pipelines, consultez les Ressources de sécurité du pipeline.

Pour ajouter une machine virtuelle à un environnement, vous devez avoir le rôle Administrateur pour le pool de déploiement correspondant. Un pool de déploiement est un ensemble de serveurs cibles disponibles pour l’organisation. En savoir plus sur les autorisations de pool de déploiement et d’environnement.

Notes

Si vous configurez 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, vous devez définir l’étendue PAT sur Toutes les organisations accessibles.

Créer une ressource

Notes

Vous pouvez utiliser ce même processus pour configurer des machines physiques avec un script d’inscription.

La première étape de l’ajout d’une ressource de machine virtuelle consiste à définir un environnement.

Définir un environnement

  1. Sélectionnez Créer un environnement ou Nouvel environnement, selon qu’il s’agit de votre premier environnement.
  2. Ajoutez un nom (obligatoire) pour l’environnement, ainsi qu’une description.
  3. Enregistrez le nouvel environnement.

Ajouter une ressource

  1. Sélectionnez votre environnement et choisissez Ajouter une ressource.

  2. Sélectionnez Machines virtuelles pour votre type de ressource. Sélectionnez ensuite Suivant.

    Add an environment.

  3. Choisissez Windows ou Linux pour le système d’exploitation.

  4. Copiez le script d’inscription. Votre script sera un script PowerShell si vous avez sélectionné Windows et un script Linux si vous avez sélectionné Linux.

    Add a virtual machine.

  5. Exécutez le script copié sur chacune des machines virtuelles cibles que vous souhaitez inscrire dans cet environnement.

    • Si vous installez sur Windows, vous devez exécuter le script d’un administrateur PowerShell.
    • Si vous installez sur Linux, vous devez avoir l’autorisation de télécharger et d’exécuter des scripts exécutables.

    Notes

    • Le jeton d’accès personnel (PAT) de l’utilisateur connecté est inclus dans le script. Le PAT expire le jour où vous générez le script.
    • Si un autre agent est déjà en cours d’exécution sur votre machine virtuelle, fournissez un nom unique pour l’agent afin de l’inscrire auprès de l’environnement.
    • Pour en savoir plus sur l’installation du script d’agent, consultez les Agents Linux auto-hébergés et les Agents Windows auto-hébergés. Les scripts d’agent pour les ressources de machine virtuelle sont similaires aux scripts pour les agents auto-hébergés et vous pouvez utiliser les mêmes commandes.
  6. Une fois que votre machine virtuelle est inscrite, celle-ci s’affiche comme une ressource d’environnement sous l’onglet Ressources de l’environnement.

  7. Pour ajouter d’autres machines virtuelles, copiez à nouveau le script. Sélectionnez Ajouter une ressource>Machines virtuelles. Les scripts Windows et Linux sont identiques pour toutes les machines virtuelles ajoutées à l’environnement.

  8. Lorsque le script de machine virtuelle est correctement installé, votre machine virtuelle apparaît dans la liste des ressources de l’environnement.

    View resources.

Utiliser une machine virtuelle dans les pipelines

Ciblez les machines virtuelles dans votre pipeline en référençant l’environnement. Par défaut, le travail de pipeline s’exécute pour toutes les machines virtuelles définies pour un environnement avec un resourceName.

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"

Notes

Les valeurs resourceType sont sensibles à la casse. Si vous ne respectez pas la casse, aucune ressource correspondante n’est trouvée dans l’environnement. Pour plus d’informations, consultez le schéma YAML.

Vous pouvez sélectionner une machine virtuelle spécifique dans l’environnement pour recevoir uniquement le déploiement en le spécifiant par son resourceName. Par exemple, pour cibler le déploiement uniquement sur la ressource de machine virtuelle nommée USHAN-PC dans l’environnementVMenv, ajoutez le paramètre resourceName et attribuez-lui la valeur USHAN-PC.

trigger: 
- main

pool: 
   vmImage: ubuntu-latest

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

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

Ajouter et gérer des balises

Les balises vous permettent de cibler un ensemble de machines virtuelles spécifiques dans un environnement pour le déploiement. Vous pouvez ajouter des balises à la machine virtuelle dans le cadre du script d’inscription interactif ou via l’interface utilisateur. Les balises sont chacune limitées à 256 caractères. Vous pouvez utiliser un nombre illimité de balises.

Ajoutez ou supprimez des balises dans l’interface utilisateur de l’affichage des ressources en sélectionnant Autres actions pour une ressource de machine virtuelle.

Set VM tags.

Lorsque vous sélectionnez plusieurs balises, les machines virtuelles qui incluent toutes les balises sont utilisées dans votre pipeline. Par exemple, ce pipeline cible les machines virtuelles avec les balises windows et prod. Si une machine virtuelle n’a qu’une de ces balises, elle n’est pas ciblée.

trigger: 
- main

pool: 
   vmImage: ubuntu-latest

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

Appliquer une stratégie de déploiement

Appliquez une stratégie de déploiement pour définir la façon dont votre application est déployée. La stratégie runOnce et la stratégie rolling pour les machines virtuelles sont prises en charge. Pour plus d’informations sur les stratégies de déploiement et les hooks de cycle de vie, consultez Travaux de déploiement/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.

VMDeployments_view

Supprimer une machine virtuelle d’un environnement

Environnement Windows

Pour supprimer des machines virtuelles d’un environnement Windows, exécutez la commande suivante. Assurez-vous d’effectuer les tâches suivantes :

  • Exécuter la commande à partir d’une invite de commandes PowerShell en mode Administrateur
  • Exécuter la commande sur chaque ordinateur
  • Exécutez la commande dans le même chemin de dossier que la commande d’inscription d’environnement a été exécutée
./config.cmd remove

Environnement Linux

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

./config.sh remove

Limitations connues

Lorsque vous réessayez une étape, elle réexécutera le déploiement sur toutes les machines virtuelles et pas seulement sur les cibles ayant échoué.