エージェント プール

Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 - TFS 2015

注意

Microsoft Team Foundation Server (TFS) 2018 以前のバージョンでは、ビルドとリリースの "パイプライン" は "定義"、"実行" は "ビルド"、"サービス接続" は "サービス エンドポイント"、"ステージ" は "環境"、"ジョブ" は "フェーズ" と呼ばれます。

各エージェントを個別に管理 する代わりに 、エージェントをエージェント プール に 編成します。 TFS では、プールのスコープはサーバー全体です。プロジェクト コレクションとプロジェクト間でエージェント プールを共有できます。

エージェント キューは、 プロジェクト内の エージェント プールへの アクセスを提供します。 ビルドまたはリリース パイプラインを作成するときに、使用するキューを指定します。 キューのスコープは TFS 2017 以降のプロジェクトに対して行うので、プロジェクト内のビルド パイプラインとリリース パイプライン間でのみ使用できます。

エージェント プールを複数のプロジェクトと共有するには、それらの各プロジェクトで、同じエージェント プールを指すエージェント キューを作成します。 プロジェクト間で複数のキューで同じエージェント プールを使用できる一方で、プロジェクト内の複数のキューで同じエージェント プールを使用することはできません。 また、各エージェント キューで使用できるエージェント プールは 1 つのみです。

TFS 2017 および TFS 2018 ビルド システム アーキテクチャ

エージェント プールのスコープはプロジェクト コレクションです。

TFS 2015 ビルド システム アーキテクチャ

各エージェントを個別に管理 する代わりに 、エージェントをエージェント プール に 編成します。 このAzure Pipelines、プールは組織全体にスコープが設定されます。を使用して、プロジェクト間でエージェント マシンを共有できます。 このAzure DevOps Server、エージェント プールのスコープはサーバー全体に設定されます。を使用して、プロジェクトとコレクション間でエージェント マシンを共有できます。

エージェントを構成すると、1 つのプールに登録され、パイプラインを作成するときに、パイプラインで使用するプールを指定します。 パイプラインを実行すると、パイプラインの要求を満たすそのプールのエージェント 実行されます。

注意

エージェント プール ジョブは、1 つのエージェントでジョブを実行します。 クラシック リリース パイプラインのデプロイ グループなど、すべてのエージェントでジョブを実行する必要がある場合は、「デプロイ グループをプロビジョニングする」 を参照してください

エージェント プールの作成と管理は、管理設定の [エージェント プール] タブから行います。

組織管理者の場合は、管理設定の [エージェント プール] タブからエージェント プールを作成および管理します。

  1. [ Azure DevOps]、[ 組織の設定] の順に選択します。

    [組織の設定] を選択します。

  2. [ エージェントプール] を選択します。

    [エージェントプール] タブを選択します。

  1. [ Azure DevOps]、[ コレクションの設定] の順に選択します。

    [コレクションの設定] を選択します。

  2. [ エージェントプール] を選択します。

    [エージェントプール] を選択します。

  1. [ Azure DevOps]、[ コレクションの設定] の順に選択します。

    コレクション設定、2019。

  2. [ エージェントプール] を選択します。

    エージェントプール、2019を選択します。

  1. プロジェクトに移動し、[ 設定 ] (歯車アイコン) > エージェントキュー] を選択します。

    [設定]、[エージェントキュー]、[2018] の順に選択します。

  2. [ プールの管理] を選択します。

    [プールの管理]、[2018] の順に選択します。

  1. プロジェクトに移動し、[ 設定 ] (歯車アイコン) > エージェントキュー] を選択します。

    [設定]、[エージェントキュー]、[2017] の順に選択します。

  2. [ プールの管理] を選択します。

    [プールの管理]、[2017] の順に選択します。

  1. プロジェクトに移動し、[ プロジェクトの管理 ] (歯車アイコン) を選択します。

    プロジェクト2015を管理します。

  2. [ コントロールパネル] を選択します。

    [コントロールパネル]、[2015] の順に選択します。

  3. [ エージェントプール] を選択します。

    エージェントプール、2015を選択します。

