[アーティクル] 11/14/2024
3 人の共同作成者
フィードバック
この記事の内容
マネージド DevOps プールには、プールでパイプラインを実行するための仮想マシン イメージに関するいくつかのオプションが用意されています。 選択した Azure Marketplace VM イメージを使用してプールを作成したり、独自のカスタム Azure コンピューティング ギャラリー イメージを使用したり、Azure Pipelines Microsoft でホストされているエージェントと同じイメージを使用したりできます。
マネージド DevOps プールは、1 つのイメージまたは複数のイメージで構成できます。 プールに複数のイメージがある場合、パイプラインでは、 aliases を使用して実行するイメージを指定します。
プールのイメージを選択する
Managed DevOps プールを作成するときに、既定のイメージが選択されます。 既定の選択肢をそのまま使用することも、プールの作成時に変更することもできます。 プールの作成後にイメージを構成するには、 Settings >Pool に移動し、 イメージ ライブラリから追加 を選択し、プールの 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-10-19",
"location": "eastus",
"properties": {
...
"fabricProfile": {
...
"images": [
{
"resourceId": "/subscriptions/subscription_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 コンピューティング ギャラリー イメージ または選択したマーケットプレース イメージ使用する場合に必要です 。
wellKnownImageName
Azure Pipelines イメージのエイリアス。 Azure Pipelines イメージ を使用する場合に必要です。
buffer
スタンバイ エージェント が有効になっている場合、buffer
は、このイメージに割り当てるスタンバイ エージェントの割合を指定します。 すべての画像 buffer
値の合計は 100 である必要があります。
次の例では、3 つの画像を定義します。 スタンバイ エージェントが有効になっており、スタンバイ エージェントの 100% が windows-2022
イメージに割り当てられています。
"images": [
{
"resourceId": "/subscriptions/subscription_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
次の例は、fabric-profile.json ファイルの images
セクションを示し、3 つの画像を指定します。 イメージのスキーマの詳細については、この記事の以下のセクションを参照してください。
{
"vmss": {
"sku": {...},
"images": [
{
"resourceId": "/subscriptions/subscription_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 コンピューティング ギャラリー イメージ または選択したマーケットプレース イメージ使用する場合に必要です 。
wellKnownImageName
Azure Pipelines イメージのエイリアス。 Azure Pipelines イメージ を使用する場合に必要です。
buffer
スタンバイ エージェント が有効になっている場合、buffer
は、このイメージに割り当てるスタンバイ エージェントの割合を指定します。 すべての画像 buffer
値の合計は 100 である必要があります。
次の例では、3 つの画像を定義します。 スタンバイ エージェントが有効になっており、スタンバイ エージェントの 100% が windows-2022
イメージに割り当てられています。
{
"vmss": {
"sku": {...},
"images": [
{
"resourceId": "/subscriptions/subscription_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 イメージ
マネージド DevOps プールには、Azure Pipelines 用に選択された Microsoft ホスト型エージェントと同じソフトウェアを持つ事前構成済みイメージがいくつか用意されています。
Azure Pipelines イメージを指定するには、 wellKnownImageName
プロパティを使用してイメージのエイリアスを指定します。 Azure Pipelines イメージの定義済みエイリアスの 一覧を参照してください。
"images": [
{
"wellKnownImageName": "windows-2022"
}
]
Azure Pipelines イメージを指定するには、 wellKnownImageName
プロパティを使用してイメージのエイリアスを指定します。 Azure Pipelines イメージの定義済みエイリアスの 一覧を参照してください。
"images": [
{
"wellKnownImageName": "windows-2022"
}
]
各イメージには、次のインストール済みソフトウェアが含まれています。
選択した Marketplace イメージ
マネージド DevOps プールには、プールで使用するために Microsoft が発行した一連の Azure Marketplace VM イメージが用意されています。
選択した Marketplace イメージ 、目的のイメージを選択して、目的のバージョンを選択します。 常に最新バージョンのイメージを使用するには latest を選択します。
選択したマーケットプレース イメージを指定するには、 resourceId
プロパティを使用してイメージのリソース ID を指定します。
"images": [
{
"resourceId": "/subscriptions/subscription_id_placeholder/Providers/Microsoft.Compute/Locations/eastus/publishers/canonical/artifacttypes/vmimage/offers/0001-com-ubuntu-server-focal/skus/20_04-lts-gen2/versions/latest"
}
]
選択した Marketplace イメージを指定するには、 resourceId
プロパティを使用してイメージのリソース ID を指定します。
"images": [
{
"resourceId": "/subscriptions/subscription_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
Ubuntu 24.04
Debian 9
RHEL 8
RHEL 9
SUSE 12
SUSE 15
重要
マネージド DevOps プールでは、 Azure コンピューティング ギャラリー イメージのみがサポートされます。
Azure コンピューティング ギャラリー イメージを指定するには、 resourceId
プロパティを使用してイメージのリソース ID を指定します。
"images": [
{
"resourceId": "/subscriptions/subscription_id_placeholder/Providers/Microsoft.Compute/Locations/eastus/publishers/canonical/artifacttypes/vmimage/offers/0001-com-ubuntu-server-focal/skus/20_04-lts-gen2/versions/latest"
}
]
選択した Marketplace イメージを指定するには、 resourceId
プロパティを使用してイメージのリソース ID を指定します。
"images": [
{
"resourceId": "/subscriptions/subscription_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 パイプラインを構成できます。
イメージ エイリアスを追加および管理するには、プール設定の Images セクションに移動し、 ... 、 エイリアスの追加 を選択します。
必要なエイリアスを Alias リストに追加し、 Save を選択します。
次の例は、2 つの Azure Pipelines イメージと 1 つの選択したマーケットプレース イメージを含むプールを示しています。 Azure Pipeline イメージには既定のエイリアスが表示され、選択したマーケットプレース イメージには、 ubuntu-20.04-gen2 という名前の 1 つの構成済みのエイリアスがあります。
エイリアスを構成するには、 aliases
の一覧でエイリアスを指定します。 次の例では、 ubuntu-20.04-gen2
という名前の 1 つのエイリアスを持つ 1 つのイメージを定義します。
"images": [
{
"resourceId": "/subscriptions/subscription_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
の一覧でエイリアスを指定します。 次の例では、 ubuntu-20.04-gen2
という名前の 1 つのエイリアスを持つ 1 つのイメージを定義します。
"images": [
{
"resourceId": "/subscriptions/subscription_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
という名前のdemand を使用して、特定のイメージで実行するようにパイプラインを構成できます。 パイプラインで ImageOverride
要求を指定すると、Managed DevOps Pools はそのイメージを使用するエージェントにのみジョブを送信します。
ubuntu-20.04-gen2
エイリアスを持つ前の例の Ubuntu 20.04 イメージでパイプラインを実行するには、パイプラインの 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
関連項目