Интерфейс командной строки Azure DevOps в Azure Pipeline YAML
Azure DevOps Services
Если вы хотите использовать Azure DevOps CLI с конвейером YAML, можно использовать следующие примеры для установки Azure CLI, добавления расширения Azure DevOps и запуска команд Azure DevOps CLI.
Примечание.
В этой статье показано, как выполнить проверку подлинности с помощью Azure DevOps и выполнить az devops
команды с помощью расширения ИНТЕРФЕЙСА командной строки Azure DevOps. Если вы хотите использовать Azure CLI для взаимодействия с ресурсами Azure, используйте задачу AzureCLI.
Проверка подлинности с помощью Azure DevOps
Некоторые команды Azure DevOps CLI, которые не вызываются в Azure DevOps, например az devops configure
и az devops -h
не требуют проверки подлинности, но большинство команд взаимодействуют с Azure DevOps и требуют проверки подлинности. Вы можете пройти проверку подлинности с помощью маркера безопасности System.AccessToken , используемого запущенным конвейером, назначив его переменной среды с именем AZURE_DEVOPS_EXT_PAT
, как показано в следующем примере.
- 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 с размещенными агентами Windows и Linux
Агенты Windows и Linux, размещенные в Майкрософт, предварительно настроены с помощью Azure CLI и расширения Azure DevOps CLI.
В следующем примере показано, как войти в Azure DevOps и выполнить несколько команд. В этом примере используется ubuntu-latest
образ агента, размещенный корпорацией Майкрософт, но его можно заменить любым из других размещенных образов Windows или Linux.
В этом примере выполняется проверка подлинности с помощью интерфейса командной строки Azure DevOps с помощью маркера безопасности 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:
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 с локальными агентами
Для установки или обновления 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.
Установите Azure CLI и расширение Azure DevOps CLI в вашей конвейерной системе
В следующем примере настройки azure CLI и расширения Azure DevOps CLI для локального агента с помощью конвейера имеются следующие предварительные требования.
- Установка Azure CLI с помощью Python
- Python должен быть установлен на агенте в соответствии с инструкциями в задаче версии Python. Как настроить автономный агент для использования этой задачи? Задача
UsePythonVersion@0
не устанавливает Python на локальный агент. Если на вашем локальном агенте установлена только одна версия Python и она добавлена в системный путь, вам не нужно использовать задачуUsePythonVersion@0
.
- Python должен быть установлен на агенте в соответствии с инструкциями в задаче версии Python. Как настроить автономный агент для использования этой задачи? Задача
# 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 с помощью запроса JMESPath".
Связанные статьи
- System.AccessToken
- Доступ к репозиториям, артефактам и другим ресурсам
- Определение переменных
- Справочник по расширению интерфейса командной строки Azure DevOps
- Справочник по расширению командной строки Azure DevOps az pipelines
- Как запросить выходные данные команды Azure CLI с помощью запроса JMESPath