エージェント キューは、プロジェクト設定の [エージェント キュー] タブから作成および管理します。

プロジェクト チーム メンバーの場合は、プロジェクト設定の [エージェント プール] タブからエージェント キューを作成および管理します。

プロジェクトに移動し、[ プロジェクトの設定]、[ エージェントプール] の順に選択します。

プロジェクトに移動し、[プロジェクトの設定]、[エージェントプール] の順に選択します。

プロジェクトに移動し、[ プロジェクトの設定]、[ エージェントプール] の順に選択します。

プロジェクトに移動し、[プロジェクトの設定]、[エージェントプール] (2020) の順に選択します。

プロジェクトに移動し、[ プロジェクトの設定]、[ エージェントプール] の順に選択します。

プロジェクトに移動し、[プロジェクトの設定]、[エージェントプール] (2019) の順に選択します。

プロジェクトに移動し、[ 設定 ] (歯車アイコン) > エージェントキュー] を選択します。

[設定]、[エージェントキュー]、[TFS 2018] の順に選択します。

プロジェクトに移動し、[ 設定 ] (歯車アイコン) > エージェントキュー] を選択します。

[設定]、[エージェントキュー]、[TFS 2017] の順に選択します。

  1. プロジェクトに移動し、[ プロジェクトの管理 ] (歯車アイコン) を選択します。

    プロジェクトに移動し、[プロジェクトの管理]、[TFS 2015] の順に選択します。

  2. [ コントロールパネル] を選択します。

    TFS 2015 の [コントロールパネル] を選択します。

  3. 目的のプロジェクトコレクションを選択し、[ コレクション管理の表示] ページ を選択します。

    プロジェクトコレクションの管理、TFS 2015。

    1. エージェントキュー を選択します (TFS 2015 の場合は、[ビルド]、[キュー] の順に選択します)。

      [ビルド]、[キュー] の順に選択します。

既定のエージェント プール

既定では、次のエージェント プールが提供されます。

  • 既定 のプール: 設定したセルフホステッド エージェント 登録するために使用します。
  • Azure Pipelines、Linux、 および macOS イメージWindowsホストされたプール。 使用可能なイメージとそのインストールされているソフトウェアの完全な一覧については、「Microsoft ホステッド エージェント」を参照してください

    注意

    ホストAzure Pipelinesプールは、対応するイメージにマップされた名前を持つ以前のホストされたプールを置き換える必要があります。 以前にホストされたプールで行ったジョブは、ホストされているプール内の新しいプール内の正しいAzure Pipelines自動的にリダイレクトされます。 状況によっては、古いプール名が引き続き表示される場合がありますが、ホストされているジョブは、ホストされているプールを使用Azure Pipelinesされます。 詳細については、2019 年 7 月 1 日- Sprint 154リリース ノートの単一ホスト プールのリリース ノートを参照してください。

既定では、プロジェクト内のすべての共同作成者は、ホストされているプールの ユーザー ロールのメンバーです。 これにより、プロジェクト内のすべての共同作成者は、Microsoft がホストするエージェントを使用してパイプラインを作成して実行できます。

パイプラインでのプールとエージェントの選択

Azure DevOps Services YAML パイプラインの Azure Pipelines プールから Microsoft でホストされるエージェントを選択するには、次の表の YAML VM イメージ ラベルを使用してイメージの名前を 指定します。

pool:
  vmImage: ubuntu-16.04

要求がないプライベート プールを使用するには、次のコマンドを使用します。

pool: MyPool

詳細については、「プールのYAML スキーマ」を参照してください

プールとキューの管理

エージェント プールの作成と管理は、管理設定の [エージェント プール] タブから行います。

