Azure パイプライン YAML の Azure DevOps CLI
Azure DevOps Services
YAML パイプラインで Azure DevOps CLI を使用する場合は、次の例を使用して、Azure CLI のインストール、Azure DevOps 拡張機能の追加、Azure DevOps CLI コマンドの実行に YAML を使用する方法を理解できます。
Note
この記事の手順では、Azure DevOps で認証し、Azure DevOps CLI 拡張機能を使用してコマンドを実行 az devops
する方法を示します。 Azure CLI を使用して Azure リソースを操作する場合は、AzureCLI タスクを使用します。
Azure DevOps で認証する
Azure DevOps を呼び出さない Azure DevOps CLI コマンドの中には、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
環境変数を追加します。
実行中のパイプラインで使用されるセキュリティ トークンのスコープの詳細については、「アクセス リポジトリ、成果物、およびその他のリソース」を参照してください。
個人用アクセス トークンを使用した認証の詳細については、「個人用アクセス トークン (PAT) を使用したサインイン」を参照してください。
Windows および Linux でホストされるエージェントを使用した Azure DevOps CLI
Microsoft がホストする Windows および Linux エージェントは、Azure CLI と Azure DevOps CLI 拡張機能で事前構成されています。
次の例は、Azure DevOps にログインし、いくつかのコマンドを実行する方法を示しています。 この例では Microsoft でホストされるエージェント イメージを使用 ubuntu-latest
しますが、他 の Windows または Linux でホストされているイメージに置き換えることができます。
この例では、実行中のパイプラインで使用される System.AccessToken セキュリティ トークンを使用して、Azure DevOps CLI で認証します。
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)
macOS でホストされるエージェントを使用した Azure DevOps CLI
macOS Microsoft がホストするエージェントには Azure CLI がインストールされていますが、Azure DevOps CLI 拡張機能はインストールされていません。 Azure DevOps CLI 拡張機能をインストールするには、Azure DevOps CLI 呼び出しを行う前に、パイプラインで次のコマンドを実行します。
# Install Azure DevOps extension
- bash: az extension add -n azure-devops
displayName: 'Install Azure DevOps extension'
ホストされるエージェントの Azure CLI バージョン
Microsoft がホストするエージェント は、通常、仮想環境上のソフトウェアに毎週更新プログラム をデプロイします。 一部のツールでは、デプロイ時の最新バージョンが使用されます。その他の場合、ツールは特定のバージョンにピン留めされます。
- インストールされているバージョンの Azure CLI および Azure DevOps CLI 拡張機能を含む、Microsoft がホストするエージェントに含まれるソフトウェアとそのバージョンをチェックするには、ソフトウェアの表の含まれるソフトウェア のリンクに従います。
- 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 CLI 拡張機能を条件付きでインストールする
Microsoft がホストする複数の VM イメージで実行されるパイプラインがあり、その一部に 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 CLI のインストール」を参照してください。 Windows、Linux、macOS には個別の手順があります。
- Azure CLI をインストールしたら、Azure DevOps CLI 拡張機能をインストールします。
パイプラインに Azure CLI と Azure DevOps CLI 拡張機能をインストールする
パイプラインを使用してセルフホステッド エージェントで Azure CLI と Azure DevOps CLI 拡張機能を構成する次の例には、次の前提条件があります。
Python を使用して Azure CLI をインストールする
- Python バージョン タスクの手順 に従って、エージェントに Python をインストールする必要があります。このタスクを使用するようにセルフホステッド エージェントを構成するにはどうすればよいですか? このタスクは
UsePythonVersion@0
、セルフホステッド エージェントに Python をインストールしません。 セルフホステッド エージェントにインストールされている Python のバージョンが 1 つだけで、パス内にある場合は、タスクを使用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 CLI 呼び出しの結果を変数に割り当てる
Azure DevOps CLI 呼び出しの結果をパイプライン変数に格納するには、「スクリプトで変数を task.setvariable
設定する」で 説明されている構文を使用します。 次の例では、Fabrikam-2023 という名前の変数グループの ID を取得し、その後の手順でこの値を使用します。
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'
ジョブやステージ間での変数の操作など、変数を操作する例については、「変数の定義」を参照してください。 前の例で使用したクエリ構文の例については、「JMESPath クエリを使用して Azure CLI コマンド出力にクエリを実行する方法」を参照してください。
関連記事
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示