[アーティクル] 10/18/2024
1 人の共同作成者
フィードバック
この記事の内容
マネージド DevOps プールには、プールでパイプラインを実行するための仮想マシン イメージに関するいくつかのオプションが用意されています。 選択した Azure Marketplace VM イメージを使用してプールを作成したり、独自のカスタム Azure コンピューティング ギャラリー イメージを使用したり、Azure Pipelines Microsoft でホストされているエージェントと同じイメージを使用したりできます。
マネージド DevOps プールは、1 つのイメージまたは複数のイメージで構成できます。 プールに複数のイメージがある場合、パイプラインはエイリアスを使用して 実行するイメージを指定します 。
プールのイメージを選択する
Managed DevOps プールを作成するときに、既定のイメージが選択されます。 既定の選択肢をそのまま使用することも、プールの作成時に変更することもできます。 プールの作成後にイメージを構成するには、[設定プール] >に移動し 、[イメージ ライブラリ] から [追加] を選択 し、プールの 1 つ以上のイメージを選択します。
イメージは、Managed DevOps Pools リソースプロパティのセクションで fabricProfile
構成されます。
次の例では、3 つの画像を指定します。 イメージのスキーマの詳細については、この記事の以下のセクションを参照してください。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"name": "fabrikam-managed-pool",
"type": "microsoft.devopsinfrastructure/pools",
"apiVersion": "2024-04-04-preview",
"location": "eastus",
"properties": {
...
"fabricProfile": {
...
"images": [
{
"resourceId": "/subscriptions/subscrition_id_placeholder/Providers/Microsoft.Compute/Locations/eastus/publishers/canonical/artifacttypes/vmimage/offers/0001-com-ubuntu-server-focal/skus/20_04-lts-gen2/versions/latest",
"aliases": [
"ubuntu-20.04-gen2"
]
},
{
"wellKnownImageName": "windows-2022"
},
{
"wellKnownImageName": "ubuntu-22.04"
}
]
}
}
}
]
}
各イメージには、次のプロパティを含めることができます。
プロパティ
説明
aliases
エイリアスの省略可能な一覧。 その後、イメージの完全なリソース ID ではなく、エイリアスを使用してイメージを参照できます。
resourceID
使用するイメージのリソース ID。 Azure Compute Gallery イメージまたは選択したマーケットプレース イメージ を使用 する場合に必要です。
wellKnownImageName
Azure Pipelines イメージのエイリアス。 Azure Pipelines イメージを使用 する場合は必須です。
buffer
スタンバイ エージェントが有効になっている場合 は、buffer
このイメージに割り当てるスタンバイ エージェントの割合を指定します。 すべてのイメージ buffer
値の合計は 100 である必要があります。
次の例では、3 つの画像を定義します。 スタンバイ エージェントが有効になっており、スタンバイ エージェントの 100% がイメージに windows-2022
割り当てられます。
"images": [
{
"resourceId": "/subscriptions/subscrition_id_placeholder/Providers/Microsoft.Compute/Locations/eastus/publishers/canonical/artifacttypes/vmimage/offers/0001-com-ubuntu-server-focal/skus/20_04-lts-gen2/versions/latest",
"aliases": [
"ubuntu-20.04-gen2"
],
"buffer": "0"
},
{
"buffer": "100",
"wellKnownImageName": "windows-2022"
},
{
"buffer": "0",
"wellKnownImageName": "ubuntu-22.04"
}
]
イメージは、Managed DevOps Pools リソースプロパティのセクションで fabric-profile
構成されます。
az mdp pool create \
--fabric-profile fabric-profile.json
# other parameters omitted for space
次の例は、images
fabric-profile.json ファイルの セクションを示し、3 つの画像を指定します。 イメージのスキーマの詳細については、この記事の以下のセクションを参照してください。
{
"vmss": {
"sku": {...},
"images": [
{
"resourceId": "/subscriptions/subscrition_id_placeholder/Providers/Microsoft.Compute/Locations/eastus/publishers/canonical/artifacttypes/vmimage/offers/0001-com-ubuntu-server-focal/skus/20_04-lts-gen2/versions/latest",
"aliases": [
"ubuntu-20.04-gen2"
],
"buffer": "0"
},
{
"buffer": "100",
"wellKnownImageName": "windows-2022"
},
{
"buffer": "0",
"wellKnownImageName": "ubuntu-22.04"
}
],
"osProfile": {...},
"storageProfile": {...}
}
}
各イメージには、次のプロパティを含めることができます。
プロパティ
説明
aliases
エイリアスの省略可能な一覧。 その後、イメージの完全なリソース ID ではなく、エイリアスを使用してイメージを参照できます。
resourceID
使用するイメージのリソース ID。 Azure Compute Gallery イメージまたは選択したマーケットプレース イメージ を使用 する場合に必要です。
wellKnownImageName
Azure Pipelines イメージのエイリアス。 Azure Pipelines イメージを使用 する場合は必須です。
buffer
スタンバイ エージェントが有効になっている場合 は、buffer
このイメージに割り当てるスタンバイ エージェントの割合を指定します。 すべてのイメージ buffer
値の合計は 100 である必要があります。
次の例では、3 つの画像を定義します。 スタンバイ エージェントが有効になっており、スタンバイ エージェントの 100% がイメージに windows-2022
割り当てられます。
{
"vmss": {
"sku": {...},
"images": [
{
"resourceId": "/subscriptions/subscrition_id_placeholder/Providers/Microsoft.Compute/Locations/eastus/publishers/canonical/artifacttypes/vmimage/offers/0001-com-ubuntu-server-focal/skus/20_04-lts-gen2/versions/latest",
"aliases": [
"ubuntu-20.04-gen2"
],
"buffer": "0"
},
{
"buffer": "100",
"wellKnownImageName": "windows-2022"
},
{
"buffer": "0",
"wellKnownImageName": "ubuntu-22.04"
}
],
"osProfile": {...},
"storageProfile": {...}
}
}
1 つのイメージを選択した場合、プール内で実行されるすべてのパイプラインでそのイメージが使用されます。 複数のイメージを選択する場合は、パイプラインごとに使用するイメージを指定できます。 詳細については、「プールごとに複数のイメージを使用する」を参照してください 。
次の種類の画像から選択できます。
Azure Pipelines イメージ - Microsoft がホストするエージェントが使用するのと同じイメージから選択します。
選択したマーケットプレース イメージ - Microsoft が発行した一連の Azure Marketplace VM イメージから選択します。
Azure コンピューティング ギャラリー イメージ - 独自の Azure コンピューティング ギャラリー イメージから選択します。 使用する Azure コンピューティング ギャラリー イメージの DevOpsInfrastructure サービス プリンシパルに閲覧者ロールを割り当てる必要があります。 詳細については、「DevOpsInfrastructure サービス プリンシパルへの閲覧者ロールのアクセス権を付与する」を参照 してください 。
Azure Pipelines イメージ
マネージド DevOps プールには、Azure Pipelines 用に選択された Microsoft ホスト型エージェントと同じソフトウェアを持つ事前構成済みイメージがいくつか用意されています。
各イメージには、次のインストール済みソフトウェアが含まれています。
選択した Marketplace イメージ
マネージド DevOps プールには、プールで使用するために Microsoft が発行した一連の Azure Marketplace VM イメージが用意されています。
[ 選択したマーケットプレース イメージ ] を選択し、目的のイメージを選択して、目的のバージョンを選択します。 常に最新バージョンのイメージを使用するには、[最新] を選択 します。
選択したマーケットプレース イメージを指定するには、プロパティを使用して resourceId
イメージのリソース ID を指定します。
"images": [
{
"resourceId": "/subscriptions/subscrition_id_placeholder/Providers/Microsoft.Compute/Locations/eastus/publishers/canonical/artifacttypes/vmimage/offers/0001-com-ubuntu-server-focal/skus/20_04-lts-gen2/versions/latest"
}
]
選択したマーケットプレース イメージを指定するには、プロパティを使用して resourceId
イメージのリソース ID を指定します。
"images": [
{
"resourceId": "/subscriptions/subscrition_id_placeholder/Providers/Microsoft.Compute/Locations/eastus/publishers/canonical/artifacttypes/vmimage/offers/0001-com-ubuntu-server-focal/skus/20_04-lts-gen2/versions/latest"
}
]
Azure コンピューティング ギャラリーのイメージ
Azure コンピューティング ギャラリー イメージを選択 して、サブスクリプションで使用可能なすべての Azure コンピューティング ギャラリーのイメージを指定します。 次のオペレーティング システムを備えた一般化されたイメージがサポートされています。
Windows Server 2019
Windows Server 2022
Windows 11
Ubuntu 20.04
Ubuntu 22.04
Debian 9
RHEL 8
RHEL 9
SUSE 12
SUSE 15
重要
マネージド DevOps プールでは、一般化された Azure コンピューティング ギャラリー イメージのみが サポートされます 。
Azure コンピューティング ギャラリー イメージを指定するには、プロパティを使用して resourceId
イメージのリソース ID を指定します。
"images": [
{
"resourceId": "/subscriptions/subscrition_id_placeholder/Providers/Microsoft.Compute/Locations/eastus/publishers/canonical/artifacttypes/vmimage/offers/0001-com-ubuntu-server-focal/skus/20_04-lts-gen2/versions/latest"
}
]
選択したマーケットプレース イメージを指定するには、プロパティを使用して resourceId
イメージのリソース ID を指定します。
"images": [
{
"resourceId": "/subscriptions/subscrition_id_placeholder/Providers/Microsoft.Compute/Locations/eastus/publishers/canonical/artifacttypes/vmimage/offers/0001-com-ubuntu-server-focal/skus/20_04-lts-gen2/versions/latest"
}
]
DevOpsInfrastructure サービス プリンシパルへの閲覧者ロールのアクセス権を付与する
重要
使用する Azure コンピューティング ギャラリー イメージの DevOpsInfrastructure サービス プリンシパルに閲覧者ロールを割り当てます。 このアクセスが構成されていない Azure コンピューティング ギャラリー イメージを選択した場合、プールの作成は失敗します。 閲覧者ロールは、イメージ レベルまたはギャラリー内のすべてのイメージのイメージ ギャラリー レベルで個別に割り当てることができます。
Azure Portal で目的のリソースに移動します。 ギャラリー内のすべてのイメージを使用できるようにするには、Azure portal の Azure コンピューティング ギャラリーに移動します。 特定のイメージのみを使用するには、そのイメージに移動します。
[アクセス制御 (IAM)] を選択します。
[追加] >[ロールの割り当ての追加] を選択して、[ロールの割り当ての追加] ページを開きます。
次のロールを割り当てます。 詳細な手順については、「Azure portal を使用して Azure ロールを割り当てる 」を参照してください。
設定
値
ロール
Reader
アクセスの割り当て先
サービス プリンシパル
メンバー
DevOpsInfrastructure
エイリアスを使用してプールごとに複数のイメージを使用する
プールに複数のイメージがある場合は、そのイメージのエイリアスを参照することで、特定のイメージを使用するように Azure DevOps パイプラインを構成できます。
イメージ エイリアスを追加および管理するには、プール設定の [イメージ] セクションに移動し、[...]、[エイリアスの追加] の順に選択 します 。
必要なエイリアスを [エイリアス] リストに追加し、[保存] を選択します 。
次の例は、2 つの Azure Pipelines イメージと 1 つの選択したマーケットプレース イメージを含むプールを示しています。 Azure Pipeline イメージには既定のエイリアスが表示され、選択した Marketplace イメージには ubuntu-20.04-gen2 という名前 の 1 つの構成済みエイリアスがあります。
エイリアスを構成するには、一覧でそれらを aliases
指定します。 次の例では、1 つのエイリアスを持つ 1 つのイメージを定義します ubuntu-20.04-gen2
。
"images": [
{
"resourceId": "/subscriptions/subscrition_id_placeholder/Providers/Microsoft.Compute/Locations/eastus/publishers/canonical/artifacttypes/vmimage/offers/0001-com-ubuntu-server-focal/skus/20_04-lts-gen2/versions/latest",
"aliases": [
"ubuntu-20.04-gen2"
]
}
]
エイリアスを構成するには、一覧でそれらを aliases
指定します。 次の例では、1 つのエイリアスを持つ 1 つのイメージを定義します ubuntu-20.04-gen2
。
"images": [
{
"resourceId": "/subscriptions/subscrition_id_placeholder/Providers/Microsoft.Compute/Locations/eastus/publishers/canonical/artifacttypes/vmimage/offers/0001-com-ubuntu-server-focal/skus/20_04-lts-gen2/versions/latest",
"aliases": [
"ubuntu-20.04-gen2"
]
}
]
Azure Pipelines イメージの定義済みエイリアス
構成するエイリアスに加えて、Azure Pipelines イメージには次の定義済みのエイリアスがあります。
Azure Pipelines イメージ
定義済みのエイリアス
Azure Pipelines - Windows Server 2022
windows-2022
Azure Pipelines - Windows Server 2019
windows-2019
Azure Pipelines - Ubuntu 22.04
ubuntu-22.04
Azure Pipelines - Ubuntu 20.04
ubuntu-20.04
要求を使用してイメージを指定する
プールに複数のイメージがある場合は、特定のイメージで実行するようにパイプラインを構成できます。そのためには、指定された要求ImageOverride
を 使用します。 パイプラインで需要を ImageOverride
指定すると、Managed DevOps プールは、そのイメージを使用するエージェントにのみジョブを送信します。
エイリアスを持つ前の例の Ubuntu 20.04 イメージでパイプラインを ubuntu-20.04-gen2
実行するには、パイプラインのセクションで pool
次の要求を指定します。
pool:
name: fabrikam-dev-pool # Name of Managed DevOps Pool
demands:
- ImageOverride -equals ubuntu-20.04-gen2
重要
名前にスペースが含まれている場合でも、要求にエイリアス名の ImageOverride
周りに引用符を付けないでください。
プール内の Azure Pipelines イメージを使用してパイプラインを実行するには、前の表のエイリアスを使用します。 前の例の Azure Pipelines Windows Server 2022 イメージでパイプラインを実行するには、パイプラインのセクションで次の要求を pool
指定します。
pool:
name: fabrikam-dev-pool # Name of Managed DevOps Pool
demands:
- ImageOverride -equals windows-2022
関連項目