組織管理者の場合は、管理設定の [エージェント プール] タブからエージェント プールを作成および管理します。

  1. [ Azure DevOps]、[ 組織の設定] の順に選択します。

    [組織の設定] を選択します。

  2. [ エージェントプール] を選択します。

    [エージェントプール] タブを選択します。

  1. [ Azure DevOps]、[ コレクションの設定] の順に選択します。

    [コレクションの設定] を選択します。

  2. [ エージェントプール] を選択します。

    [エージェントプール] を選択します。

  1. [ Azure DevOps]、[ コレクションの設定] の順に選択します。

    コレクション設定、2019。

  2. [ エージェントプール] を選択します。

    エージェントプール、2019を選択します。

  1. プロジェクトに移動し、[ 設定 ] (歯車アイコン) > エージェントキュー] を選択します。

    [設定]、[エージェントキュー]、[2018] の順に選択します。

  2. [ プールの管理] を選択します。

    [プールの管理]、[2018] の順に選択します。

  1. プロジェクトに移動し、[ 設定 ] (歯車アイコン) > エージェントキュー] を選択します。

    [設定]、[エージェントキュー]、[2017] の順に選択します。

  2. [ プールの管理] を選択します。

    [プールの管理]、[2017] の順に選択します。

  1. プロジェクトに移動し、[ プロジェクトの管理 ] (歯車アイコン) を選択します。

    プロジェクト2015を管理します。

  2. [ コントロールパネル] を選択します。

    [コントロールパネル]、[2015] の順に選択します。

  3. [ エージェントプール] を選択します。

    エージェントプール、2015を選択します。

エージェント キューは、プロジェクト設定の [エージェント キュー] タブから作成および管理します。

プロジェクト チーム メンバーの場合は、プロジェクト設定の [エージェント プール] タブからエージェント キューを作成および管理します。

プロジェクトに移動し、[ プロジェクトの設定]、[ エージェントプール] の順に選択します。

プロジェクトに移動し、[プロジェクトの設定]、[エージェントプール] の順に選択します。

プロジェクトに移動し、[ プロジェクトの設定]、[ エージェントプール] の順に選択します。

プロジェクトに移動し、[プロジェクトの設定]、[エージェントプール] (2020) の順に選択します。

プロジェクトに移動し、[ プロジェクトの設定]、[ エージェントプール] の順に選択します。

プロジェクトに移動し、[プロジェクトの設定]、[エージェントプール] (2019) の順に選択します。

プロジェクトに移動し、[ 設定 ] (歯車アイコン) > エージェントキュー] を選択します。

[設定]、[エージェントキュー]、[TFS 2018] の順に選択します。

プロジェクトに移動し、[ 設定 ] (歯車アイコン) > エージェントキュー] を選択します。

[設定]、[エージェントキュー]、[TFS 2017] の順に選択します。

  1. プロジェクトに移動し、[ プロジェクトの管理 ] (歯車アイコン) を選択します。

    プロジェクトに移動し、[プロジェクトの管理]、[TFS 2015] の順に選択します。

  2. [ コントロールパネル] を選択します。

    TFS 2015 の [コントロールパネル] を選択します。

  3. 目的のプロジェクトコレクションを選択し、[ コレクション管理の表示] ページ を選択します。

    プロジェクトコレクションの管理、TFS 2015。

    1. エージェントキュー を選択します (TFS 2015 の場合は、[ビルド]、[キュー] の順に選択します)。

      [ビルド]、[キュー] の順に選択します。

プールは、ジョブの実行に使用されます。 ジョブ の プールの指定について学習します

さまざまなチームまたは目的を対象としたセルフホステッド エージェントが多い場合は、以下で説明する追加のプールを作成できます。

エージェント プールの作成

