Azure DevOps CLI in Azure Pipeline YAML
Azure DevOps Services
Als u Azure DevOps CLI wilt gebruiken met een YAML-pijplijn, kunt u de volgende voorbeelden gebruiken om Azure CLI te installeren, de Azure DevOps-extensie toe te voegen en Azure DevOps CLI-opdrachten uit te voeren.
Notitie
In de stappen in dit artikel ziet u hoe u verifieert met Azure DevOps en opdrachten uitvoert az devops
met behulp van de Azure DevOps CLI-extensie. Als u Azure CLI wilt gebruiken om te communiceren met Azure-resources, gebruikt u de AzureCLI-taak.
Verifiëren met Azure DevOps
Sommige Azure DevOps CLI-opdrachten die niet worden aangeroepen bij Azure DevOps, zoals az devops configure
en az devops -h
, vereisen geen verificatie, maar de meeste opdrachten communiceren met Azure DevOps en vereisen wel verificatie. U kunt verifiëren met behulp van het beveiligingstoken System.AccessToken dat wordt gebruikt door de actieve pijplijn, door deze toe te wijzen aan een omgevingsvariabele met de naam AZURE_DEVOPS_EXT_PAT
, zoals wordt weergegeven in het volgende voorbeeld.
- bash: |
az pipelines build list --organization '$(System.TeamFoundationCollectionUri)' --project '$(System.TeamProject)'
displayName: 'Show build list'
env:
AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)
Als u meerdere stappen hebt waarvoor verificatie is vereist, voegt u de AZURE_DEVOPS_EXT_PAT
omgevingsvariabele toe aan elke stap.
Zie Access-opslagplaatsen, artefacten en andere resources voor meer informatie over het bereik van het beveiligingstoken dat wordt gebruikt door de actieve pijplijn.
Zie Aanmelden met een persoonlijk toegangstoken (PAT) voor meer informatie over verificatie met een persoonlijk toegangstoken.
Azure DevOps CLI met door Windows en Linux gehoste agents
De Door Microsoft gehoste Windows- en Linux-agents zijn vooraf geconfigureerd met Azure CLI en de Azure DevOps CLI-extensie.
In het volgende voorbeeld ziet u hoe u zich aanmeldt bij Azure DevOps en een paar opdrachten uitvoert. In dit voorbeeld wordt de ubuntu-latest
door Microsoft gehoste agentinstallatiekopie gebruikt, maar u kunt deze vervangen door een van de andere door Windows of Linux gehoste installatiekopieën.
In dit voorbeeld wordt geverifieerd met Azure DevOps CLI met behulp van het securitytoken system.AccessToken dat wordt gebruikt door de actieve pijplijn.
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)
Azure DevOps CLI met door macOS gehoste agents
Op de door Microsoft gehoste macOS-agents is Azure CLI geïnstalleerd, maar niet op de Azure DevOps CLI-extensie. Als u de Azure DevOps CLI-extensie wilt installeren, voert u de volgende opdracht uit in uw pijplijn voordat u Azure DevOps CLI-aanroepen uitvoert.
# Install Azure DevOps extension
- bash: az extension add -n azure-devops
displayName: 'Install Azure DevOps extension'
Azure CLI-versie van gehoste agent
Door Microsoft gehoste agents implementeren doorgaans wekelijkse updates voor de software in de virtuele omgevingen. Voor sommige hulpprogramma's wordt de nieuwste versie op het moment van de implementatie gebruikt; voor anderen wordt het hulpprogramma vastgemaakt aan specifieke versies.
- Als u de meegeleverde software en de bijbehorende versies voor door Microsoft gehoste agents wilt controleren, inclusief de geïnstalleerde versie van de Azure CLI en de Azure DevOps CLI-extensie, volgt u de meegeleverde softwarekoppelingen in de tabel Software .
- Zie De Azure CLI installeren om de huidige versie voor Azure CLI te controleren.
U kunt de Azure CLI bijwerken op uw gehoste installatiekopieën door de volgende opdrachten uit te voeren in uw pijplijn.
# 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'
De Azure DevOps CLI-extensie voorwaardelijk installeren
Als uw pijplijn wordt uitgevoerd op verschillende door Microsoft gehoste VM-installatiekopieën, waarvan sommige niet de Azure DevOps CLI-extensie hebben geïnstalleerd, voert u de installatie voorwaardelijk uit.
trigger:
- main
# Run on multiple Microsoft-hosted agent images
strategy:
matrix:
linux22:
imageName: "ubuntu-22.04"
linux20:
imageName: "ubuntu-20.04"
mac13:
imageName: "macos-13"
mac12:
imageName: "macos-12"
mac11:
imageName: "macos-11"
windows2019:
imageName: "windows-2019"
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 met zelf-hostende agents
U kunt de volgende methoden gebruiken om de Azure DevOps CLI te installeren of bij te werken in uw zelf-hostende agent.
- Azure CLI en Azure DevOps CLI-extensie handmatig installeren
- Azure CLI en Azure DevOps CLI-extensie installeren in uw pijplijn
Azure CLI en Azure DevOps CLI-extensie handmatig installeren
Azure CLI en Azure DevOps CLI-extensie installeren op uw zelf-hostende agent wanneer u de installatiekopie van de virtuele machine voor de agent inricht, is sneller dan wanneer de pijplijn wordt uitgevoerd.
- Zie De Azure CLI installeren om Azure CLI te installeren op uw zelf-hostende agentinstallatiekopie. Er zijn afzonderlijke instructies voor Windows, Linux en macOS.
- Nadat u Azure CLI hebt geïnstalleerd, installeert u de Azure DevOps CLI-extensie.
Azure CLI en Azure DevOps CLI-extensie installeren in uw pijplijn
Het volgende voorbeeld van het configureren van de Azure CLI- en Azure DevOps CLI-extensie op een zelf-hostende agent met behulp van een pijplijn heeft de volgende vereisten.
- Azure CLI installeren met behulp van Python
- Python moet op de agent worden geïnstalleerd volgens de instructies in de Python-versietaak: hoe kan ik een zelf-hostende agent configureren voor het gebruik van deze taak? De
UsePythonVersion@0
taak installeert Python niet op uw zelf-hostende agent. Als u slechts één versie van Python op uw zelf-hostende agent hebt geïnstalleerd en deze zich in het pad bevindt, hoeft u deUsePythonVersion@0
taak niet te gebruiken.
- Python moet op de agent worden geïnstalleerd volgens de instructies in de Python-versietaak: hoe kan ik een zelf-hostende agent configureren voor het gebruik van deze taak? De
# 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'
- Azure CLI DevOps-extensie installeren
# 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
# ...
In het volgende voorbeeld wordt Azure CLI geïnstalleerd, gevolgd door de Azure DevOps CLI-extensie.
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
# ...
De resultaten van een Azure DevOps CLI-aanroep toewijzen aan een variabele
Als u de resultaten van een Azure DevOps CLI-aanroep naar een pijplijnvariabele wilt opslaan, gebruikt u de task.setvariable
syntaxis die wordt beschreven in Variabelen instellen in scripts. In het volgende voorbeeld wordt de id opgehaald van een variabelegroep met de naam Fabrikam-2023 en wordt deze waarde vervolgens gebruikt in een volgende stap.
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'
Zie Variabelen definiëren voor meer voorbeelden van het werken met variabelen, waaronder het werken met variabelen tussen taken en fasen. Voor voorbeelden van de querysyntaxis die in het vorige voorbeeld wordt gebruikt, raadpleegt u Hoe u query's uitvoert op azure CLI-opdrachtuitvoer met behulp van een JMESPath-query.