Azure Pipelines エージェントAzure Pipelines agents

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

注意

Microsoft Team Foundation Server (TFS) 2018 以前のバージョンでは、ビルドとリリースの "パイプライン" は "定義"、"実行" は "ビルド"、"サービス接続" は "サービス エンドポイント"、"ステージ" は "環境"、"ジョブ" は "フェーズ" と呼ばれます。In Microsoft Team Foundation Server (TFS) 2018 and previous versions, build and release pipelines are called definitions, runs are called builds, service connections are called service endpoints, stages are called environments, and jobs are called phases.

コードをビルドしたり、Azure Pipelines を使用してソフトウェアを展開したりするには、少なくとも1つのエージェントが必要です。To build your code or deploy your software using Azure Pipelines, you need at least one agent. コードとユーザーを追加すると、最終的にさらに必要になります。As you add more code and people, you'll eventually need more.

パイプラインを実行すると、システムによって1つ以上のジョブが開始されます。When your pipeline runs, the system begins one or more jobs. エージェントは、一度に1つのジョブを実行する、インストールされているエージェントソフトウェアを使用するコンピューティングインフラストラクチャです。An agent is computing infrastructure with installed agent software that runs one job at a time.

Microsoft によってホストされるエージェントMicrosoft-hosted agents

パイプラインが Azure Pipelines にある場合は、 Microsoft がホストするエージェント を使用してジョブを実行する便利なオプションがあります。If your pipelines are in Azure Pipelines, then you've got a convenient option to run your jobs using a Microsoft-hosted agent. Microsoft によってホストされているエージェントを使用すると、メンテナンスとアップグレードが自動的に行われます。With Microsoft-hosted agents, maintenance and upgrades are taken care of for you. パイプラインを実行するたびに、新しい仮想マシンが作成します。Each time you run a pipeline, you get a fresh virtual machine. 仮想マシンは1回の使用後に破棄されます。The virtual machine is discarded after one use. Microsoft がホストするエージェントは 、VM 上 または コンテナー内で直接ジョブを実行できます。Microsoft-hosted agents can run jobs directly on the VM or in a container.

Azure Pipelines には、 Azure Pipelines という名前の事前定義されたエージェントプールと、Microsoft がホストするエージェントが用意されています。Azure Pipelines provides a pre-defined agent pool named Azure Pipelines with Microsoft-hosted agents.

多くのチームにとって、これはジョブを実行する最も簡単な方法です。For many teams this is the simplest way to run your jobs. 最初に試してみると、ビルドまたは配置に対して動作するかどうかを確認できます。You can try it first and see if it works for your build or deployment. それ以外の場合は、自己ホスト型エージェントを使用できます。If not, you can use a self-hosted agent.

ヒント

Microsoft がホストするエージェントを無料で試すことができます。You can try a Microsoft-hosted agent for no charge.

Microsoft がホストするエージェントの詳細については、こちらをご覧ください。Learn more about Microsoft-hosted agents.

セルフホステッド エージェントSelf-hosted agents

ジョブを実行するために独自に設定および管理するエージェントは、 自己ホスト型エージェント です。An agent that you set up and manage on your own to run jobs is a self-hosted agent. Azure Pipelines または Team Foundation Server (TFS) では、自己ホスト型エージェントを使用できます。You can use self-hosted agents in Azure Pipelines or Team Foundation Server (TFS). 自己ホスト型エージェントを使用すると、ビルドと展開に必要な依存ソフトウェアをより詳細にインストールできます。Self-hosted agents give you more control to install dependent software needed for your builds and deployments. また、マシンレベルのキャッシュと構成は実行から継続されるため、速度が向上します。Also, machine-level caches and configuration persist from run to run, which can boost speed.

注意

コンピューターごとにインストールできるエージェントは複数ありますが、コンピューターごとに1つのエージェントのみをインストールすることを強くお勧めします。Although multiple agents can be installed per machine, we strongly suggest to only install one agent per machine. 2つ以上のエージェントをインストールすると、パフォーマンスとパイプラインの結果に悪影響を及ぼす可能性があります。Installing two or more agents may adversely affect performance and the result of your pipelines.

ヒント

自己ホスト型エージェントをインストールする前に、Microsoft がホストするエージェントプールが機能するかどうかを確認してください。Before you install a self-hosted agent you might want to see if a Microsoft-hosted agent pool will work for you. 多くの場合、これを実現する最も簡単な方法です。In many cases this is the simplest way to get going. 試してみてくださいGive it a try.

エージェントは、Linux、macOS、または Windows マシンにインストールできます。You can install the agent on Linux, macOS, or Windows machines. Docker コンテナーにエージェントをインストールすることもできます。You can also install an agent on a Docker container. 自己ホスト型エージェントのインストールの詳細については、以下を参照してください。For more information about installing a self-hosted agent, see:

エージェントは、Linux、macOS、または Windows マシンにインストールできます。You can install the agent on Linux, macOS, or Windows machines. 自己ホスト型エージェントのインストールの詳細については、以下を参照してください。For more information about installing a self-hosted agent, see:

注意

MacOS では、の実行時に、tar ファイル内の各アセンブリに対してゲートキーパーの保護が表示されないように、ダウンロードアーカイブの特別な属性をクリアする必要があり ./config.sh ます。On macOS, you need to clear the special attribute on the download archive to prevent Gatekeeper protection from displaying for each assembly in the tar file when ./config.sh is run. 次のコマンドを実行すると、ファイルの拡張属性がクリアされます。The following command clears the extended attribute on the file:

xattr -c vsts-agent-osx-x64-V.v.v.tar.gz  ## replace V.v.v with the version in the filename downloaded.

# then unpack the gzip tar file normally:

tar xvfz vsts-agent-osx-x64-V.v.v.tar.gz

コンピューターにエージェントをインストールしたら、ジョブに必要な他のソフトウェアをそのコンピューターにインストールできます。After you've installed the agent on a machine, you can install any other software on that machine as required by your jobs.

注意