セルフホステッド エージェント プールを作成する場合の一般的な状況を次に示します。

  • あなたはプロジェクトのメンバーであり、チームが所有する一連のマシンを使用して、ビルドジョブとデプロイ ジョブを実行したいと考えました。 最初に、プロジェクト設定の [エージェント プール] ページで [セキュリティ]を選択して、プロジェクトにプールを作成するアクセス許可を持つ必要があります。 新しいプール を作成 するには、管理者ロールが必要です。 次に、[プール の追加] を選択し、組織レベルで新 しいプールを 作成するオプションを選択します。 最後に 、エージェント をインストールし、そのエージェント プールに含むエージェントを構成します。

  • あなたはインフラストラクチャ チームのメンバーであり、すべてのプロジェクトで使用するエージェントのプールを設定する必要があります。 まず、組織の設定の [エージェント プール]ページに移動して、管理者ロールを持つ [すべてのエージェント プール] のグループのメンバーである必要があります。 次に、 新しいエージェント プールを 作成し、プールの作成時に対応するエージェント プールをすべてのプロジェクトで自動プロビジョニング するオプションを 選択します。 この設定により、すべてのプロジェクトでこのエージェント プールにアクセスできます。 最後に 、エージェント をインストールし、そのエージェント プールに含むエージェントを構成します。

  • エージェント マシンのセットを複数のプロジェクトと共有する必要がありますが、すべてのプロジェクトを共有する必要はありません。 最初に、プロジェクトの 1 つの設定に移動し、エージェント プールを追加して、組織レベルで新しいプールを作成するオプションを選択します。 次に、他の各プロジェクトに移動し、各プロジェクトにプールを作成し、[組織の既存のエージェント プールを使用する] オプションを 選択します。 最後に、 共有エージェント プールに含むエージェントをインストールして構成します。

  • あなたはプロジェクトのメンバーであり、チームが所有する一連のマシンを使用して、ビルドジョブとデプロイ ジョブを実行したいと考えました。 まず、管理者ロールを持つすべてのプール のグループの メンバー である必要 があります。 次に、 プロジェクト設定で [新しい プロジェクト エージェント プール] を作成し、[新しい組織エージェント プールを作成 する] オプションを選択します。 その結果、組織レベルとプロジェクト レベルの両方のエージェント プールが作成されます。 最後に 、エージェント をインストールし、そのエージェント プールに含むエージェントを構成します。

  • あなたはインフラストラクチャ チームのメンバーであり、すべてのプロジェクトで使用するエージェントのプールを設定する必要があります。 まず、管理者ロールを持つすべてのプール グループのメンバー である必要 があります。 次に、管理者設定で [新しい 組織エージェント プール]を作成し、プールの作成時に、すべてのプロジェクトで対応するプロジェクト エージェント プールを自動プロビジョニングするオプションを選択します。 この設定により、すべてのプロジェクトに、組織エージェント プールを指すプールが確保されます。 システムによって既存のプロジェクトのプールが作成され、将来、新しいプロジェクトが作成されるたびに作成されます。 最後に 、エージェント をインストールし、そのエージェント プールに含むエージェントを構成します。

  • エージェント マシンのセットを複数のプロジェクトと共有する必要がありますが、すべてのプロジェクトを共有する必要はありません。 最初に、プロジェクトの 1 つでプロジェクト エージェント プールを作成し、そのプールの作成時に [新しい組織エージェント プールを作成する] オプションを選択します。 次に、他の各プロジェクトに移動し、それぞれのプロジェクトにプールを作成し、[既存の組織エージェント プールを使用する] オプション を選択します。 最後に、 共有エージェント プールに含むエージェントをインストールして構成します。

エージェント プールのセキュリティ

エージェント プールのセキュリティのしくみを理解すると、エージェントの共有と使用を制御するのに役立ちます。

ロール は各エージェント プールで定義され、これらのロールのメンバーシップによって、エージェント プールに対して実行できる操作が制御されます。

