クイック スタート: Azure CLI を使用してマネージド DevOps プールを作成する
この記事では、Azure CLI を使用してマネージド DevOps プールを作成し、その中でパイプラインを実行する方法について説明します。
前提条件
この記事の手順を完了する前に、「前提条件」の記事の説明に従って、マネージド DevOps プールで使用するように Azure サブスクリプションと Azure DevOps 組織を構成しておく必要があります。 これらの手順は、Azure サブスクリプションと Azure DevOps 組織ごとに 1 回だけ完了する必要があります。
Azure Cloud Shell でのインストールまたは実行
Azure CLI の使用方法を学習する最も簡単な方法は、ブラウザーを使用して Azure Cloud Shell で Bash 環境を実行することです。 Cloud Shell については、「Azure Cloud Shell の Bash のクイックスタート」を参照してください。
Azure CLI をインストールする準備ができたら、Windows、Linux、macOS、Docker コンテナーのインストール手順を参照してください。
実行 az --version
してバージョンを確認します。 Azure Cloud Shell には常に最新バージョンの Azure CLI がプレインストールされています。
az version
Azure CLI にサインインする
コマンド プロンプトを開き (Windows の場合は Windows コマンド プロンプトまたは PowerShell を使用)、次のコマンドを実行します。 Azure Cloud Shell を使用している場合は、別のアカウントを使用しない限り、実行az login
する必要はありません。
Azure CLI にサインインします。
az login
複数の Azure サブスクリプションがある場合は、既定の Azure サブスクリプションを設定します。
az account set --subscription "My subscription name"
サブスクリプションの一覧を取得するには、次のコマンドを実行します。
az account list -o table
複数のテナントがある場合、または Azure CLI を使用した Azure サブスクリプションの操作の詳細については、「Azure CLI を使用して Azure サブスクリプションを管理する方法」を参照してください。
環境変数を定義する
次のコマンドを実行して、このクイックスタートのリソースの名前を生成します。 この例では、リージョンを使用します
EastUS2
。 目的のリージョンに置き換えますEastUS2
。export RANDOM_ID="$(openssl rand -hex 3)" export RESOURCE_GROUP_NAME="myManagedDevOpsPoolGroup$RANDOM_ID" export REGION=EastUS2 export POOL_NAME="mdpPool$RANDOM_ID" export DEV_CENTER_NAME="mdpDevCenter$RANDOM_ID" export DEV_CENTER_PROJECT_NAME="mdpDevCenterProject$RANDOM_ID"
次のコマンドを実行して、リソース名を確認します。
echo $RESOURCE_GROUP_NAME echo $POOL_NAME echo $DEV_CENTER_NAME echo $DEV_CENTER_PROJECT_NAME echo $REGION
リソース グループを作成する
次のコマンドを実行して、このクイック スタートで使用されるリソースを含むリソース グループを作成します。
az group create --name $RESOURCE_GROUP_NAME --location $REGION
デベロッパー センターとデベロッパー センター プロジェクトを作成する
Azure CLI
devcenter
拡張機能をインストールし、既にインストールされている場合は、最新バージョンにアップグレードされていることを確認します。az extension add --name devcenter --upgrade
次のコマンドを実行して、デベロッパー センターとデベロッパー センター プロジェクトを作成します。
# Create a dev center az devcenter admin devcenter create -n $DEV_CENTER_NAME \ -g $RESOURCE_GROUP_NAME \ -l $REGION # Save the id of the newly created dev center DEVCID=$( \ az devcenter admin devcenter show -n $DEV_CENTER_NAME \ -g $RESOURCE_GROUP_NAME \ --query id -o tsv) # Create a dev center project az devcenter admin project create -n $DEV_CENTER_PROJECT_NAME \ --description "My dev center project." \ -g $RESOURCE_GROUP_NAME \ -l $REGION \ --dev-center-id $DEVCID # Save the dev center project for use when creating # the Managed DevOps Pool DEVCPID=$( \ az devcenter admin project show -n $DEV_CENTER_PROJECT_NAME \ -g $RESOURCE_GROUP_NAME \ --query id -o tsv)
しばらくすると、デベロッパー センターが作成されたことを示す出力が表示されます。
id
作成されたデベロッパー センターは保存DEVCID
され、デベロッパー センター プロジェクトの作成に使用されます。{ "devCenterUri": "https://...", "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/resourceGroupName/providers/Microsoft.DevCenter/devcenters/devCenterName", "location": "eastus", "name": "devCenterName", "provisioningState": "Succeeded", "resourceGroup": "resourceGroupName", "systemData": { ... }, "type": "microsoft.devcenter/devcenters" }
しばらくすると、デベロッパー センター プロジェクトが作成されたことが出力に示されます。
id
作成されたデベロッパー センター プロジェクトは保存され、次のセクションでDEVCPID
Managed DevOps プールを作成するときに使用されます。{ "description": "My dev center project.", "devCenterId": "...", "devCenterUri": "https://...", "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/resourceGroupName/providers/Microsoft.DevCenter/projects/devCenterProjectName", "location": "eastus", "name": "devCenterProjectName", "provisioningState": "Succeeded", "resourceGroup": "resourceGroupName", "systemData": { ... }, "type": "microsoft.devcenter/projects" }
マネージド DevOps プール構成ファイルを準備する
この mdp pool create
メソッドには、プールのさまざまな側面を構成する JSON 値を受け取るいくつかのパラメーターがあります。
agent-profile
は、プールがステートフルかステートレスかを指定し、スタンバイ エージェント のスケジュールを含みます。 これは、目的のエージェント構成に応じて、どちらかStateful
Stateless
という名前の 1 つのキーを持つディクショナリです。 プロパティの詳細については、「スケーリングのagent-profile
構成」を参照してください。fabric-profile
は、エージェント のサイズ、VM イメージ、OS ディスク、接続されているストレージを指定します。 プロパティの詳細については、「プール設定のfabric-profile
構成」および「追加ストレージの構成」を参照してください。organization-profile
は、プールを使用できる Azure DevOps の組織とプロジェクトを指定します。 設定の詳細については、「セキュリティ設定のorganization-profile
構成 - 組織のアクセスを構成する」を参照してください。
次の 3 つのファイルを作成し、Azure CLI コマンドを実行してプールを作成するフォルダーに保存します。
次の内容を含むファイル名 agent-profile.json を作成します。
{ "Stateless": {} }
この構成では、プールの ステートレス エージェント を指定します。
次の内容を含む fabric-profile.json という名前のファイルを作成します。
{ "vmss": { "sku": { "name": "Standard_D2as_v5" }, "images": [ { "aliases": [ "ubuntu-22.04" ], "buffer": "*", "wellKnownImageName": "ubuntu-22.04/latest" } ], "osProfile": { "secretsManagementSettings": { "observedCertificates": [], "keyExportable": false }, "logonType": "Service" }, "storageProfile": { "osDiskStorageAccountType": "Standard", "dataDisks": [] } } }
この構成では、Standard_D2as_v5 イメージ、ubuntu-22.04 Azure Pipelines イメージ、および接続されたデータ ディスクのない Standard OS ディスクの種類を使用してプールを指定します。
次の内容を含む organization-profile.json という名前のファイルを作成します。 Azure DevOps 組織の名前に置き換えます
<organization-name>
。{ "AzureDevOps": { "organizations": [ { "url": "https://dev.azure.com/<organization-name>", "projects": [], "parallelism": 1 } ], "permissionProfile": { "kind": "CreatorOnly" } } }
この構成では、Azure DevOps 組織内のすべてのプロジェクトで使用できる プールを指定します。
マネージド DevOps プールを作成する
拡張機能を
mdp
インストールし、既にインストールされている場合は、最新バージョンにアップグレードされていることを確認します。az extension add --name mdp --upgrade
次 の az mdp pool create コマンドを実行して、Managed DevOps プールを作成 します。
az mdp pool create -n $POOL_NAME \ -g $RESOURCE_GROUP_NAME \ -l $REGION \ --devcenter-project-id $DEVCPID \ --maximum-concurrency 1 \ --agent-profile agent-profile.json \ --fabric-profile fabric-profile.json \ --organization-profile organization-profile.json
必要な Azure VM SKU と最大エージェント数でプールを構成する容量がないサブスクリプションの場合、プールの作成は次のメッセージのようなエラーで失敗します。
Cores needed to complete this request is 2, which exceeds the current limit of 0 for SKU family standardDDSv4Family in region eastus. Please choose a different region if possible, or request additional quota at https://portal.azure.com/#view/Microsoft_Azure_Support/NewSupportRequestV3Blade/issueType/quota/subscriptionId/subscription_id_placeholder/topicId/3eadc5d3-b59a-3658-d8c6-9c729ba35b97
. この問題を解決するには、「マネージド DevOps プール クォータを確認する」を参照してください。
Azure portal で作成したプールを表示する
Azure portal にサインインします。
Managed DevOps プールを検索し、使用可能なオプションから選択します。
一覧から新しい Managed DevOps プールを選択します。
[JSON ビュー] を選択して、マネージド DevOps プール リソースの JSON 形式を表示します。
Azure DevOps でエージェント プールを表示する
Azure DevOps ポータルに移動し、Azure DevOps 組織 (
https://dev.azure.com/{your-organization}
) にサインインします。Azure DevOps 組織の設定に>移動します。
Pipelines>エージェント プールに移動し、新しいプールが一覧表示されていることを確認します。 Managed DevOps プールを作成したばかりの場合、新しいプールがエージェントの一覧に表示されるまでに少し時間がかかることがあります。
新しいプールでパイプラインを実行する
この手順では、Azure DevOps プロジェクトの既定のリポジトリに単純なパイプラインを作成し、新しい Managed DevOps プールで実行します。
Azure DevOps ポータルに移動し、Azure DevOps 組織 (
https://dev.azure.com/{your-organization}
) にサインインします。パイプラインを実行するプロジェクトに移動し、[パイプライン] を選択します。
[新しいパイプライン] を選択します (最初のパイプラインの場合は [パイプラインの作成] を選択します)。
[Azure Repos Git] を選択 します。
プロジェクトと同じ名前のリポジトリを選択します。 この例では、プロジェクトの名前は FabrikamFiber であるため、同じ名前のリポジトリを選択します。
スターター パイプラインを選択します。
既定では、スターター テンプレートは Microsoft でホストされている Linux エージェントを使用します。 パイプライン テンプレートを編集し、前の
pool
手順で作成したプールを参照するようにセクションを変更します。# Change these two lines as shown in the following example. pool: vmImage: ubuntu-latest
この例では、Managed DevOps プールに名前が付
fabrikam-managed-pool
けられているのでname: fabrikam-managed-pools
、Managed DevOps プールの名前を 〚に置き換えvmImage: ubuntu-latest
、指定します。# Replace fabrikam-managed-pools with the name # of your Managed DevOps Pool. pool: name: fabrikam-managed-pool
[保存して実行] を選択し、[保存] を選択してもう一度実行して確認します。
これがこのプールで最初に実行されるパイプラインの場合は、パイプラインを実行する前にアクセス許可を付与するように求められる場合があります。
Azure DevOps でのパイプラインの実行を監視します。Azure portal に切り替えて、[エージェント] ビューで実行中のエージェントを確認できます。
リソースをクリーンアップする
このアプリケーションを引き続き使用しない場合は、リソース グループ、デベロッパー センター、デベロッパー センター プロジェクト、および Managed DevOps プールを削除します。 このクイック スタートでは、新しいリソース グループ内のすべてのリソースを作成したので、az group delete コマンドを使用してリソース グループとそのすべてのリソースを削除することで、それらをすべて削除できます。
az group delete -n $RESOURCE_GROUP_NAME