Интерфейс командной строки Azure DevOps в Azure Pipeline YAML
Azure DevOps Services
Если вы хотите использовать Azure DevOps CLI с конвейером YAML, можно использовать следующий пример, чтобы понять, как yamL можно использовать для установки Azure CLI, добавить расширение Azure DevOps и запустить команды Интерфейса командной строки Azure DevOps.
Примечание.
В этой статье показано, как выполнить проверку подлинности с помощью 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
displayName: 'Show build list'
env:
AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)
При наличии нескольких шагов, требующих проверки подлинности, добавьте AZURE_DEVOPS_EXT_PAT
переменную среды на каждый шаг.
Дополнительные сведения о область маркера безопасности, используемого запущенным конвейером, см. в репозиториях Access, артефактах и других ресурсах.
Дополнительные сведения о проверке подлинности с помощью личного маркера доступа см. в статье "Вход с помощью личного маркера доступа(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, размещенные в Майкрософт, установили Azure CLI, но не расширение Интерфейса командной строки Azure DevOps. Чтобы установить расширение ИНТЕРФЕЙСА командной строки Azure DevOps, выполните следующую команду в конвейере перед вызовами Интерфейса командной строки Azure DevOps.
# Install Azure DevOps extension
- bash: az extension add -n azure-devops
displayName: 'Install Azure DevOps extension'
Версия Azure CLI размещенного агента
Агенты , размещенные корпорацией Майкрософт, обычно развертывают еженедельные обновления программного обеспечения в виртуальных средах. Для некоторых средств используется последняя версия во время развертывания; для других пользователей средство закреплено на определенных версиях.
- Чтобы проверка включенное программное обеспечение и их версии для агентов, размещенных корпорацией Майкрософт, включая установленную версию Azure CLI и расширения Azure DevOps CLI, следуйте ссылкам включенного программного обеспечения в таблице Software.
- Чтобы проверка текущую версию Azure 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, можно выполнить этот шаг условно, как показано в следующем примере.
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
задачу.
# 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'
- Python должен быть установлен на агенте в соответствии с инструкциями в задаче версии Python. Как настроить автономный агент для использования этой задачи? Задача
Установка расширения 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 переменной
Чтобы сохранить результаты вызова Azure DevOps CLI к переменной конвейера, используйте task.setvariable
синтаксис, описанный в разделе Set переменных в скриптах. В следующем примере извлекается идентификатор группы переменных с именем 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".
Связанные статьи
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по