組織の設定でのエージェント プールに対するロール 目的
Reader このロールのメンバーは、エージェント プールとエージェントを表示できます。 通常、これを使用して、エージェントとその正常性の監視を担当するオペレーターを追加します。
サービス アカウント このロールのメンバーは、組織エージェント プールを使用して、プロジェクトにプロジェクト エージェント プールを作成できます。 新しいプロジェクト エージェント プールを作成するための上記のガイドラインに従う場合は、通常、ここでメンバーを追加する必要はありません。
管理者 上記のすべてのアクセス許可に加えて、このロールのメンバーは、組織のエージェント プールからエージェントを登録または登録解除できます。 また、プロジェクトでプロジェクト エージェント プールを作成するときに、組織エージェント プールを参照することもできます。 最後に、組織エージェント プールのすべてのロールのメンバーシップを管理することもできます。 組織エージェント プールを作成したユーザーは、そのプールの管理者ロールに自動的に追加されます。

[ エージェント プール] タブの [すべてのエージェント プール] ノードは、すべての組織エージェント プールのセキュリティ 制御するために使用されます。 個々の組織エージェント プールのロール メンバーシップは、"すべてのエージェント プール" ノードのロール メンバーシップから自動的に継承されます。 TFS または Azure DevOps Serverを使用する場合、既定では、TFS 管理者と Azure DevOps Server 管理者も "すべてのエージェント プール" ノードの管理者になります。

ロールは各プロジェクト エージェント プールにも定義され、これらのロールのメンバーシップによって、プロジェクト レベルでエージェント プールに対して実行できる操作が制御されます。

プロジェクト設定でのエージェント プールのロール 目的
Reader このロールのメンバーは、プロジェクト エージェント プールを表示できます。 通常、これを使用して、そのプロジェクト エージェント プール内のビルドジョブと配置ジョブを監視するオペレーターを追加します。
User このロールのメンバーは、パイプラインの作成時にプロジェクト エージェント プールを使用できます。
管理者 上記のすべての操作に加えて、このロールのメンバーは、プロジェクト エージェント プールのすべてのロールのメンバーシップを管理できます。 プールを作成したユーザーは、そのプールの管理者ロールに自動的に追加されます。

[エージェント プール] タブ の [すべてのエージェント プール] ノードは、プロジェクト内のすべてのプロジェクト エージェント プールのセキュリティを制御するために使用されます。 個々のプロジェクト エージェント プールのロール メンバーシップは、"すべてのエージェント プール" ノードのロール メンバーシップから自動的に継承されます。 既定では、"すべてのエージェント プール" の管理者ロールに次のグループが追加されます:ビルド管理者、リリース管理者、Project管理者。

[エージェント プール] タブの [セキュリティ] アクションは、プロジェクト内のすべてのプロジェクト エージェント プールのセキュリティを制御するために使用されます。 個々のプロジェクト エージェント プールのロール メンバーシップは、ここで定義したロールから自動的に継承されます。 既定では、"すべてのエージェント プール" の管理者ロールに次のグループが追加されます:ビルド管理者、リリース管理者、Project管理者。

TFS 2015

TFS 2015 では、エージェント プールに特別なグループが定義され、これらのグループのメンバーシップによって実行できる操作が制御されます。

エージェント プール 管理者のメンバーは、 プールに新しいエージェントを登録し、管理者またはサービス アカウントとしてユーザーを追加できます。

[エージェント プール管理者] グループにユーザーを追加して、すべてのエージェント プールを管理するアクセス許可を付与します。 これにより、ユーザーは新しいプールを作成し、既存のすべてのプールを変更できます。 Team Foundation Administrators グループのメンバーは、これらすべての操作を実行できます。

エージェント プール サービス アカウント グループのユーザーは 、特定のプールが作業を受信するためのメッセージ キューをリッスンするアクセス許可を持っています。 ほとんどの場合、このグループのメンバーを管理する必要はない必要があります。 エージェントの登録プロセスによって処理されます。 エージェントに指定したサービス アカウント (通常はネットワーク サービス) は、エージェントの登録時に自動的に追加されます。

よく寄せられる質問

メンテナンス時間をスケジュールしない場合、エージェントはメンテナンスをいつ実行しますか?

ウィンドウがスケジュールされていない場合、そのプール内のエージェントはメンテナンス ジョブを実行されません。

メンテナンス ジョブとは