エージェントは、広範囲に下位互換性があります。Agents are widely backward compatible. Azure DevOps がエージェントの最新バージョンを要求していない限り、すべてのバージョンのエージェントが Azure DevOps バージョンと互換性がある必要があります。Any version of the agent should be compatible with any Azure DevOps version as long as Azure DevOps isn't demanding a higher version of the agent.

最新バージョンのエージェントのみがサポートされています。これは、最新の修正プログラムとバグ修正プログラムがすべて適用されることが保証されているためです。We only support the most recent version of the agent since that is the only version guaranteed to have all up-to-date patches and bug fixes.

Azure 仮想マシンスケールセットのエージェントAzure virtual machine scale set agents

Azure 仮想マシンスケールセットエージェントは、要求に合わせて自動スケールできる自己ホスト型エージェントの一種です。Azure virtual machine scale set agents are a form of self-hosted agents that can be auto-scaled to meet your demands. この弾力性によって、専用エージェントを常に実行する必要性が軽減されます。This elasticity reduces your need to run dedicated agents all the time. Microsoft がホストするエージェントとは異なり、エージェントが実行されるマシンのサイズとイメージの柔軟性を高めることができます。Unlike Microsoft-hosted agents, you have flexibility over the size and the image of machines on which agents run.

仮想マシンスケールセット、スタンバイに保持するエージェントの数、スケールセット内の仮想マシンの最大数を指定し、Azure Pipelines によってエージェントのスケーリングを管理します。You specify a virtual machine scale set, a number of agents to keep on standby, a maximum number of virtual machines in the scale set, and Azure Pipelines manages the scaling of your agents for you.

詳細については、「 Azure 仮想マシンスケールセットエージェント」を参照してください。For more information, see Azure virtual machine scale set agents.

並列ジョブParallel jobs

並列ジョブ は、組織内で同時に実行できるジョブの数を表します。Parallel jobs represents the number of jobs you can run at the same time in your organization. 組織で1つの並列ジョブを使用している場合は、1つのジョブを組織内で一度に実行できます。その後、最初のジョブが完了するまで、追加の同時実行ジョブがキューに登録されます。If your organization has a single parallel job, you can run a single job at a time in your organization, with any additional concurrent jobs being queued until the first job completes. 2つのジョブを同時に実行するには、2つの並列ジョブが必要です。To run two jobs at the same time, you need two parallel jobs. Azure Pipelines では、Microsoft がホストするインフラストラクチャまたは独自の (自己ホスト型の) インフラストラクチャで並列ジョブを実行できます。In Azure Pipelines, you can run parallel jobs on Microsoft-hosted infrastructure or on your own (self-hosted) infrastructure.

Microsoft では、少なくとも1つの並列ジョブを含むすべての組織に、既定で free レベルのサービスを提供しています。Microsoft provides a free tier of service by default in every organization that includes at least one parallel job. 実行する必要のある同時実行パイプラインの数によっては、複数の Microsoft ホストまたは自己ホスト型エージェントを同時に使用するために、さらに多くの並列ジョブが必要になる場合があります。Depending on the number of concurrent pipelines you need to run, you might need more parallel jobs to use multiple Microsoft-hosted or self-hosted agents at the same time. 並列ジョブとさまざまな free レベルのサービスの詳細については、「 Azure Pipelines での並列ジョブ」を参照してください。For more information on parallel jobs and different free tiers of service, see Parallel jobs in Azure Pipelines.

複数のエージェントを同時に使用するには、さらに多くの並列ジョブが必要になることがあります。You might need more parallel jobs to use multiple agents at the same time:

重要

Azure DevOps Server 2019 以降では、自己ホスト型の同時実行ジョブに対して、リリースで料金を支払う必要はありません。Starting with Azure DevOps Server 2019, you do not have to pay for self-hosted concurrent jobs in releases. 自分が所有しているエージェントの数によってのみ制限されます。You are only limited by the number of agents that you have.

機能Capabilities

すべての自己ホスト型エージェントには、実行できる操作を示す一連の機能があります。Every self-hosted agent has a set of capabilities that indicate what it can do. 機能とは、エージェントソフトウェアによって自動的に検出される名前と値のペアです。この場合は、 システム機能 と呼ばれるか、定義された名前と値のペアです。この場合、 ユーザー機能 と呼ばれます。Capabilities are name-value pairs that are either automatically discovered by the agent software, in which case they are called system capabilities, or those that you define, in which case they are called user capabilities.

エージェントソフトウェアでは、コンピューター名、オペレーティングシステムの種類、コンピューターにインストールされている特定のソフトウェアのバージョンなど、さまざまなシステム機能が自動的に決定されます。The agent software automatically determines various system capabilities such as the name of the machine, type of operating system, and versions of certain software installed on the machine. また、コンピューターで定義されている環境変数は、システム機能の一覧に自動的に表示されます。Also, environment variables defined in the machine automatically appear in the list of system capabilities.

注意

環境変数を機能として格納することは、エージェントを実行するときに、格納されている機能の値を使用して環境変数を設定することを意味します。Storing environment variables as capabilites means that when an agent runs, the stored capability values are used to set the environment variables. また、エージェントの実行中に作成された環境変数への変更は、どのタスクでも取得および使用されません。Also, any changes to environment variables that are made while the agent is running won't be picked up and used by any task. 変更する重要な環境変数があり、それらを機能として格納したくない場合は、環境変数を設定して無視することができます。この場合、 VSO_AGENT_IGNORE 無視する変数のコンマ区切りの一覧を使用します。If you have sensitive environment variables that change and you don't want them to be stored as capabilities, you can have them ignored by setting the VSO_AGENT_IGNORE environment variable, with a comma-delimited list of variables to ignore. たとえば、 PATH は、ソフトウェアをインストールする場合に無視する必要がある重要な変数です。For example, PATH is a critical variable that you might want to ignore if you're installing software.

パイプラインを作成する場合は、エージェントの特定の 要求 を指定します。When you author a pipeline, you specify certain demands of the agent. システムは、パイプラインで指定された 要求 に一致する機能を持つエージェントのみにジョブを送信します。The system sends the job only to agents that have capabilities matching the demands specified in the pipeline. その結果、エージェント機能を使用して、特定のエージェントにジョブを転送できます。As a result, agent capabilities allow you to direct jobs to specific agents.

