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
Dans votre projet Azure DevOps, accédez à Environnements pipelines>, puis sélectionnez Créer un environnement ou un nouvel environnement.
Dans le premier écran Nouvel environnement, ajoutez un nom et une description facultative.
Sous Ressource, sélectionnez Machines virtuelles, puis Sélectionnez Suivant.
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.
Dans l’écran Nouvel environnement suivant, choisissez Linux sous Système d’exploitation.
Copiez le script d’inscription Linux.
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é
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.
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.
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 plus d’informations 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.
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.
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