Azure DevOps CLI az Azure Pipeline YAML-ben
Azure DevOps Services
Ha YAML-folyamattal szeretné használni az Azure DevOps CLI-t, az alábbi példák segítségével telepítheti az Azure CLI-t, hozzáadhatja az Azure DevOps bővítményt, és futtathat Azure DevOps CLI-parancsokat.
Feljegyzés
A cikk lépései bemutatják, hogyan hitelesíthető az Azure DevOpsszal, és hogyan futtathat az devops
parancsokat az Azure DevOps CLI-bővítmény használatával. Ha az Azure CLI használatával szeretne azure-erőforrásokat használni, használja az AzureCLI-feladatot.
Hitelesítés az Azure DevOpsszal
Egyes Azure DevOps CLI-parancsok, amelyek nem hívnak be az Azure DevOpsba, például az devops configure
és az devops -h
, nem igényelnek hitelesítést, de a legtöbb parancs az Azure DevOps használatával működik, és hitelesítést igényel. A futtatási folyamat által használt System.AccessToken biztonsági jogkivonat használatával hitelesítheti, ha hozzárendeli egy nevesített AZURE_DEVOPS_EXT_PAT
környezeti változóhoz, ahogyan az az alábbi példában is látható.
- bash: |
az pipelines build list --organization '$(System.TeamFoundationCollectionUri)' --project '$(System.TeamProject)'
displayName: 'Show build list'
env:
AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)
Ha több, hitelesítést igénylő lépéssel rendelkezik, minden lépéshez adja hozzá a AZURE_DEVOPS_EXT_PAT
környezeti változót.
A futó folyamat által használt biztonsági jogkivonat hatókörével kapcsolatos további információkért lásd : Access-adattárak, összetevők és egyéb erőforrások.
A személyes hozzáférési jogkivonattal történő hitelesítéssel kapcsolatos további információkért lásd: Bejelentkezés személyes hozzáférési jogkivonattal (PAT).
Azure DevOps CLI Windows és Linux által üzemeltetett ügynökökkel
A Microsoft által üzemeltetett Windows- és Linux-ügynökök előre konfigurálva vannak az Azure CLI-vel és az Azure DevOps CLI-bővítménysel.
Az alábbi példa bemutatja, hogyan jelentkezhet be az Azure DevOpsba, és futtathat néhány parancsot. Ez a példa a ubuntu-latest
Microsoft által üzemeltetett ügynök lemezképét használja, de lecserélheti bármelyik másik Windows- vagy Linux-alapú lemezképre.
Ez a példa az Azure DevOps CLI-vel hitelesíti a futó folyamat által használt System.AccessToken biztonsági jogkivonatot.
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 macOS által üzemeltetett ügynökökkel
A macOS Microsoft által üzemeltetett ügynökök telepítve vannak az Azure CLI-vel, de az Azure DevOps CLI-bővítmény nem. Az Azure DevOps CLI-bővítmény telepítéséhez futtassa a következő parancsot a folyamatban, mielőtt bármilyen Azure DevOps CLI-hívást indítanának.
# Install Azure DevOps extension
- bash: az extension add -n azure-devops
displayName: 'Install Azure DevOps extension'
Üzemeltetett ügynök Azure CLI-verziója
A Microsoft által üzemeltetett ügynökök általában heti frissítéseket helyeznek üzembe a szoftveren a virtuális környezetekben. Egyes eszközök esetében a rendszer az üzembe helyezéskor a legújabb verziót használja; mások számára az eszköz meghatározott verziókra van rögzítve.
- Ha ellenőrizni szeretné a Microsoft által üzemeltetett ügynökökhöz tartozó szoftvereket és azok verzióit, beleértve az Azure CLI és az Azure DevOps CLI bővítmény telepített verzióját, kövesse a szoftvertáblában szereplő szoftverhivatkozásokat.
- Az Azure CLI aktuális verziójának ellenőrzéséhez tekintse meg az Azure CLI telepítését ismertető témakört.
Az Azure CLI frissíthető az üzemeltetett rendszerképeken az alábbi parancsok futtatásával a folyamatban.
# 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'
Az Azure DevOps CLI-bővítmény feltételes telepítése
Ha a folyamat több Microsoft által üzemeltetett virtuálisgép-lemezképen fut, amelyek közül néhány nem rendelkezik az Azure DevOps CLI-bővítmény telepítésével, a telepítést feltételesen hajtja végre.
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 saját üzemeltetésű ügynökökkel
Az alábbi módszerekkel telepítheti vagy frissítheti az Azure DevOps CLI-t a saját üzemeltetésű ügynökében.
- Az Azure CLI és az Azure DevOps CLI bővítmény manuális telepítése
- Az Azure CLI és az Azure DevOps CLI bővítmény telepítése a folyamatba
Az Azure CLI és az Azure DevOps CLI bővítmény manuális telepítése
Az Azure CLI és az Azure DevOps CLI bővítmény telepítése a saját üzemeltetésű ügynökre az ügynök virtuálisgép-lemezképének kiépítésekor gyorsabb, mint a folyamat minden futtatásakor.
- Ha telepíteni szeretné az Azure CLI-t a saját üzemeltetésű ügynök rendszerképére, olvassa el az Azure CLI telepítése című témakört. A Windows, Linux és macOS rendszerre külön utasítások vannak.
- Az Azure CLI telepítése után telepítse az Azure DevOps CLI-bővítményt.
Az Azure CLI és az Azure DevOps CLI bővítmény telepítése a folyamatba
A következő példa az Azure CLI és az Azure DevOps CLI-bővítmény konfigurálására egy saját üzemeltetésű ügynökön folyamat használatával az alábbi előfeltételekkel rendelkezik.
- Az Azure CLI telepítése a Python használatával
- A Pythont a Python verziófeladat utasításainak megfelelően kell telepíteni az ügynökre – Hogyan konfigurálhatok saját üzemeltetésű ügynököt a feladat használatára? A
UsePythonVersion@0
feladat nem telepíti a Pythont a saját üzemeltetésű ügynökére. Ha a Pythonnak csak egy verziója van telepítve a saját üzemeltetésű ügynökén, és az elérési úton van, akkor nem kell használnia aUsePythonVersion@0
feladatot.
- A Pythont a Python verziófeladat utasításainak megfelelően kell telepíteni az ügynökre – Hogyan konfigurálhatok saját üzemeltetésű ügynököt a feladat használatára? A
# 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'
- Az Azure CLI DevOps-bővítmény telepítése
- Az Azure CLI 2.10.1-es vagy újabb verziója telepítve van.
- Az ügynökön és az elérési úton telepítve van egy verzió
bash
. A bash-feladat használatához bash-telepítés szükséges.
# 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
# ...
Az alábbi példa telepíti az Azure CLI-t, majd az Azure DevOps CLI-bővítményt.
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
# ...
Azure DevOps CLI-hívás eredményeinek hozzárendelése változóhoz
Az Azure DevOps CLI-hívás eredményeinek egy folyamatváltozóhoz való tárolásához használja a task.setvariable
Változók beállítása szkriptekben című szakaszban leírt szintaxist. Az alábbi példa egy Fabrikam-2023 nevű változócsoport azonosítóját kéri le, majd ezt az értéket használja egy következő lépésben.
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'
További példák a változók használatára, beleértve a különböző feladatok és szakaszok változóinak kezelését, lásd : Változók definiálása. Az előző példában használt lekérdezési szintaxisra példa: Az Azure CLI-parancs kimenetének lekérdezése JMESPath-lekérdezés használatával.