注意

要求と機能は、ジョブの要件を満たすエージェントとジョブを照合できるように、自己ホスト型エージェントで使用するように設計されています。Demands and capabilities are designed for use with self-hosted agents so that jobs can be matched with an agent that meets the requirements of the job. Microsoft がホストするエージェントを使用する場合は、ジョブの要件に一致するエージェントのイメージを選択します。そのため、Microsoft がホストするエージェントに機能を追加することはできますが、Microsoft がホストするエージェントで機能を使用する必要はありません。When using Microsoft-hosted agents, you select an image for the agent that matches the requirements of the job, so although it is possible to add capabilities to a Microsoft-hosted agent, you don't need to use capabilities with Microsoft-hosted agents.

エージェントの詳細の表示View agent details

エージェント プール に移動し、目的のエージェントの [ 機能 ] タブを選択すると、エージェントのバージョンやシステム機能を含め、エージェントの詳細を表示したり、そのユーザー機能を管理したりできます。You can view the details of an agent, including its version and system capabilities, and manage its user capabilities, by navigating to Agent pools and selecting the Capabilities tab for the desired agent.

  1. Web ブラウザーで、[エージェントプール] に移動します。In your web browser, navigate to Agent pools:

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

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

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

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

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

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

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

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

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

      コレクション設定、2019。

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

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

    1. プロジェクトに移動し、[ 設定 ] (歯車アイコン) > エージェントキュー] を選択します。Navigate to your project and choose Settings (gear icon) > Agent Queues.

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

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

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

    1. プロジェクトに移動し、[ 設定 ] (歯車アイコン) > エージェントキュー] を選択します。Navigate to your project and choose Settings (gear icon) > Agent Queues.

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

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

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

    1. プロジェクトに移動し、[ プロジェクトの管理 ] (歯車アイコン) を選択します。Navigate to your project and choose Manage project (gear icon).

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

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

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

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

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

  2. [機能] タブに移動します。Navigate to the capabilities tab:

    1. [ エージェントプール ] タブで、目的のエージェントプールを選択します。From the Agent pools tab, select the desired agent pool.

      [エージェントプール] で、目的のエージェントプールを選択します。

    2. [ エージェント ] を選択し、目的のエージェントを選択します。Select Agents and choose the desired agent.

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

    3. [ 機能 ] タブを選択します。Choose the Capabilities tab.

      [機能] タブを選択します。

      注意

      Microsoft がホストするエージェントは、システム機能を表示しません。Microsoft-hosted agents don't display system capabilities. Microsoft がホストするエージェントにインストールされているソフトウェアの一覧については、「 microsoft がホストするエージェントの使用」を参照してください。For a list of software installed on Microsoft-hosted agents, see Use a Microsoft-hosted agent.

    1. [ エージェントプール ] タブで、目的のプールを選択します。From the Agent pools tab, select the desired pool.

      目的のプールを選択します。

    2. [ エージェント ] を選択し、目的のエージェントを選択します。Select Agents and choose the desired agent.

      [エージェント] を選択し、目的のエージェントを選択します。

    3. [ 機能 ] タブを選択します。Choose the Capabilities tab.

      [エージェント機能] タブ。

    1. [ エージェントプール ] タブで、目的のプールを選択します。From the Agent pools tab, select the desired pool.

      目的のタブ2019を選択します。

    2. [ エージェント ] を選択し、目的のエージェントを選択します。Select Agents and choose the desired agent.

      目的のエージェント2019を選択します。

    3. [ 機能 ] タブを選択します。Choose the Capabilities tab.

      [機能] タブ2019を選択します。

    目的のエージェントを選択し、[ 機能 ] タブを選択します。Select the desired agent, and choose the Capabilities tab.

    [エージェントの機能] タブ2018。

    目的のエージェントを選択し、[ 機能 ] タブを選択します。Select the desired agent, and choose the Capabilities tab.

    [エージェントの機能] タブ2017。

    [ エージェントプール ] タブで、目的のエージェントを選択し、[ 機能 ] タブを選択します。From the Agent pools tab, select the desired agent, and choose the Capabilities tab.

    [エージェント機能] タブ2015を選択します。

ヒント

自己ホスト型エージェントに新しいソフトウェアをインストールした後、新しい機能を表示するには、エージェントを再起動する必要があります。After you install new software on a self-hosted agent, you must restart the agent for the new capability to show up. 詳細については、「 Windows エージェントの再起動」、「 Linux エージェントの再起動」、および「 Mac エージェントの再起動」を参照してください。For more information, see Restart Windows agent, Restart Linux agent, and Restart Mac agent.

CommunicationCommunication

Azure Pipelines との通信Communication with Azure Pipelines

TFS との通信Communication with TFS

エージェントは Azure Pipelines または TFS と通信して、実行する必要があるジョブを決定し、ログとジョブの状態をレポートします。The agent communicates with Azure Pipelines or TFS to determine which job it needs to run, and to report the logs and job status. この通信は、常にエージェントによって開始されます。This communication is always initiated by the agent. エージェントの構成方法によっては、エージェントから Azure Pipelines または TFS へのすべてのメッセージが HTTP または HTTPS 経由で発生します。All the messages from the agent to Azure Pipelines or TFS happen over HTTP or HTTPS, depending on how you configure the agent. このプルモデルでは、次に示すように、異なるトポロジでエージェントを構成できます。This pull model allows the agent to be configured in different topologies as shown below.

オンプレミスのインストールでのエージェントトポロジ。

Azure DevOps Services のエージェントトポロジ。