古い作業ディレクトリとリポジトリを定期的にクリーンアップするエージェント プールを構成できます。 これにより、エージェントのディスク領域が使い切る可能性が減ります。 メンテナンス ジョブは、エージェント プール設定のプロジェクト コレクションまたは組織レベルで構成されます。

メンテナンス ジョブの設定を構成するには:

  1. [ Azure DevOps]、[ 組織の設定] の順に選択します。

    [組織の設定] を選択します。

  2. [ エージェントプール] を選択します。

    [エージェントプール] タブを選択します。

  1. [ Azure DevOps]、[ コレクションの設定] の順に選択します。

    [コレクションの設定] を選択します。

  2. [ エージェントプール] を選択します。

    [エージェントプール] を選択します。

  1. [ Azure DevOps]、[ コレクションの設定] の順に選択します。

    コレクション設定、2019。

  2. [ エージェントプール] を選択します。

    エージェントプール、2019を選択します。

  1. プロジェクトに移動し、[ 設定 ] (歯車アイコン) > エージェントキュー] を選択します。

    [設定]、[エージェントキュー]、[2018] の順に選択します。

  2. [ プールの管理] を選択します。

    [プールの管理]、[2018] の順に選択します。

  1. プロジェクトに移動し、[ 設定 ] (歯車アイコン) > エージェントキュー] を選択します。

    [設定]、[エージェントキュー]、[2017] の順に選択します。

  2. [ プールの管理] を選択します。

    [プールの管理]、[2017] の順に選択します。

  1. プロジェクトに移動し、[ プロジェクトの管理 ] (歯車アイコン) を選択します。

    プロジェクト2015を管理します。

  2. [ コントロールパネル] を選択します。

    [コントロールパネル]、[2015] の順に選択します。

  3. [ エージェントプール] を選択します。

    エージェントプール、2015を選択します。

目的のプールを選択し 、[設定] を選択して、そのエージェント プールのメンテナンス ジョブ設定を構成します。

重要

メンテナンス ジョブの設定を構成 するには、ビルド キューの管理 アクセス許可が必要です。 [設定] タブまたは [メンテナンス履歴] タブが表示されません。このアクセス許可は、既定では管理者ロールに 付与 されます。 詳細については、「エージェント プールの セキュリティ」を参照してください

メンテナンス ジョブの設定

TFS のメンテナンス ジョブ設定

目的の設定を構成し、 [保存] を 選択します

[ メンテナンス履歴] を 選択して、現在のエージェント プールのメンテナンス ジョブ履歴を表示します。 ログをダウンロードして確認し、実行されたクリーンアップ手順とアクションを確認できます。

メンテナンス ジョブ履歴

メンテナンスは、マシンごとにではなく、エージェント プールごとに行われます。そのため、1 台のコンピューターに複数のエージェント プールがある場合でも、ディスク領域の問題が発生する可能性があります。

既存の組織エージェント プールを使用するプロジェクト エージェント プールを作成しようとしているが、コントロールがグレー表示されている。なぜでしょうか。

[プロジェクト エージェント プールの作成] ダイアログ ボックスで、別のプロジェクト エージェント プールによって既に参照されている既存の組織エージェント プールを使用することはできません。 各組織エージェント プールは、特定のプロジェクト コレクション内の 1 つのプロジェクト エージェント プールでのみ参照できます。

Microsoft でホストされるプールを選択できないし、ビルドをキューに入れない。 これをどのように修正すればよいですか?

プールを使用するアクセス許可をAzure DevOps組織の所有者に問い合めます。 「 エージェント プールのセキュリティ」を参照してください

さらにホストされているビルド リソースが必要です。 どうすればよいですか。

A: クラウド Azure Pipelinesは、クラウドAzure DevOpsビルド エージェントと毎月無料のビルド分を持つすべての組織を提供します。 より多くの Microsoft ホステッド ビルド リソースが必要な場合、またはより多くのジョブを並列で実行する必要がある場合は、次のいずれかを実行できます。