Azure DevOps CLI ve službě Azure Pipeline YAML
Služby Azure DevOps
Pokud chcete použít Azure DevOps CLI s kanálem YAML, můžete pomocí následujících příkladů nainstalovat Azure CLI, přidat rozšíření Azure DevOps a spustit příkazy Azure DevOps CLI.
Poznámka:
Kroky v tomto článku ukazují, jak ověřovat pomocí Azure DevOps a spouštět az devops
příkazy pomocí rozšíření Azure DevOps CLI. Pokud chcete použít Azure CLI k interakci s prostředky Azure, použijte úlohu AzureCLI.
Ověřování pomocí Azure DevOps
Některé příkazy Rozhraní příkazového řádku Azure DevOps, které se do Azure DevOps nezavolají, například az devops configure
a az devops -h
nevyžadují žádné ověřování, ale většina příkazů komunikuje s Azure DevOps a vyžaduje ověřování. Můžete se ověřit pomocí tokenu zabezpečení System.AccessToken používaného spuštěným kanálem tak, že ho přiřadíte k proměnné prostředí s názvem AZURE_DEVOPS_EXT_PAT
, jak je znázorněno v následujícím příkladu.
- bash: |
az pipelines build list --organization '$(System.TeamFoundationCollectionUri)' --project '$(System.TeamProject)'
displayName: 'Show build list'
env:
AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)
Pokud máte více kroků, které vyžadují ověření, přidejte proměnnou AZURE_DEVOPS_EXT_PAT
prostředí do každého kroku.
Další informace o rozsahu tokenu zabezpečení používaného spuštěným kanálem najdete v tématu Přístupová úložiště, artefakty a další prostředky.
Další informace o ověřování pomocí osobního přístupového tokenu najdete v tématu Přihlášení pomocí tokenu PAT (Personal Access Token).
Azure DevOps CLI s agenty hostovanými ve Windows a Linuxu
Agenti Windows a Linux hostovaní Microsoftem jsou předem nakonfigurovaní pomocí Azure CLI a rozšíření Azure DevOps CLI.
Následující příklad ukazuje, jak se přihlásit k Azure DevOps a spustit několik příkazů. Tento příklad používá ubuntu-latest
image agenta hostovaného Microsoftem, ale můžete ji nahradit některou z ostatních imagí hostovaných systémem Windows nebo Linux.
Tento příklad se ověřuje pomocí Azure DevOps CLI pomocí tokenu zabezpečení System.AccessToken používaného spuštěným kanálem.
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 s agenty hostovanými v macOS
Agenti hostovaní Microsoftem v macOS mají nainstalované Rozhraní příkazového řádku Azure, ale ne rozšíření Azure DevOps CLI. Pokud chcete nainstalovat rozšíření Azure DevOps CLI, spusťte v kanálu následující příkaz před provedením jakýchkoli volání Azure DevOps CLI.
# Install Azure DevOps extension
- bash: az extension add -n azure-devops
displayName: 'Install Azure DevOps extension'
Verze Azure CLI hostovaného agenta
Agenti hostovaní Microsoftem obvykle nasazují týdenní aktualizace softwaru ve virtuálních prostředích. U některých nástrojů se používá nejnovější verze v době nasazení; pro ostatní je nástroj připnutý ke konkrétním verzím.
- Pokud chcete zkontrolovat zahrnutý software a jejich verze pro agenty hostované Microsoftem, včetně nainstalované verze Azure CLI a rozšíření Azure DevOps CLI, postupujte podle odkazů zahrnutý software v tabulce Software.
- Pokud chcete zkontrolovat aktuální verzi Azure CLI, přečtěte si, jak nainstalovat Azure CLI.
Azure CLI na hostovaných imagích můžete upgradovat spuštěním následujících příkazů ve vašem kanálu.
# 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'
Podmíněná instalace rozšíření Azure DevOps CLI
Pokud váš kanál běží na několika imagích virtuálních počítačů hostovaných Microsoftem, některé z nich nemají nainstalované rozšíření Azure DevOps CLI, provedete instalaci podmíněně.
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 s agenty v místním prostředí
Následující metody můžete použít k instalaci nebo upgradu Azure DevOps CLI ve vašem místním agentu.
- Ruční instalace Azure CLI a rozšíření Azure DevOps CLI
- Instalace rozšíření Azure CLI a Azure DevOps CLI ve vašem kanálu
Ruční instalace Azure CLI a rozšíření Azure DevOps CLI
Instalace rozšíření Azure CLI a Azure DevOps CLI na agenta v místním prostředí při zřizování image virtuálního počítače pro agenta je rychlejší než jejich instalace při každém spuštění kanálu.
- Pokud chcete nainstalovat Azure CLI na image agenta v místním prostředí, přečtěte si téma Instalace Azure CLI. Existují samostatné pokyny pro Windows, Linux a macOS.
- Po instalaci Azure CLI nainstalujte rozšíření Azure DevOps CLI.
Instalace rozšíření Azure CLI a Azure DevOps CLI ve vašem kanálu
Následující příklad konfigurace rozšíření Azure CLI a Azure DevOps CLI pro agenta v místním prostředí pomocí kanálu má následující požadavky.
- Instalace Azure CLI pomocí Pythonu
- Python musí být nainstalovaný v agentu podle pokynů v úloze verze Pythonu – Jak můžu nakonfigurovat agenta v místním prostředí pro použití této úlohy? Úloha
UsePythonVersion@0
nenainstaluje Python do vašeho místního agenta. Pokud máte v agentovi v místním prostředí nainstalovanou jenom jednu verzi Pythonu, která je v cestě, nemusíte tutoUsePythonVersion@0
úlohu používat.
- Python musí být nainstalovaný v agentu podle pokynů v úloze verze Pythonu – Jak můžu nakonfigurovat agenta v místním prostředí pro použití této úlohy? Úloha
# 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'
- Instalace rozšíření Azure CLI DevOps
# 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
# ...
Následující příklad nainstaluje Azure CLI následované rozšířením 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
# ...
Přiřazení výsledků volání Rozhraní příkazového řádku Azure DevOps k proměnné
Pokud chcete uložit výsledky volání Rozhraní příkazového řádku Azure DevOps do proměnné kanálu, použijte task.setvariable
syntaxi popsanou v tématu Nastavení proměnných ve skriptech. Následující příklad načte ID skupiny proměnných s názvem Fabrikam-2023 a pak použije tuto hodnotu v následujícím kroku.
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'
Další příklady práce s proměnnými, včetně práce s proměnnými napříč úlohami a fázemi, najdete v tématu Definice proměnných. Příklady syntaxe dotazu použité v předchozím příkladu najdete v tématu Dotazování výstupu příkazu Azure CLI pomocí dotazu JMESPath.