Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Azure DevOps Services
Si vous souhaitez utiliser Azure DevOps CLI avec un pipeline YAML, vous pouvez utiliser l’extension Azure DevOps ou utiliser la tâche AzureCLI. Les agents Windows et Linux hébergés par Microsoft sont préconfigurés avec Azure CLI et l’extension Azure DevOps CLI. L’extension Azure DevOps CLI exécute az devops commandes.
Vous pouvez vous authentifier auprès d’un PAT ou utiliser la tâche AzureCLI@2 avec une connexion de service. L’utilisation d’une connexion de service est l’option la plus sécurisée, car vous n’aurez pas besoin de gérer manuellement les informations d’identification.
S’authentifier auprès d’Azure DevOps
Certaines commandes Azure DevOps CLI, telles az devops configure que et az devops --help, ne nécessitent aucune authentification. Ils ne se connectent pas à Azure DevOps. La plupart des commandes interagissent avec Azure DevOps et nécessitent une authentification.
Vous pouvez vous authentifier à l’aide du jeton de sécurité System.AccessToken utilisé par le pipeline en cours d’exécution, en l’affectant à une variable d’environnement nommée AZURE_DEVOPS_EXT_PAT, comme illustré dans l’exemple suivant :
L’utilisation de System.AccessToken s’appuie sur un PAT. En guise d’alternative plus sécurisée, vous pouvez utiliser la tâche AzureCLI@2 pour remplir une connexion de service.
- bash: |
az pipelines build list --organization '$(System.TeamFoundationCollectionUri)' --project '$(System.TeamProject)'
displayName: 'Show build list'
env:
AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)
Si plusieurs étapes nécessitent une authentification, ajoutez la variable d’environnement AZURE_DEVOPS_EXT_PAT à chaque étape.
Pour plus d’informations sur l’étendue du jeton de sécurité utilisé par le pipeline en cours d’exécution, voir Accéder aux référentiels, artefacts et autres ressources.
Pour plus d’informations sur l’authentification à l’aide d’un jeton d’accès personnel (PAT), consultez Se connecter avec un jeton d’accès personnel.
Se connecter à Azure DevOps CLI avec des agents hébergés par Windows et Linux
Les agents Windows et Linux hébergés par Microsoft sont préconfigurés avec Azure CLI et l’extension Azure DevOps CLI.
L’exemple suivant montre comment se connecter à Azure DevOps et exécuter quelques commandes. Cet exemple utilise l’image de l’agent ubuntu-latest hébergé par Microsoft. Vous pouvez le remplacer par l’une des autres images hébergées par Windows ou Linux.
Cet exemple s’authentifie auprès d’Azure DevOps CLI. Il utilise le jeton de sécurité System.AccessToken utilisé par le pipeline en cours d’exécution.
trigger:
- main
pool:
vmImage: 'ubuntu-latest'
steps:
- bash: az --version
displayName: 'Show Azure CLI version'
- bash: az devops configure --defaults organization='$(System.TeamFoundationCollectionUri)' project='$(System.TeamProject)' --use-git-aliases true
displayName: 'Set default Azure DevOps organization and project'
- bash: |
az pipelines build list
git pr list
displayName: 'Show build list and PRs'
env:
AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)
Installer l’extension CLI Azure DevOps avec des agents hébergés macOS
Azure CLI est installée sur les agents macOS hébergés par Microsoft, mais pas l’extension Azure DevOps CLI. Pour installer l’extension Azure DevOps CLI, exécutez la commande suivante dans votre pipeline avant d’effectuer des appels Azure DevOps CLI :
# Install Azure DevOps extension
- bash: az extension add -n azure-devops
displayName: 'Install Azure DevOps extension'
Mettre à niveau la version d’Azure CLI de l’agent hébergé
Les agents hébergés par Microsoft déploient généralement des mises à jour hebdomadaires sur les logiciels dans les environnements virtuels. Pour certains outils, la dernière version au moment du déploiement est utilisée. Dans d’autres cas, l’outil est épinglé à des versions spécifiques.
- Pour vérifier les logiciels inclus et leurs versions pour les agents hébergés par Microsoft, y compris la version installée d’Azure CLI et de l’extension Azure DevOps CLI, suivez les liens Logiciels inclus dans la table Software .
- Pour vérifier la version actuelle d’Azure CLI, consultez Installation d’Azure CLI.
Vous pouvez mettre à niveau Azure CLI sur vos images hébergées en exécutant les commandes suivantes dans votre pipeline :
# Specify python version
- task: UsePythonVersion@0
inputs:
versionSpec: '3.x'
architecture: 'x64'
# Update to latest Azure CLI version
- bash: pip install --pre azure-cli
displayName: 'Upgrade Azure CLI'
Installer de manière conditionnelle l’extension Azure DevOps CLI
Si votre pipeline s’exécute sur plusieurs images de machine virtuelle hébergées par Microsoft, certaines d’entre elles n’ont pas installé l’extension AZURE DevOps CLI, vous pouvez l’installer de manière conditionnelle.
trigger:
- main
# Run on multiple Microsoft-hosted agent images
strategy:
matrix:
linux24:
imageName: "ubuntu-24.04"
linux22:
imageName: "ubuntu-22.04"
mac15:
imageName: "macos-15"
mac14:
imageName: "macos-14"
mac13:
imageName: "macos-13"
windows2025:
imageName: "windows-2025"
windows2022:
imageName: "windows-2022"
maxParallel: 3
pool:
vmImage: $(imageName)
steps:
- bash: az --version
displayName: 'Show Azure CLI version'
# Install Azure DevOps CLI extension only on macOS images
- bash: az extension add -n azure-devops
condition: contains(variables.imageName, 'mac')
displayName: 'Install Azure DevOps extension'
# Azure DevOps CLI extension call that does not require login or credentials
# since it configures the local environment
- bash: az devops configure --defaults organization='$(System.TeamFoundationCollectionUri)' project='$(System.TeamProject)' --use-git-aliases true
displayName: 'Set default Azure DevOps organization and project'
# Call that does require credentials, use the System.AccessToken PAT
# and assign to AZURE_DEVOPS_EXT_PAT which is known to Azure DevOps CLI extension
- bash: |
az pipelines build list
git pr list
env:
AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)
displayName: 'Show build list and PRs'
Azure DevOps CLI avec agents auto-hébergés
Vous pouvez installer ou mettre à niveau Azure DevOps CLI dans votre agent auto-hébergé à l’aide des méthodes suivantes :
- Installer manuellement Azure CLI et l’extension Azure DevOps CLI
- Installer Azure CLI et l’extension Azure DevOps CLI dans votre pipeline
Installer manuellement Azure CLI et l’extension Azure DevOps CLI
L’installation d’Azure CLI et de l’extension Azure DevOps CLI sur votre agent auto-hébergé lorsque vous approvisionnez l’image de machine virtuelle pour l’agent est plus rapide que de les installer chaque fois que le pipeline est exécuté.
Pour installer Azure CLI sur votre image d’agent auto-hébergé, consultez Installer Azure CLI. Il existe des instructions distinctes pour Windows, Linux et macOS.
Après avoir installé Azure CLI, installez l’extension Azure DevOps CLI.
Installer Azure CLI et l’extension Azure DevOps CLI dans votre pipeline
L’exemple suivant de configuration d’Azure CLI et de l’extension Azure DevOps CLI sur un agent auto-hébergé à l’aide d’un pipeline présente les conditions préalables suivantes :
- Installez Azure CLI à l’aide de Python. Python doit être installé sur l’agent en fonction des instructions de la tâche de version de Python : comment configurer un agent auto-hébergé pour utiliser cette tâche ?. La
UsePythonVersion@0tâche n’installe pas Python sur votre agent auto-hébergé. Si vous n’avez installé qu’une seule version de Python sur votre agent auto-hébergé et qu’elle se trouve dans le chemin, vous n’avez pas besoin d’utiliser la tâcheUsePythonVersion@0.
# Specify python version if you have side-by-side versions
- task: UsePythonVersion@0
inputs:
versionSpec: '3.x'
architecture: 'x64'
# Update pip to latest
- bash: python -m pip install --upgrade pip
displayName: 'Upgrade pip'
# Update to latest Azure CLI version, min version required for Azure DevOps is 2.10.1
- bash: pip install --pre azure-cli
displayName: 'Upgrade Azure CLI'
Installez l’extension Azure CLI DevOps :
- Azure CLI version 2.10.1 ou ultérieure est installée.
- Une version de
bashest installée sur l’agent et dans le chemin d’accès. Une installation bash est requise pour utiliser la tâche bash.
# Install Azure DevOps extension
- bash: az extension add -n azure-devops
displayName: 'Install Azure DevOps extension'
# Now you can make calls into Azure DevOps CLI
# ...
L’exemple suivant installe Azure CLI, puis l’extension Azure DevOps CLI :
steps:
# Specify python version if you have side-by-side versions
- task: UsePythonVersion@0
inputs:
versionSpec: '3.x'
architecture: 'x64'
# Update pip to latest
- bash: python -m pip install --upgrade pip
displayName: 'Upgrade pip'
# Update to latest Azure CLI version, min version required for Azure DevOps is 2.10.1
- bash: pip install --pre azure-cli
displayName: 'Upgrade Azure CLI'
# Install Azure DevOps extension
- bash: az extension add -n azure-devops
displayName: 'Install Azure DevOps extension'
# Now you can make calls into Azure DevOps CLI
# ...
Affecter les résultats d’un appel Azure DevOps CLI à une variable
Stockez les résultats d’un appel Azure DevOps CLI à une variable de pipeline à l’aide de la syntaxe task.setvariable décrite dans Définir des variables dans des scripts. L’exemple suivant obtient l’ID d’un groupe de variables nommé Fabrikam-2023 et utilise cette valeur dans une étape suivante.
variables:
- name: variableGroupId
trigger: none
pool:
vmImage: "ubuntu-latest"
steps:
- bash: az devops configure --defaults organization='$(System.TeamFoundationCollectionUri)' project='$(System.TeamProject)' --use-git-aliases true
displayName: 'Set default Azure DevOps organization and project'
- bash: echo "##vso[task.setvariable variable=variableGroupId]$(az pipelines variable-group list --group-name Fabrikam-2023 --query [].id -o tsv)"
env:
AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)
displayName: 'Get Fabrikam-2023 variable group id'
- bash: az pipelines variable-group variable list --group-id '$(variableGroupId)'
env:
AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)
displayName: 'List variables in Fabrikam-2023 variable group'
S’authentifier avec une connexion de service
Lorsque vous utilisez une connexion de service, la connexion de service fournit les informations d’identification nécessaires pour Azure CLI et les commandes Azure DevOps CLI dans la tâche AzureCLI@2 sans nécessiter de gestion manuelle des informations d’identification dans le pipeline.
Note
Lorsque vous utilisez une connexion de service pour l’authentification, AzureCLI@2vous devez ajouter manuellement le principal de service à votre organisation Azure DevOps.
Cet exemple de code définit un nouveau paramètre, serviceConnectionavec le nom d’une connexion de service existante. Ce paramètre est référencé dans la AzureCLI@2 tâche. La tâche répertorie tous les projets (az devops project list) et pools (az pipelines pool list).
trigger:
- main
parameters:
- name: serviceConnection
displayName: Azure Service Connection Name
type: string
default: my-service-connection
steps:
- task: AzureCLI@2
condition: succeededOrFailed()
displayName: 'Azure CLI -> DevOps CLI'
inputs:
azureSubscription: '${{ parameters.serviceConnection }}'
scriptType: pscore
scriptLocation: inlineScript
inlineScript: |
Write-Host "Using logged-in Azure CLI session..."
Write-Host "$($PSStyle.Formatting.FormatAccent)az devops configure$($PSStyle.Reset)"
az devops configure --defaults organization=$(System.CollectionUri) project=$(System.TeamProject)
az devops configure -l
Write-Host "`nUse Azure DevOps CLI (az devops) to list projects in the organization '$(System.CollectionUri)'..."
Write-Host "$($PSStyle.Formatting.FormatAccent)az devops project list$($PSStyle.Reset)"
az devops project list --query "value[].{Name:name, Id:id}" `
-o table
Write-Host "`nUse Azure DevOps CLI (az pipelines) to list pools in the organization '$(System.CollectionUri)'..."
Write-Host "$($PSStyle.Formatting.FormatAccent)az pipelines pool list$($PSStyle.Reset)"
az pipelines pool list --query "[].{Id:id, Name:name}" `
-o table
failOnStandardError: true
Affecter les résultats d’un appel Azure DevOps CLI à une variable
Stockez les résultats d’un appel Azure DevOps CLI à une variable de pipeline à l’aide de la syntaxe task.setvariable décrite dans Définir des variables dans des scripts. L’exemple suivant obtient l’ID d’un groupe de variables nommé kubernetes et utilise cette valeur dans une étape suivante.
trigger:
- main
variables:
- name: variableGroupId
parameters:
- name: serviceConnection
displayName: Azure Service Connection Name
type: string
default: my-service-connection
steps:
- task: AzureCLI@2
condition: succeededOrFailed()
displayName: 'Azure CLI -> DevOps CLI'
inputs:
azureSubscription: '${{ parameters.serviceConnection }}'
scriptType: pscore
scriptLocation: inlineScript
inlineScript: |
Write-Host "Using logged-in Azure CLI session..."
Write-Host "$($PSStyle.Formatting.FormatAccent)az devops configure$($PSStyle.Reset)"
az devops configure --defaults organization=$(System.CollectionUri) project=$(System.TeamProject)
az devops configure -l
$id = az pipelines variable-group list --group-name kubernetes --query [].id -o tsv
Write-Host "##vso[task.setvariable variable=variableGroupId]$id"
- task: AzureCLI@2
condition: succeededOrFailed()
displayName: 'Azure CLI -> DevOps CLI'
inputs:
azureSubscription: '${{ parameters.serviceConnection }}'
scriptType: pscore
scriptLocation: inlineScript
inlineScript: |
Write-Host "Using logged-in Azure CLI session..."
az pipelines variable-group variable list --group-id '$(variableGroupId)'
Pour obtenir d’autres exemples d’utilisation de variables, notamment l’utilisation de variables sur plusieurs travaux et phases, consultez Définir des variables. Pour obtenir des exemples de syntaxe de requête utilisées dans l’exemple précédent, consultez Interrogation d’une sortie de commande Azure CLI à l’aide d’une requête JMESPath.
Contenu connexe
- System.AccessToken
- Accéder aux dépôts, aux artefacts et à d’autres ressources
- Définir des variables
- Informations de référence sur l’extension Azure DevOps CLI
- Informations de référence sur l’extension Azure DevOps CLI - az pipelines
- Interrogation d’une sortie de commande Azure CLI à l’aide d’une requête JMESPath