次に示すのは、エージェントと Azure Pipelines または TFS の間の一般的な通信パターンです。Here is a common communication pattern between the agent and Azure Pipelines or TFS.

  1. ユーザーは、エージェントを エージェントプールに追加することによって、エージェントを Azure Pipelines または TFS に登録します。The user registers an agent with Azure Pipelines or TFS by adding it to an agent pool. エージェントをエージェントプールに登録するには、エージェント プールの管理者 である必要があります。You need to be an agent pool administrator to register an agent in that agent pool. エージェントプールの管理者の id は、登録時にのみ必要であり、エージェントには保存されず、エージェントと Azure Pipelines または TFS 間のその他の通信でも使用されません。The identity of agent pool administrator is needed only at the time of registration and is not persisted on the agent, nor is it used in any further communication between the agent and Azure Pipelines or TFS. 登録が完了すると、エージェントはリスナーの OAuth トークン をダウンロードし、それを使用してジョブキューをリッスンします。Once the registration is complete, the agent downloads a listener OAuth token and uses it to listen to the job queue.

  2. エージェントは、HTTP 長いポーリングを使用して、Azure Pipelines/TFS のジョブキューに新しいジョブ要求がポストされたかどうかをリッスンします。The agent listens to see if a new job request has been posted for it in the job queue in Azure Pipelines/TFS using an HTTP long poll. ジョブが使用可能な場合、エージェントはジョブおよび ジョブ固有の OAuth トークン をダウンロードします。When a job is available, the agent downloads the job as well as a job-specific OAuth token. このトークンは 、パイプラインで指定されたスコープ付き id の AZURE PIPELINES/TFS によって生成されます。This token is generated by Azure Pipelines/TFS for the scoped identity specified in the pipeline. このトークンは有効期間が短く、エージェントがリソース (ソースコードなど) にアクセスしたり、そのジョブ内の Azure Pipelines または TFS でリソース (たとえば、テスト結果のアップロード) を変更したりするために使用されます。That token is short lived and is used by the agent to access resources (for example, source code) or modify resources (for example, upload test results) on Azure Pipelines or TFS within that job.

  3. ジョブが完了すると、エージェントはジョブ固有の OAuth トークンを破棄し、リスナーの OAuth トークンを使用して新しいジョブ要求があるかどうかを確認します。After the job is completed, the agent discards the job-specific OAuth token and goes back to checking if there is a new job request using the listener OAuth token.

エージェントと Azure Pipelines/TFS 間で交換されるメッセージのペイロードは、非対称暗号化を使用して保護されます。The payload of the messages exchanged between the agent and Azure Pipelines/TFS are secured using asymmetric encryption. 各エージェントには公開キーと秘密キーのペアがあり、公開キーは登録時にサーバーと交換されます。Each agent has a public-private key pair, and the public key is exchanged with the server during registration. サーバーは、エージェントに送信する前に、公開キーを使用してジョブのペイロードを暗号化します。The server uses the public key to encrypt the payload of the job before sending it to the agent. エージェントは、秘密キーを使用してジョブの内容を復号化します。The agent decrypts the job content using its private key. パイプラインまたは変数グループに格納されているシークレットは、エージェントと交換されるときにセキュリティで保護されます。This is how secrets stored in pipelines or variable groups are secured as they are exchanged with the agent.

エージェントと TFS の間の一般的な通信パターンを次に示します。Here is a common communication pattern between the agent and TFS.

  • エージェントプール管理者はエージェントをエージェントプールに参加させ、サービスアカウントの資格情報 (Windows の場合) または保存されたユーザー名とパスワード (Linux と macOS の場合) を使用して TFS との通信を開始します。An agent pool administrator joins the agent to an agent pool, and the credentials of the service account (for Windows) or the saved user name and password (for Linux and macOS) are used to initiate communication with TFS. エージェントは、これらの資格情報を使用してジョブキューをリッスンします。The agent uses these credentials to listen to the job queue.

  • エージェントは、サーバーとの通信中に非対称キー暗号化を使用しません。The agent does not use asymmetric key encryption while communicating with the server. ただし、HTTPS を使用して、エージェントと TFS の間の 通信をセキュリティで保護する ことができます。However, you can use HTTPS to secure the communication between the agent and TFS.

対象サーバーに配置するための通信Communication to deploy to target servers

エージェントを使用して一連のサーバーにアーティファクトを展開する場合は、それらのサーバーへの "視野のある" 接続が必要です。When you use the agent to deploy artifacts to a set of servers, it must have "line of sight" connectivity to those servers. Microsoft がホストするエージェントプールは、既定では azure websites と azure で実行されているサーバーに接続しています。The Microsoft-hosted agent pools, by default, have connectivity to Azure websites and servers running in Azure.

注意

Azure リソースが Azure Virtual Network で実行されている場合は、エージェントによるアクセスを許可するように Azure VNet のファイアウォール規則を構成できるように、Microsoft がホストするエージェントがデプロイされている エージェントの IP 範囲 を取得できます。If your Azure resources are running in an Azure Virtual Network, you can get the Agent IP ranges where Microsoft-hosted agents are deployed so you can configure the firewall rules for your Azure VNet to allow access by the agent.

オンプレミスの環境が Microsoft がホストするエージェントプールに接続していない場合 (通常は中間ファイアウォールが原因の場合)、オンプレミスのコンピューターで自己ホスト型エージェントを手動で構成する必要があります。If your on-premises environments do not have connectivity to a Microsoft-hosted agent pool (which is typically the case due to intermediate firewalls), you'll need to manually configure a self-hosted agent on on-premises computer(s). 次の図に示すように、エージェントは、ターゲットのオンプレミス環境に接続し、インターネットにアクセスして Azure Pipelines または Team Foundation Server に接続する必要があります。The agents must have connectivity to the target on-premises environments, and access to the Internet to connect to Azure Pipelines or Team Foundation Server, as shown in the following schematic.

オンプレミス環境のエージェント接続

認証Authentication

エージェントを登録するには、エージェントプールの 管理者ロール のメンバーである必要があります。To register an agent, you need to be a member of the administrator role in the agent pool. エージェントプールの管理者の id は、登録時にのみ必要であり、エージェントには保存されず、エージェントと Azure Pipelines または TFS 間の後続の通信では使用されません。The identity of agent pool administrator is needed only at the time of registration and is not persisted on the agent, and is not used in any subsequent communication between the agent and Azure Pipelines or TFS. また、エージェントを構成するには、サーバーのローカル管理者である必要があります。In addition, you must be a local administrator on the server in order to configure the agent.

