Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure DevOps Services
Если вы хотите использовать Azure DevOps CLI с конвейером YAML, можно использовать расширение Azure DevOps или использовать задачу AzureCLI. Агенты Windows и Linux, размещенные в Майкрософт, предварительно настроены с помощью Azure CLI и расширения Azure DevOps CLI. CLI расширения Azure DevOps выполняет az devops команды.
Вы можете пройти проверку подлинности с помощью PAT или использовать задачу AzureCLI@2 с подключением к службе. Использование подключения к службе является более безопасным вариантом, так как вам не нужно вручную управлять учетными данными.
Проверка подлинности с помощью Azure DevOps
Некоторые команды Azure DevOps CLI, например az devops configure и az devops --helpне требуют проверки подлинности. Они не подключаются к Azure DevOps. Большинство команд взаимодействуют с Azure DevOps и требуют проверки подлинности.
Вы можете пройти проверку подлинности с помощью маркера безопасности System.AccessToken , используемого запущенным конвейером, назначив его переменной среды с именем AZURE_DEVOPS_EXT_PAT, как показано в следующем примере.
Использование System.AccessToken зависит от наличия PAT. В качестве более безопасной альтернативы можно использовать задачу AzureCLI@2 для заполнения подключения к службе.
- bash: |
az pipelines build list --organization '$(System.TeamFoundationCollectionUri)' --project '$(System.TeamProject)'
displayName: 'Show build list'
env:
AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)
При наличии нескольких шагов, требующих проверки подлинности, добавьте AZURE_DEVOPS_EXT_PAT переменную среды на каждый шаг.
Для получения дополнительной информации о применении маркера безопасности, используемого активным конвейером, см. статью Доступ к репозиториям, артефактам и другим ресурсам.
Дополнительные сведения о проверке подлинности с помощью личного маркера доступа (PAT) см. в разделе "Вход с помощью личного маркера доступа".
Вход в Azure DevOps CLI с помощью размещенных агентов Windows и Linux
Агенты Windows и Linux, размещенные в Майкрософт, предварительно настроены с помощью Azure CLI и расширения Azure DevOps CLI.
В следующем примере показано, как войти в Azure DevOps и выполнить несколько команд. В этом примере используется образ агента, размещенный ubuntu-latest корпорацией Майкрософт. Его можно заменить на любой другой хостированный образ Windows или Linux.
В этом примере выполняется проверка подлинности с помощью Azure DevOps CLI. Он использует маркер безопасности System.AccessToken , используемый запущенным конвейером.
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
Агенты macOS, размещенные в среде Microsoft, имеют установленное Azure CLI, но без расширения Azure DevOps CLI. Чтобы установить расширение ИНТЕРФЕЙСА командной строки Azure DevOps, выполните следующую команду в конвейере перед вызовами Интерфейса командной строки Azure DevOps.
# Install Azure DevOps extension
- bash: az extension add -n azure-devops
displayName: 'Install Azure DevOps extension'
Обновление версии размещенного агента Azure CLI
Агенты , размещенные корпорацией Майкрософт, обычно развертывают еженедельные обновления программного обеспечения в виртуальных средах. Для некоторых средств используется последняя версия во время развертывания. В других случаях инструмент привязан к определённым версиям.
- Чтобы проверить включенное программное обеспечение и его версии для агентов, размещённых Microsoft, включая установленную версию Azure CLI и расширения Azure DevOps CLI, следуйте ссылкам включенного программного обеспечения в таблице программного обеспечения.
- Чтобы проверить текущую версию Azure CLI, см. инструкции по установке Azure CLI.
Azure CLI можно обновить на размещенных образах, выполнив следующие команды в конвейере.
# 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'
Условно установите расширение Интерфейса командной строки Azure DevOps
Если ваш конвейер работает на нескольких образах виртуальных машин, размещенных корпорацией Майкрософт, и на некоторых из них не установлено расширение Azure DevOps CLI, вы можете установить его при выполнении определенных условий.
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 с локальными агентами
Для установки или обновления Azure DevOps CLI в локальном агенте можно использовать следующие методы.
- Установка Azure CLI и расширения Azure DevOps CLI вручную
- Установите Azure CLI и расширение Azure DevOps CLI в конвейере
Установка Azure CLI и расширения Azure DevOps CLI вручную
Установка компонентов Azure CLI и Azure DevOps CLI на вашем локальном агенте при подготовке образа виртуальной машины для этого агента происходит быстрее, чем установка их каждый раз при запуске конвейера.
Чтобы установить Azure CLI на образ локального агента, см. статью "Установка Azure CLI". Существуют отдельные инструкции для Windows, Linux и macOS.
После установки Azure CLI установите расширение Azure DevOps CLI.
Установите Azure CLI и расширение Azure DevOps CLI в вашей конвейерной системе
В следующем примере настройки azure CLI и расширения Azure DevOps CLI для локального агента с помощью конвейера имеются следующие предварительные требования.
- Установите Azure CLI с помощью Python. Python должен быть установлен на агенте в соответствии с инструкциями в задаче версии Python. Как настроить локальный агент для использования этой задачи? Задача
UsePythonVersion@0не устанавливает Python на локальный агент. Если на вашем локальном агенте установлена только одна версия Python и она добавлена в системный путь, вам не нужно использовать задачуUsePythonVersion@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'
Установите расширение Azure CLI DevOps:
- Установлен Azure CLI версии 2.10.1 или более поздней.
- Существует версия
bash, установленная на агенте и в системном пути. Для использования задачи bash требуется установить 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
# ...
В следующем примере устанавливается Azure CLI, за которым следует расширение 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
# ...
Присвоить результаты вызова команд Azure DevOps CLI переменной
Чтобы сохранить результаты вызова Azure DevOps CLI в переменной конвейера, используйте task.setvariable синтаксис, описанный в разделе Установка переменных в скриптах. Следующий пример получает идентификатор группы переменных с именем Fabrikam-2023 и использует это значение в следующем шаге.
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'
Аутентификация через служебное подключение
При использовании подключения к службе подключение службы предоставляет необходимые учетные данные для команд Azure CLI и Azure DevOps CLI в задаче AzureCLI@2, не требуя ручного управления учетными данными в конвейере.
Note
При использовании подключения службы для проверки подлинности AzureCLI@2необходимо вручную добавить учетную запись службы в организацию Azure DevOps.
Этот пример кода определяет новый параметр serviceConnectionс именем существующего подключения к службе. Параметр упоминается в задаче AzureCLI@2. Задача перечисляет все проекты (az devops project list) и пулы (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
Присвоить результаты вызова команд Azure DevOps CLI переменной
Чтобы сохранить результаты вызова Azure DevOps CLI в переменной конвейера, используйте task.setvariable синтаксис, описанный в разделе Установка переменных в скриптах. В следующем примере возвращается идентификатор группы переменных с именем Kubernetes и используется это значение на следующем шаге.
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)'
Дополнительные примеры работы с переменными, включая работу с переменными между заданиями и этапами, см. в разделе "Определение переменных". Примеры синтаксиса запроса, используемого в предыдущем примере, см. в статье "Как запросить выходные данные команды Azure CLI с помощью запроса JMESPath".
Связанный контент
- System.AccessToken
- Доступ к репозиториям, артефактам и другим ресурсам
- Определение переменных
- Справочник по расширению интерфейса командной строки Azure DevOps
- Справочник по расширению командной строки Azure DevOps az pipelines
- Как запросить выходные данные команды Azure CLI с помощью запроса JMESPath