次の方法で共有


クイック スタート: Azure CLI を使用してマネージド DevOps プールを作成する

この記事では、Azure CLI を使用してマネージド DevOps プールを作成し、その中でパイプラインを実行する方法について説明します。

前提条件

この記事の手順を完了する前に、「前提条件」の記事の説明に従って、マネージド DevOps プールで使用するように Azure サブスクリプションと Azure DevOps 組織を構成しておく必要があります。 これらの手順は、Azure サブスクリプションと Azure DevOps 組織ごとに 1 回だけ完了する必要があります。

Azure Cloud Shell でのインストールまたは実行

Azure CLI の使用方法を学習する最も簡単な方法は、ブラウザーを使用して Azure Cloud ShellBash 環境を実行することです。 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する必要はありません。

  1. Azure CLI にサインインします。

    az login
    
  2. 複数の Azure サブスクリプションがある場合は、既定の Azure サブスクリプションを設定します。

    az account set --subscription "My subscription name"
    

    サブスクリプションの一覧を取得するには、次のコマンドを実行します。

    az account list -o table
    

    複数のテナントがある場合、または Azure CLI を使用した Azure サブスクリプションの操作の詳細については、「Azure CLI を使用して Azure サブスクリプションを管理する方法」を参照してください

環境変数を定義する

  1. 次のコマンドを実行して、このクイックスタートのリソースの名前を生成します。 この例では、リージョンを使用します 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"
    
  2. 次のコマンドを実行して、リソース名を確認します。

    echo $RESOURCE_GROUP_NAME
    echo $POOL_NAME
    echo $DEV_CENTER_NAME
    echo $DEV_CENTER_PROJECT_NAME
    echo $REGION
    

リソース グループを作成する

  1. 次のコマンドを実行して、このクイック スタートで使用されるリソースを含むリソース グループを作成します。

    az group create --name $RESOURCE_GROUP_NAME --location $REGION
    

デベロッパー センターとデベロッパー センター プロジェクトを作成する

  1. Azure CLI devcenter 拡張機能をインストールし、既にインストールされている場合は、最新バージョンにアップグレードされていることを確認します。

    az extension add --name devcenter --upgrade
    
  2. 次のコマンドを実行して、デベロッパー センターとデベロッパー センター プロジェクトを作成します。

    # 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 は、プールがステートフルかステートレスかを指定し、スタンバイ エージェント のスケジュールを含みます。 これは、目的のエージェント構成に応じて、どちらかStatefulStatelessという名前の 1 つのキーを持つディクショナリです。 プロパティの詳細については、「スケーリングagent-profile構成」を参照してください
  • fabric-profile は、エージェント のサイズ、VM イメージ、OS ディスク、接続されているストレージを指定します。 プロパティの詳細については、「プール設定のfabric-profile構成」および「追加ストレージ構成」を参照してください
  • organization-profile は、プールを使用できる Azure DevOps の組織とプロジェクトを指定します。 設定の詳細については、「セキュリティ設定のorganization-profile構成 - 組織のアクセスを構成する」を参照してください

次の 3 つのファイルを作成し、Azure CLI コマンドを実行してプールを作成するフォルダーに保存します。

  1. 次の内容を含むファイル名 agent-profile.json を作成します。

    {
      "Stateless": {}
    }
    

    この構成では、プールの ステートレス エージェント を指定します。

  2. 次の内容を含む 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 ディスクの種類を使用してプールを指定します。

  3. 次の内容を含む organization-profile.json という名前のファイルを作成します。 Azure DevOps 組織の名前に置き換えます <organization-name>

    {
      "azure-dev-ops": {
        "organizations": [
          {
            "url": "https://dev.azure.com/<organization-name>",
            "projects": [],
            "parallelism": 1
          }
        ],
        "permissionProfile": {
          "kind": "CreatorOnly"
        }
      }
    }
    

    この構成では、Azure DevOps 組織内のすべてのプロジェクトで使用できる プールを指定します

マネージド DevOps プールを作成する

  1. 拡張機能を mdp インストールし、既にインストールされている場合は、最新バージョンにアップグレードされていることを確認します。

     az extension add --name mdp --upgrade
    
  2. の 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 で作成したプールを表示する

  1. Azure portal にサインインします。

  2. Managed DevOps プール検索し、使用可能なオプションから選択します。

  3. 一覧から新しい Managed DevOps プールを選択します。

  4. [JSON ビュー] を選択して、マネージド DevOps プール リソースの JSON 形式を表示します。

    プールの概要の [JSON ビュー] ボタンのスクリーンショット。

Azure DevOps でエージェント プールを表示する

  1. Azure DevOps ポータルに移動し、Azure DevOps 組織 (https://dev.azure.com/{your-organization}) にサインインします。

  2. Azure DevOps 組織の設定に>移動します。

    [組織の設定] ボタンのスクリーンショット。

  3. Pipelines>エージェント プール移動し、新しいプールが一覧表示されていることを確認します。 Managed DevOps プールを作成したばかりの場合、新しいプールがエージェントの一覧に表示されるまでに少し時間がかかることがあります。

    エージェント プールの一覧のスクリーンショット。

新しいプールでパイプラインを実行する

この手順では、Azure DevOps プロジェクトの既定のリポジトリに単純なパイプラインを作成し、新しい Managed DevOps プールで実行します。

  1. Azure DevOps ポータルに移動し、Azure DevOps 組織 (https://dev.azure.com/{your-organization}) にサインインします。

  2. パイプラインを実行するプロジェクトに移動し、[パイプライン] を選択します。

    [プロジェクト] リストのスクリーンショット。

  3. [新しいパイプライン] を選択します (最初のパイプラインの場合は [パイプラインの作成] を選択します)。

    新しいパイプライン ボタンのスクリーンショット。

  4. [Azure Repos Git] を選択 します

    リポジトリの種類のスクリーンショット。

  5. プロジェクトと同じ名前のリポジトリを選択します。 この例では、プロジェクトの名前は FabrikamFiber であるため、同じ名前のリポジトリを選択します。

    FabrikamFiber リポジトリのスクリーンショット。

  6. スターター パイプラインを選択します。

    パイプライン テンプレートの一覧のスクリーンショット。

  7. 既定では、スターター テンプレートは 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
    
  8. [保存して実行] を選択し、[保存] を選択してもう一度実行して確認します。

    [保存して実行] ボタンのスクリーンショット。

  9. これがこのプールで最初に実行されるパイプラインの場合は、パイプラインを実行する前にアクセス許可を付与するように求められる場合があります。

  10. Azure DevOps でのパイプラインの実行を監視します。Azure portal に切り替えて、[エージェント] ビューで実行中のエージェントを確認できます。

リソースをクリーンアップする

このアプリケーションを引き続き使用しない場合は、リソース グループ、デベロッパー センター、デベロッパー センター プロジェクト、および Managed DevOps プールを削除します。 このクイック スタートでは、新しいリソース グループ内のすべてのリソースを作成したので、az group delete コマンドを使用してリソース グループとそのすべてのリソースを削除することで、それらをすべて削除できます。

az group delete -n $RESOURCE_GROUP_NAME

関連項目