エージェントは、次の方法を使用して Azure Pipelines に対する認証を行うことができます。Your agent can authenticate to Azure Pipelines using the following method:

エージェントは、次のいずれかの方法を使用して Azure DevOps Server または TFS に対して認証できます。Your agent can authenticate to Azure DevOps Server or TFS using one of the following methods:

個人用アクセストークン (PAT):Personal Access Token (PAT):

PAT を生成して使用し、エージェントを Azure Pipelines または TFS 2017 以降に接続します。Generate and use a PAT to connect an agent with Azure Pipelines or TFS 2017 and newer. PAT は、Azure Pipelines で動作する唯一のスキームです。PAT is the only scheme that works with Azure Pipelines. PAT は、 エージェントプール (読み取り、管理) スコープを持っている必要があります ( デプロイグループ エージェントの場合は、pat に 配置グループ (読み取り、管理) スコープが必要です)。また、1つの pat を使用して複数のエージェントを登録する場合、pat はエージェントの登録時にのみ使用され、それ以降の 通信には使用さThe PAT must have Agent Pools (read, manage) scope (for a deployment group agent, the PAT must have Deployment group (read, manage) scope), and while a single PAT can be used for registering multiple agents, the PAT is used only at the time of registering the agent, and not for subsequent communication. 詳細については、 WindowsLinux、または macOS の自己ホスト型エージェントに関する記事に記載されている、個人用アクセストークン (PAT) を使用した認証に関するセクションを参照してください。For more information, see the Authenticate with a personal access token (PAT) section in the Windows, Linux, or macOS self-hosted agents articles.

PAT を TFS と共に使用するには、サーバーが HTTPS で構成されている必要があります。To use a PAT with TFS, your server must be configured with HTTPS. Web サイトの設定とセキュリティ」を参照してください。See Web site settings and security.

統合Integrated

NTLM や Kerberos などの Windows 認証スキームを使用してサインインしたユーザーの資格情報を使用して、Windows エージェントを TFS に接続します。Connect a Windows agent to TFS using the credentials of the signed-in user through a Windows authentication scheme such as NTLM or Kerberos.

この認証方法を使用するには、最初に TFS サーバーを構成する必要があります。To use this method of authentication, you must first configure your TFS server.

  1. TFS を実行しているコンピューターにサインインします。Sign into the machine where you are running TFS.

  2. インターネットインフォメーションサービス (IIS) マネージャーを起動します。Start Internet Information Services (IIS) Manager. TFS サイトを選択し、NTLM や Kerberos などの有効なプロバイダーで Windows 認証が有効になっていることを確認します。Select your TFS site and make sure Windows Authentication is enabled with a valid provider such as NTLM or Kerberos.

IIS TFS windows 認証

Ntlm プロバイダーを使用した IIS TFS windows 認証

ネゴシエートNegotiate

NTLM や Kerberos などの Windows 認証スキームを使用してサインインしているユーザー以外のユーザーとして TFS に接続します。Connect to TFS as a user other than the signed-in user through a Windows authentication scheme such as NTLM or Kerberos.

この認証方法を使用するには、最初に TFS サーバーを構成する必要があります。To use this method of authentication, you must first configure your TFS server.

  1. TFS を実行しているコンピューターにログオンします。Log on to the machine where you are running TFS.

  2. インターネットインフォメーションサービス (IIS) マネージャーを起動します。Start Internet Information Services (IIS) Manager. TFS サイトを選択し、Negotiate プロバイダーで Windows 認証が有効になっていること、および NTLM や Kerberos などの別の方法で有効になっていることを確認します。Select your TFS site and make sure Windows Authentication is enabled with the Negotiate provider and with another method such as NTLM or Kerberos.

IIS TFS windows 認証

Negotiate と ntlm プロバイダーを使用した IIS TFS windows 認証

代替Alternate

基本認証を使用して TFS に接続します。Connect to TFS using Basic authentication. この方法を使用するには、最初 に TFS で HTTPS を構成する必要があります。To use this method, you must first configure HTTPS on TFS.

この認証方法を使用するには、TFS サーバーを次のように構成する必要があります。To use this method of authentication, you must configure your TFS server as follows:

  1. TFS を実行しているコンピューターにサインインします。Sign in to the machine where you are running TFS.

  2. 基本認証を構成します。Configure basic authentication. tfx 基本認証を使用した Team Foundation Server 2015 に対するの使用」を参照してください。See Using tfx against Team Foundation Server 2015 using Basic Authentication.

対話型とサービスInteractive vs. service

