Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022 |Azure DevOps Server 2020
エージェント プールは、エージェントのコレクションです。 各エージェントを個別に管理するのではなく、エージェントをエージェント プールにまとめます。 エージェントを構成すると、1 つのプールに登録されます。 パイプラインを作成するときは、パイプラインを実行するプールを指定します。 パイプラインを実行するときに、パイプラインは、パイプラインの要求を満たす、そのプールのエージェントで実行されます。
Managed DevOps Pools エージェント プールは、Azure portal で管理されます。 Managed DevOps プールを使用している場合は、プールの 作成に関するクイックスタートを参照してください。
Azure Pipelines では、プールのスコープは組織全体であるため、プロジェクト間でエージェント マシンを共有できます。
Azure DevOps Server では、エージェント プールのスコープはサーバー全体であるため、プロジェクトやコレクション間でエージェント マシンを共有できます。
エージェント プール ジョブは、1 つのエージェントでジョブを実行します。 クラシック リリース パイプラインのデプロイ グループなど、すべてのエージェントでジョブを実行する必要がある場合は、「 デプロイ グループのプロビジョニング」を参照してください。
組織管理者の場合は、管理者設定の [エージェント プール] タブから エージェント プール を作成および管理します。
プロジェクト コレクション (
http://your-server/DefaultCollection) にサインインします。[Azure DevOps>Collection の設定] を選択します。
[エージェント プール] を選択します。
プロジェクト チーム メンバーの場合は、プロジェクト設定の [エージェント プール] タブから エージェント プール を作成および管理します。
既定のエージェント プール
次のエージェント プールが既定で提供されます。
- 既定のプール: これを使用して、設定 したセルフホステッド エージェント を登録します。
- Azure Pipelines: このホストされたプールには、さまざまな Windows、Linux、および macOS イメージが付属しています。 使用可能なイメージとそのインストール済みソフトウェアの完全な一覧については、「Microsoft ホステッド エージェント」を参照してください。
既定では、プロジェクト内のすべての共同作成者が、ホステッド プール上のユーザー ロールのメンバーです。 この指定により、プロジェクト内のすべての共同作成者は、Microsoft がホストするエージェントを使用してパイプラインを作成して実行できます。
パイプライン内のプールを指定する
Azure DevOps Services YAML パイプラインの Azure Pipelines プールから Microsoft でホストされるエージェントを選択するには、このテーブルの YAML VM イメージ ラベルを使用してイメージの名前を指定します。
pool:
vmImage: ubuntu-latest # This is the default if you don't specify a pool or vmImage.
要求なしでプライベート プールを使用するには、次のようにします。
pool: MyPool
プールとキューを管理する
組織の管理者は、管理者設定の [エージェント プール] タブから エージェント プール を作成および管理します。
プロジェクト コレクション (
http://your-server/DefaultCollection) にサインインします。[Azure DevOps>Collection の設定] を選択します。
[エージェント プール] を選択します。
プロジェクト チーム メンバーは、プロジェクト設定の [エージェント プール] タブから エージェント プール を作成および管理します。
プールを削除するには、[ エージェント プール ] ボックスの一覧に移動し、[ その他のオプション>削除] を選択します。
プールはジョブの実行に使用されます。 ジョブのプールを指定する方法について説明します。
さまざまなチームまたは目的を対象とする多くのセルフホステッド エージェントがある場合は、さらにプールを作成できます。 次の手順を使用します。
エージェント プールを作成する
セルフホステッド エージェント プールを作成する場合の一般的な状況を次に示します。
あなたはプロジェクトのメンバーであり、チームが所有する一連のマシンを使用してビルドジョブと配置ジョブを実行したいと考えています。
- プロジェクトにプールを作成するアクセス許可があることを確認します。 [プロジェクトの設定] で、[エージェント プール] ウィンドウに移動し、[セキュリティ] を選択します。 新しいプールを作成するには、 管理者 ロールが必要です。
- [ プールの追加] を選択し、新しいプールを作成するオプションを選択します。
- エージェントをインストールし、新しいエージェント プールの一部として構成します。
インフラストラクチャ チームのメンバーであり、すべてのプロジェクトで使用するエージェントのプールを設定する必要があります。
- プロジェクトにプールを作成するアクセス許可があることを確認します。 [組織の設定] で、[エージェント プール] ウィンドウに移動し、[セキュリティ] を選択します。
- 新しいエージェント プールを作成し、プールの作成時にすべてのプロジェクトでこのエージェント プールを自動プロビジョニングするオプションを選択します。 この設定により、すべてのプロジェクトがこのエージェント プールにアクセスできるようになります。
- エージェントをインストールし、新しいエージェント プールの一部として構成します。
一部のプロジェクトに対してのみエージェントマシンのセットを共有したい場合:
- いずれかのプロジェクトの [設定] に移動します。 エージェント プールを追加し、組織レベルで新しいプールを作成するオプションを選択します。
- 他のプロジェクトに移動し、それぞれにプールを作成します。 [組織の既存のエージェント プールを使用する] を選択します。
- エージェントをインストールし、共有エージェント プールの一部として構成します。
あなたはプロジェクトのメンバーであり、チームが所有する一連のマシンを使用してビルドジョブと配置ジョブを実行したいと考えています。
- プロジェクトにプールを作成するアクセス許可があることを確認します。 [プロジェクトの設定] で、[エージェント プール] ウィンドウに移動し、[セキュリティ] を選択します。 新しいプールを作成するには、 管理者 ロールが必要です。
- [ プールの追加] を選択し、新しいプールを作成するオプションを選択します。
- エージェントをインストールし、新しいエージェント プールの一部として構成します。
インフラストラクチャ チームのメンバーであり、すべてのプロジェクトで使用するエージェントのプールを設定する必要があります。
- プロジェクトにプールを作成するアクセス許可があることを確認します。 [組織の設定] で、[エージェント プール] ウィンドウに移動し、[セキュリティ] を選択します。
- 新しいエージェント プールを作成し、プールの作成時にすべてのプロジェクトでこのエージェント プールを自動プロビジョニングするオプションを選択します。 この設定により、すべてのプロジェクトがこのエージェント プールにアクセスできるようになります。
- エージェントをインストールし、新しいエージェント プールの一部として構成します。
一部のプロジェクトに対してのみエージェントマシンのセットを共有したい場合:
- いずれかのプロジェクトの [設定] に移動します。 エージェント プールを追加し、組織レベルで新しいプールを作成するオプションを選択します。
- 他のプロジェクトに移動し、それぞれにプールを作成します。 [組織の既存のエージェント プールを使用する] を選択します。
- エージェントをインストールし、共有エージェント プールの一部として構成します。
エージェント プールのセキュリティ
エージェント プールのセキュリティのしくみを理解すると、エージェントの共有と使用をより適切に制御できます。
ロール は、各エージェント プールで定義されます。 これらのロールのメンバーシップは、エージェント プールで実行できる操作を制御します。
組織レベルのセキュリティ設定
| 「組織設定」におけるエージェントプールでのロール | 目的 |
|---|---|
| Reader | このロールのメンバーは、エージェント プールとエージェントを表示できます。 通常、このロールは、作業員の監視と状態管理を担当するオペレーターを追加するために使用します。 |
| サービス アカウント | このロールのメンバーは、組織エージェント プールを使用して、プロジェクトのプロジェクト エージェント プールを作成できます。 前のガイドラインに従って新しいプロジェクト エージェント プールを作成する場合、通常、ここにメンバーを追加する必要はありません。 |
| 管理者 | 上記のすべてのアクセス許可に加えて、このロールのメンバーは、組織エージェントプールからエージェントを登録または登録解除できます。 また、プロジェクトでプロジェクト エージェント プールを作成するときに、組織のエージェント プールを参照することもできます。 また、組織エージェント プールのすべてのロールのメンバーシップを管理することもできます。 組織エージェント プールを作成するユーザーには、そのプールの 管理者 ロールが自動的に割り当てられます。 |
[ エージェント プール ] タブの [すべての エージェント プール ] ノードは、 すべての 組織のエージェント プールのセキュリティを制御します。 個々の組織のエージェント プールのロール メンバーシップは、[ すべてのエージェント プール ] ノードから自動的に継承されます。 既定では、Azure DevOps Server 管理者は、Azure DevOps Server を使用する場合、[ すべてのエージェント プール ] ノードの管理者でもあります。
プロジェクト レベルのセキュリティ設定
ロールは、各プロジェクト エージェント プールでも定義されます。 これらのロールのメンバーシップは、プロジェクト レベルでエージェント プールに対して実行できる操作を制御します。
| プロジェクト設定のエージェントプールにおけるロール | 目的 |
|---|---|
| Reader | このロールのメンバーは、プロジェクト エージェント プールを表示できます。 通常、このロールを使用して、そのプロジェクト エージェント プール内のビルド ジョブと配置ジョブを監視するオペレーターを追加します。 |
| User | このロールのメンバーは、パイプラインを作成するときにプロジェクト エージェント プールを使用できます。 |
| 管理者 | 上記のすべての操作以外にも、このロールのメンバーは、プロジェクト エージェント プールのすべてのロールのメンバーシップを管理できます。 組織エージェント プールを作成するユーザーには、そのプールの 管理者 ロールが自動的に割り当てられます。 |
パイプラインのアクセス許可
パイプラインのアクセス許可では、エージェント プールを使用する権限を持つ YAML パイプラインを制御します。 パイプラインのアクセス許可では、クラシック パイプラインからのアクセスは制限されません。
次のいずれかのプロセスを選択します。
- エージェント プールの [セキュリティ] タブの [パイプライン のアクセス許可 ] セクションの右上隅にあるその他のオプションから、すべてのパイプラインでエージェント プールを使用するためのアクセスを開きます。
- エージェント プールをロックダウンし、選択した YAML パイプラインのみに使用を許可します。 他の YAML パイプラインがエージェント プールを参照している場合は、承認要求が発生し、エージェント プール 管理者 が承認する必要があります。 このプロセスでは、クラシック パイプラインからのアクセスは制限されません。
Azure Pipelines エージェント プールのパイプラインアクセス許可は、既定ですべてのパイプラインからアクセスできるため、構成できません。
[エージェント プール] タブの [セキュリティ] アクションは、プロジェクト内のすべてのプロジェクト エージェント プールのセキュリティを制御します。 個々のプロジェクト エージェント プールのロール メンバーシップは、ここで定義した内容から自動的に継承されます。 既定では、すべてのエージェント プールの管理者ロールに、ビルド管理者、リリース管理者、およびプロジェクト管理者のグループが追加されます。
FAQ
メンテナンス期間をスケジュールしない場合、エージェントはいつメンテナンスを実行しますか?
時間枠をスケジュールしない場合、そのプール内のエージェントはメンテナンスジョブを実行しません。
メンテナンス ジョブとは何ですか?
古くなった作業ディレクトリやリポジトリを定期的にクリーンするようにエージェント プールを構成できます。 このプロセスにより、エージェントのディスク領域が不足する可能性が軽減されます。 メンテナンス ジョブは、 エージェント プール の設定で組織レベルで構成されます。
メンテナンス ジョブの設定を構成します。
プロジェクト コレクション (
http://your-server/DefaultCollection) にサインインします。[Azure DevOps>Collection の設定] を選択します。
[エージェント プール] を選択します。
目的のプールを選択し、[ 設定] を選択して、そのエージェント プールのメンテナンス ジョブ設定を構成します。
重要
メンテナンス ジョブ設定を構成するには、ビルド キューの管理アクセス許可が必要です。 [設定] タブまたは [メンテナンス履歴] タブが表示されない場合は、管理者ロールに既定でそのアクセス許可がありません。 詳しくは、「エージェント プールのセキュリティ」をご覧ください。
目的の設定を構成し、[ 保存] を選択します。
[メンテナンス履歴] を選んで、現在のエージェント プールのメンテナンス ジョブ履歴を表示します。 ログをダウンロードして確認し、クリーニング手順と実行されたアクションを確認できます。
メンテナンスは、マシンごとではなく、エージェント プールごとに行われます。 1 台のコンピューターに複数のエージェント プールがある場合でも、ディスク領域の問題が発生する可能性があります。
自己ホスト エージェント プールのメンテナンス ジョブが停止したまま動かなくなったようです。 なぜでしょうか。
通常、メンテナンス ジョブは、エージェント プールから削除されたエージェントでの実行を待機しているときに停止します。 たとえば、エージェントが意図的にオフラインになったり、通信中に問題が発生したりしたとします。
実行するためにキューに登録されているメンテナンス ジョブは、実行されるまで 7 日間待機します。 その間に実行されない場合は、自動的に失敗状態になります。 この制限時間は変更できません。
この 7 日間の制限はメンテナンス ジョブ タイムアウト設定とは異なります。 後者は、エージェントでメンテナンスに使用できる最大時間 (分) を制御するものです。 エージェントでジョブが待ち行列に入ったときではなく、ジョブの開始時にこのタイマーは開始されます。
既存の組織エージェント プールを使用するプロジェクト エージェント プールを作成しようとしていますが、コントロールは使用できません。 なぜでしょうか。
別の プロジェクト エージェント プール が既に参照している場合は、[プロジェクト エージェント プールの作成] ダイアログボックスで既存の組織エージェント プールを使用することはできません。 各組織エージェント プールは、プロジェクト コレクション内の 1 つのプロジェクト エージェント プールでのみ参照できます。
Microsoft ホステッド プールが選択できず、ビルドをキューに入れることができません。 この問題を解決するにはどうすればよいですか?
ご自分の Azure DevOps 組織の所有者に、プールを使用するためのアクセス許可を付与してくれるように依頼してください。 「エージェント プールのセキュリティ」を参照してください。
より多くのホステッド ビルド リソースが必要です。 どうすればよいですか?
Azure Pipelines プールは、クラウドでホストされるビルド エージェントと無料のビルド分を毎月すべての Azure DevOps 組織に提供します。 より多くの Microsoft ホスト型ビルド リソースが必要な場合、またはより多くのジョブを並列で実行する必要がある場合は、次のいずれかを実行できます。