自己ホスト型エージェントは、サービスまたは対話型プロセスとして実行できます。You can run your self-hosted agent as either a service or an interactive process. エージェントを構成した後は、最初に対話モードで実行し、動作を確認することをお勧めします。After you've configured the agent, we recommend you first try it in interactive mode to make sure it works. 次に、実稼働環境で使用するために、次のいずれかのモードでエージェントを実行し、確実に実行中状態のままにすることをお勧めします。Then, for production use, we recommend you run the agent in one of the following modes so that it reliably remains in a running state. また、これらのモードでは、マシンが再起動された場合にエージェントが自動的に起動します。These modes also ensure that the agent starts automatically if the machine is restarted.

  1. サービスとしてのAs a service. オペレーティングシステムの service manager を利用して、エージェントのライフサイクルを管理できます。You can leverage the service manager of the operating system to manage the lifecycle of the agent. また、エージェントをサービスとして実行すると、エージェントの自動アップグレードのエクスペリエンスが向上します。In addition, the experience for auto-upgrading the agent is better when it is run as a service.

  2. 自動ログオンが有効になっている対話型プロセスとしてAs an interactive process with auto-logon enabled. 場合によっては、UI テストの実行など、実稼働環境でのエージェントの実行が必要になることがあります。In some cases, you might need to run the agent interactively for production use - such as to run UI tests. エージェントがこのモードで実行するように構成されている場合、スクリーンセーバーも無効になります。When the agent is configured to run in this mode, the screen saver is also disabled. ドメインポリシーによっては、自動ログオンを有効にしたり、スクリーンセーバーを無効にしたりすることができない場合があります。Some domain policies may prevent you from enabling auto-logon or disabling the screen saver. このような場合は、ドメインポリシーから除外対象を検索したり、ドメインポリシーが適用されないワークグループコンピューターでエージェントを実行したりすることが必要になる場合があります。In such cases, you may need to seek an exemption from the domain policy, or run the agent on a workgroup computer where the domain policies do not apply.

    注意

    自動ログオンを有効にする場合、またはスクリーンセーバーを無効にする場合、セキュリティ上のリスクがあります。これは、他のユーザーがコンピューターにログオンし、自動的にログオンするアカウントを使用できるようにするためです。There are security risks when you enable automatic logon or disable the screen saver because you enable other users to walk up to the computer and use the account that automatically logs on. この方法で実行するようにエージェントを構成する場合は、コンピューターが物理的に保護されていることを確認する必要があります。たとえば、セキュリティで保護された施設に配置します。If you configure the agent to run in this way, you must ensure the computer is physically protected; for example, located in a secure facility. リモートデスクトップを使用して、自動ログオンでエージェントが実行されているコンピューターにアクセスすると、リモートデスクトップを閉じるだけでコンピューターがロックされ、このエージェントで実行されているすべての UI テストが失敗する可能性があります。If you use Remote Desktop to access the computer on which an agent is running with auto-logon, simply closing the Remote Desktop causes the computer to be locked and any UI tests that run on this agent may fail. これを回避するには、 tscon コマンドを使用してリモートデスクトップから切断します。To avoid this, use the tscon command to disconnect from Remote Desktop. 次に例を示します。For example:

    %windir%\System32\tscon.exe 1 /dest:console

エージェントアカウントAgent account

エージェントをサービスとして実行するか、対話形式で実行するかにかかわらず、エージェントの実行に使用するコンピューターアカウントを選択できます。Whether you run an agent as a service or interactively, you can choose which computer account you use to run the agent. (これは、エージェントを Azure Pipelines または TFS に登録するときに使用する資格情報とは異なることに注意してください)。エージェントアカウントの選択は、ビルドおよび配置ジョブで実行されているタスクのニーズにのみ依存します。(Note that this is different from the credentials that you use when you register the agent with Azure Pipelines or TFS.) The choice of agent account depends solely on the needs of the tasks running in your build and deployment jobs.

たとえば、外部サービスへのアクセスに Windows 認証を使用するタスクを実行するには、そのサービスへのアクセス権を持つアカウントを使用してエージェントを実行する必要があります。For example, to run tasks that use Windows authentication to access an external service, you must run the agent using an account that has access to that service. ただし、ブラウザーを必要とする Selenium やコード化された UI テストなどの UI テストを実行している場合、ブラウザーはエージェントアカウントのコンテキストで起動されます。However, if you are running UI tests such as Selenium or Coded UI tests that require a browser, the browser is launched in the context of the agent account.

Windows では、Network Service や Local Service などのサービスアカウントの使用を検討する必要があります。On Windows, you should consider using a service account such as Network Service or Local Service. これらのアカウントにはアクセス許可が制限されており、パスワードは期限切れになりません。つまり、エージェントの管理に時間がかかります。These accounts have restricted permissions and their passwords don't expire, meaning the agent requires less management over time.

エージェントのバージョンとアップグレードAgent version and upgrades

エージェントソフトウェアは、Azure Pipelines で数週間ごとに更新されます。We update the agent software every few weeks in Azure Pipelines. エージェントのバージョンを形式で指定し {major}.{minor} ます。We indicate the agent version in the format {major}.{minor}. たとえば、エージェントのバージョンがの場合、 2.1 メジャーバージョンは2で、マイナーバージョンは1です。For instance, if the agent version is 2.1, then the major version is 2 and the minor version is 1.

Microsoft がホストするエージェントは常に最新の状態に保たれます。Microsoft-hosted agents are always kept up-to-date. 新しいバージョンのエージェントが マイナー バージョンでのみ異なる場合は、通常、自己ホスト型エージェントを自動的に更新できます ( エージェントプール でこの設定を構成し、既定の 設定 を選択します)。これは Azure Pipelines です。If the newer version of the agent is only different in minor version, self-hosted agents can usually be updated automatically (configure this setting in Agent pools, select your agent, Settings - the default is enabled) by Azure Pipelines. プラットフォーム機能またはパイプラインで使用されているいずれかのタスクで新しいバージョンのエージェントが必要な場合は、アップグレードが要求されます。An upgrade is requested when a platform feature or one of the tasks used in the pipeline requires a newer version of the agent.

自己ホスト型エージェントを対話的に実行する場合、または新しい メジャー バージョンのエージェントが使用可能な場合は、エージェントを手動でアップグレードすることが必要になることがあります。If you run a self-hosted agent interactively, or if there is a newer major version of the agent available, then you may have to manually upgrade the agents. この操作は、組織の [ エージェントプール ] タブから簡単に実行できます。You can do this easily from the Agent pools tab under your organization. パイプラインは、互換性のあるエージェントをターゲットにできるようになるまで実行されません。Your pipelines won't run until they can target a compatible agent.

自己ホスト型エージェントを更新するにはTo update self-hosted agents

  1. [ プロジェクトの設定]、[ エージェントプール] の順に移動します。Navigate to Project settings, Agent pools.

    プロジェクト設定、エージェントプール

  2. エージェントプールを選択し、[ すべてのエージェントの更新] を選択します。Select your agent pool and choose Update all agents.

    すべてのエージェントの更新

    [ エージェント更新] を クリックして、エージェントを個別に更新することもできます。You can also update agents individually by choosing Update agent from the ... menu.

    エージェントの更新

  3. 更新プログラムを確認するには、[ 更新 ] を選択します。Select Update to confirm the update.

    すべてのエージェントの更新の確認

  4. 更新要求は、現在実行中のジョブが完了したときに実行される、プール内の各エージェントに対してキューに登録されます。An update request is queued for each agent in the pool, that runs when any currently running jobs complete. アップグレードには、通常、最新バージョンのエージェントソフトウェア (約 200 MB) をダウンロードし、解凍して、新しいバージョンでエージェントを再起動するのに十分な時間がかかります。Upgrading typically only takes a few moments - long enough to download the latest version of the agent software (approximately 200 MB), unzip it, and restart the agent with the new version. [ エージェント ] タブで、エージェントの状態を監視できます。You can monitor the status of your agents on the Agents tab.

Azure DevOps Server と TFS のすべての更新プログラムを使用して、エージェントソフトウェアを更新します。We update the agent software with every update in Azure DevOps Server and TFS. エージェントのバージョンを形式で指定し {major}.{minor} ます。We indicate the agent version in the format {major}.{minor}. たとえば、エージェントのバージョンがの場合、 2.1 メジャーバージョンは2で、マイナーバージョンは1です。For instance, if the agent version is 2.1, then the major version is 2 and the minor version is 1.

Azure DevOps Server または TFS サーバーに新しいバージョンのエージェントがあり、その新しいエージェントが マイナー バージョンでのみ異なる場合は、通常、自動的にアップグレードできます。When your Azure DevOps Server or TFS server has a newer version of the agent, and that newer agent is only different in minor version, it can usually be automatically upgraded. プラットフォーム機能またはパイプラインで使用されているいずれかのタスクで新しいバージョンのエージェントが必要な場合は、アップグレードが要求されます。An upgrade is requested when a platform feature or one of the tasks used in the pipeline requires a newer version of the agent. Azure DevOps Server 2019 以降では、新しいサーバーのリリースを待つ必要はありません。Starting with Azure DevOps Server 2019, you don't have to wait for a new server release. 新しいバージョンのエージェントをアプリケーション層にアップロードすることができ、そのバージョンはアップグレードとして提供されます。You can upload a new version of the agent to your application tier, and that version will be offered as an upgrade.

エージェントを対話的に実行する場合、または新しい メジャー バージョンのエージェントが使用可能な場合は、エージェントを手動でアップグレードすることが必要になることがあります。If you run the agent interactively, or if there is a newer major version of the agent available, then you may have to manually upgrade the agents. これは、プロジェクトコレクションの [ エージェントプール ] タブから簡単に実行できます。You can do this easily from the Agent pools tab under your project collection. パイプラインは、互換性のあるエージェントをターゲットにできるようになるまで実行されません。Your pipelines won't run until they can target a compatible agent.

エージェントのバージョンを表示するには、エージェント プール に移動し、目的のエージェントの [ 機能 ] タブを選択します。詳細については、「 エージェントの詳細の表示」を参照してください。You can view the version of an agent by navigating to Agent pools and selecting the Capabilities tab for the desired agent, as described in View agent details.

注意

インターネットにアクセスできない場合は、エージェントの zip ファイルをに手動でコピーして、を C:\ProgramData\Microsoft\Azure DevOps\Agents\ ローカルファイルとして使用します。For servers with no internet access, manually copy the agent zip file to C:\ProgramData\Microsoft\Azure DevOps\Agents\ to use as a local file.

よく寄せられる質問FAQ

V2 エージェントの最新バージョンがあることを操作方法してください。How do I make sure I have the latest v2 agent version?

  1. [ エージェントプール ] タブに移動します。Navigate to the Agent pools tab:

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

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

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

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

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

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

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

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

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

      コレクション設定、2019。

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

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

    1. プロジェクトに移動し、[ 設定 ] (歯車アイコン) > エージェントキュー] を選択します。Navigate to your project and choose Settings (gear icon) > Agent Queues.

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

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

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

    1. プロジェクトに移動し、[ 設定 ] (歯車アイコン) > エージェントキュー] を選択します。Navigate to your project and choose Settings (gear icon) > Agent Queues.

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

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

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

    1. プロジェクトに移動し、[ プロジェクトの管理 ] (歯車アイコン) を選択します。Navigate to your project and choose Manage project (gear icon).

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

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

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

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

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

  2. エージェントを含むプールをクリックします。Click the pool that contains the agent.

  3. エージェントが有効になっていることを確認します。Make sure the agent is enabled.

  4. [機能] タブに移動します。Navigate to the capabilities tab:

    1. [ エージェントプール ] タブで、目的のエージェントプールを選択します。From the Agent pools tab, select the desired agent pool.

      [エージェントプール] で、目的のエージェントプールを選択します。

    2. [ エージェント ] を選択し、目的のエージェントを選択します。Select Agents and choose the desired agent.

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

    3. [ 機能 ] タブを選択します。Choose the Capabilities tab.

      [機能] タブを選択します。

      注意

      Microsoft がホストするエージェントは、システム機能を表示しません。Microsoft-hosted agents don't display system capabilities. Microsoft がホストするエージェントにインストールされているソフトウェアの一覧については、「 microsoft がホストするエージェントの使用」を参照してください。For a list of software installed on Microsoft-hosted agents, see Use a Microsoft-hosted agent.

    1. [ エージェントプール ] タブで、目的のプールを選択します。From the Agent pools tab, select the desired pool.

      目的のプールを選択します。

    2. [ エージェント ] を選択し、目的のエージェントを選択します。Select Agents and choose the desired agent.

      [エージェント] を選択し、目的のエージェントを選択します。

    3. [ 機能 ] タブを選択します。Choose the Capabilities tab.

      [エージェント機能] タブ。

    1. [ エージェントプール ] タブで、目的のプールを選択します。From the Agent pools tab, select the desired pool.

      目的のタブ2019を選択します。

    2. [ エージェント ] を選択し、目的のエージェントを選択します。Select Agents and choose the desired agent.

      目的のエージェント2019を選択します。

    3. [ 機能 ] タブを選択します。Choose the Capabilities tab.

      [機能] タブ2019を選択します。

    目的のエージェントを選択し、[ 機能 ] タブを選択します。Select the desired agent, and choose the Capabilities tab.

    [エージェントの機能] タブ2018。

    目的のエージェントを選択し、[ 機能 ] タブを選択します。Select the desired agent, and choose the Capabilities tab.

    [エージェントの機能] タブ2017。

    [ エージェントプール ] タブで、目的のエージェントを選択し、[ 機能 ] タブを選択します。From the Agent pools tab, select the desired agent, and choose the Capabilities tab.

    [エージェント機能] タブ2015を選択します。

  5. 機能を探し Agent.Version ます。Look for the Agent.Version capability. この値は、公開されている最新のエージェントバージョンと比較して確認できます。You can check this value against the latest published agent version. Azure Pipelines エージェントに関するページを参照し、表示されている最新のバージョン番号を確認してください。See Azure Pipelines Agent and check the page for the highest version number listed.

  6. エージェントの新しいバージョンを必要とするタスクを実行すると、各エージェントが自動的に更新されます。Each agent automatically updates itself when it runs a task that requires a newer version of the agent. 一部のエージェントを手動で更新する場合は、プールを右クリックし、[ すべてのエージェントの更新] を選択します。If you want to manually update some agents, right-click the pool, and select Update all agents.

Azure DevOps Server プールの一部である v2 エージェントを更新できますか。Can I update my v2 agents that are part of an Azure DevOps Server pool?

はい。Yes. Azure DevOps Server 2019 以降では、ローカルディスク上のエージェントパッケージファイルを検索するようにサーバーを構成できます。Beginning with Azure DevOps Server 2019, you can configure your server to look for the agent package files on a local disk. この構成は、サーバーに付属する既定のバージョンをリリース時にオーバーライドします。This configuration will override the default version that came with the server at the time of its release. このシナリオは、サーバーがインターネットにアクセスできない場合にも適用されます。This scenario also applies when the server doesn't have access to the internet.

  1. インターネットにアクセスできるコンピューターから、 Azure Pipelines エージェントの GitHub リリースページから最新バージョンのエージェントパッケージファイル (.zip または tar 形式) をダウンロードします。From a computer with Internet access, download the latest version of the agent package files (in .zip or .tar.gz form) from the Azure Pipelines Agent GitHub Releases page.

  2. 選択した方法 (USB ドライブ、ネットワーク転送など) を使用して、ダウンロードしたパッケージファイルを各 Azure DevOps Server アプリケーション層に転送します。Transfer the downloaded package files to each Azure DevOps Server Application Tier by using a method of your choice (such as USB drive, Network transfer, and so on). エージェントファイルをフォルダーの下に配置し %ProgramData%\Microsoft\Azure DevOps\Agents ます。Place the agent files under the %ProgramData%\Microsoft\Azure DevOps\Agents folder.

  3. 準備が整いました!You're all set! エージェントが更新されるたびに、Azure DevOps Server によってローカルファイルが使用されるようになります。Your Azure DevOps Server will now use the local files whenever the agents are updated. エージェントの新しいバージョンを必要とするタスクを実行すると、各エージェントが自動的に更新されます。Each agent automatically updates itself when it runs a task that requires a newer version of the agent. ただし、一部のエージェントを手動で更新する場合は、プールを右クリックし、[ すべてのエージェントの更新] を選択します。But if you want to manually update some agents, right-click the pool, and then choose Update all agents.

自己ホスト型エージェントは、Microsoft がホストするエージェントよりもパフォーマンス上の利点がありますか。Do self-hosted agents have any performance advantages over Microsoft-hosted agents?

多くの場合、[はい] になります。In many cases, yes. 具体的な内容は次のとおりです。Specifically:

  • 自己ホスト型エージェントを使用する場合は、インクリメンタルビルドを実行できます。If you use a self-hosted agent, you can run incremental builds. たとえば、リポジトリをクリーニングせず、クリーンビルドを実行しないパイプラインを定義した場合、通常、ビルドはより高速に実行されます。For example, if you define a pipeline that does not clean the repo and does not perform a clean build, your builds will typically run faster. Microsoft がホストするエージェントを使用する場合、これらの利点は得られません。これは、ビルドまたはリリースパイプラインの完了後にエージェントが破棄されるためです。When you use a Microsoft-hosted agent, you don't get these benefits because the agent is destroyed after the build or release pipeline is completed.

  • Microsoft がホストするエージェントは、ビルドの開始に時間がかかることがあります。A Microsoft-hosted agent can take longer to start your build. ジョブが Microsoft ホストエージェントに割り当てられるまでには数秒しかかかりませんが、システムの負荷に応じてエージェントが割り当てられるまでに数分かかることがあります。While it often takes just a few seconds for your job to be assigned to a Microsoft-hosted agent, it can sometimes take several minutes for an agent to be allocated depending on the load on our system.

同じコンピューターに複数の自己ホスト型エージェントをインストールできますか。Can I install multiple self-hosted agents on the same machine?

はい。Yes. この方法は、多くの共有リソースを使用しないジョブを実行するエージェントに適しています。This approach can work well for agents that run jobs that don't consume many shared resources. たとえば、ほとんどの場合、配置を調整し、エージェント自体ではあまり多くの作業を行わないリリースを実行するエージェントに対してこれを実行できます。For example, you could try it for agents that run releases that mostly orchestrate deployments and don't do much work on the agent itself.

他のケースでは、同じコンピューター上で複数のエージェントを実行すると、効率が大幅に低下する可能性があります。You might find that in other cases you don't gain much efficiency by running multiple agents on the same machine. たとえば、大量のディスクおよび i/o リソースを消費するビルドを実行するエージェントにとっては価値がない場合があります。For example, it might not be worthwhile for agents that run builds that consume much disk and I/O resources.

また、並列ビルドジョブが npm パッケージなどの同じシングルトンツールデプロイを使用している場合にも、問題が発生する可能性があります。You might also run into problems if parallel build jobs are using the same singleton tool deployment, such as npm packages. たとえば、あるビルドが依存関係を更新しているときに、別のビルドがそれを使用しているときに、信頼性の低い結果やエラーが発生する可能性があります。For example, one build might update a dependency while another build is in the middle of using it, which could cause unreliable results and errors.