次の方法で共有


セルフホステッド macOS エージェント

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

この記事では、Azure DevOps Services と現在のバージョンの Azure DevOps Server で 3.x エージェント ソフトウェア を使用するためのガイダンスを提供します。 3.x エージェントをサポートする Azure DevOps Server バージョンの一覧については、「Azure DevOps Server で 3.x エージェントをサポートしていますか」を参照してください。

Xcode アプリをビルドしてデプロイするには、少なくとも 1 つの macOS エージェントが必要です。 このエージェントは、Java アプリと Android アプリをビルドしてデプロイすることもできます。

手記

この記事では、セルフホステッド エージェントを構成する方法について説明します。 Azure DevOps Services を使用していて、Microsoft がホストするエージェント がニーズを満たしている場合は、セルフホステッド macOS エージェントの設定をスキップできます。

エージェントについて

エージェントの概要と動作が既にわかっている場合は、次のセクションに進んでください。 ただし、それらが何を行い、どのように機能するかについてさらに背景を知りたい場合は、Azure Pipelines エージェント に関するページを参照してください。

前提条件を確認する

  • サポートされているオペレーティング システム
    • x64
      • macOS 10.15 "Catalina"
      • macOS 11.0 "Big Sur"
      • macOS 12.0 "モントレー"
      • macOS 13.0 "ベンチュラ"
      • macOS 14.0 "Sonoma"
    • ARM64
      • macOS 11.0 "Big Sur"
      • macOS 12.0 "モントレー"
      • macOS 13.0 "ベンチュラ"
      • macOS 14.0 "Sonoma"
  • Git - Git 2.9.0 以降 (推奨される最新バージョン - Homebrewで簡単にインストールできます)
  • .NET - エージェント ソフトウェアは .NET 6 で実行されますが、.NET の前提条件がないように独自のバージョンの .NET をインストールします。
  • TFVC - TFVC リポジトリからビルドする場合は、TFVC の前提条件を参照してください。

アクセス許可を準備する

Subversion リポジトリからビルドする場合は、Subversion クライアントをコンピューターにインストールする必要があります。

エージェントのセットアップは、初めて手動で実行する必要があります。 エージェントの動作を確認した後、または多数のエージェントの設定を自動化する場合は、無人構成を使用することを検討してください。

セルフホステッド エージェントの情報セキュリティ

エージェントを構成するユーザーにはプール管理者のアクセス許可が必要ですが、エージェントを実行しているユーザーには必要ありません。

エージェントによって制御されるフォルダーには、復号化または流出できるシークレットが含まれているため、できるだけ少数のユーザーに制限する必要があります。

Azure Pipelines エージェントは、外部ソースからダウンロードしたコードを実行するように設計されたソフトウェア製品です。 本質的には、リモート コード実行 (RCE) 攻撃のターゲットになる可能性があります。

そのため、パイプライン エージェントの個々の使用状況を取り巻く脅威モデルを考慮して作業を実行し、エージェントを実行しているユーザーに付与できる最小限のアクセス許可を、エージェントが実行されるマシンに対して、Pipeline 定義への書き込みアクセス権を持つユーザー (yaml が格納されている Git リポジトリ) に決定することが重要です。 または、新しいパイプラインのプールへのアクセスを制御するユーザーのグループ。

エージェントを実行している ID を、エージェントをプールに接続するアクセス許可を持つ ID とは異なって使用することをお勧めします。 資格情報 (およびその他のエージェント関連ファイル) を生成するユーザーは、それらを読み取る必要があるユーザーとは異なります。 そのため、エージェント マシン自体に付与されるアクセスと、ログや成果物などの機密ファイルを含むエージェント フォルダーを慎重に検討する方が安全です。

エージェント フォルダーへのアクセス権を付与するのは、DevOps 管理者と、エージェント プロセスを実行しているユーザー ID に対してのみ行うのが理にかなっています。 管理者は、ファイル システムを調査してビルドエラーを理解したり、ログ ファイルを取得して Azure DevOps のエラーを報告したりする必要がある場合があります。

使用するユーザーを決定する

1 回限りの手順として、エージェントを登録する必要があります。 エージェント キュー を管理 アクセス許可を持つユーザーは、次の手順を実行する必要があります。 エージェントは、日常的な操作ではこのユーザーの資格情報を使用しませんが、登録を完了する必要があります。 エージェントの通信方法の詳細を確認します。

ユーザーにアクセス許可があることを確認する

使用するユーザー アカウントに、エージェントを登録するアクセス許可があることを確認します。

ユーザーが Azure DevOps 組織の所有者か、TFS か Azure DevOps Server 管理者か。 ここで停止、許可があります。

それ以外の場合は:

  1. ブラウザーを開き、Azure Pipelines 組織または Azure DevOps Server または TFS サーバーの エージェント プール タブに移動します。

    1. 組織にログインします (https://dev.azure.com/{yourorganization})。

    2. [Azure DevOps]、[組織の設定] を選択します。

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

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

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

    1. プロジェクト コレクション (http://your-server/DefaultCollection) にサインインします。

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

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

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

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

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

      コレクションの設定、2019 年。

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

      エージェント プールの選択(2019 年)。

  2. ページの右側にあるプールを選択し、セキュリティをクリックします。

  3. 使用するユーザー アカウントが表示されない場合は、管理者に追加してもらう必要があります。 管理者は、エージェント プール管理者、Azure DevOps 組織所有者、または TFS または Azure DevOps Server 管理者することができます。

    エージェント 展開グループの場合、管理者は、デプロイ グループ管理者、Azure DevOps 組織所有者、または TFS または Azure DevOps Server 管理者にすることができます。

    Azure Pipelinesの デプロイ グループ ページの セキュリティ タブで、デプロイ グループ管理者ロール ユーザーを追加できます。

手記

次のようなメッセージが表示された場合:申し訳ございません。ID を追加できませんでした。別の ID を試してください。、組織の所有者または TFS または Azure DevOps Server 管理者に対して、上記の手順に従った可能性があります。 何もする必要はありません。エージェント プールを管理するアクセス許可が既にあります。

エージェントをダウンロードして構成する

Azure Pipelines(アジュール・パイプラインズ)

  1. 前のセクションで説明したように、アクセス許可を準備したアカウントを使用してマシンにログオンします。

  2. Web ブラウザーで Azure Pipelines にサインインし、エージェント プールの [] タブに移動します。

    1. 組織にサインインしてください (https://dev.azure.com/{yourorganization})。

    2. Azure DevOpsを選択し、組織の設定を選択します。

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

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

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

    1. プロジェクト コレクション (http://your-server/DefaultCollection) にサインインします。

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

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

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

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

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

      コレクションの設定、2019 年。

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

      エージェント プールの選択(2019 年)。

  3. 既定の プールを選択し、エージェント タブを選択し、新しいエージェントを選択します。

  4. [エージェントの取得] ダイアログ ボックスで、[macOS] をクリックします。

  5. [ダウンロード] ボタンをクリックします。

  6. ページの指示に従います。

  7. tar ファイルの拡張属性をクリアします: xattr -c vsts-agent-osx-x64-V.v.v.tar.gz

  8. エージェントを選択したディレクトリに解凍して配置します。 そのディレクトリに cd し、./config.shを実行します。 ツールとスクリプトがスペースを正しくエスケープするとは限らないので、ディレクトリへのパスにスペースが含まれていないことを確認してください。

サーバー アドレス

Azure Pipelines: https://dev.azure.com/{your-organization}

Azure DevOps Server: https://{your_server}/tfs

認証の種類

エージェントを登録するときに、次の認証の種類から選択すると、エージェントのセットアップによって、各認証の種類に必要な特定の追加情報の入力が求められます。 詳細については、「セルフホステッド エージェント認証オプションの」を参照してください。

  • 個人用アクセス トークン
  • 代替 基本認証を使用して Azure DevOps Server または TFS に接続します。 代替 を選択すると、資格情報の入力を求められます。

対話的な実行

エージェントを対話モードで実行するか、サービスとして実行するかのガイダンスについては、「エージェント: 対話型とサービスの」を参照してください。

エージェントを対話形式で実行するには:

  1. エージェントをサービスとして実行している場合は、サービスをアンインストール

  2. エージェントを実行します。

    ./run.sh
    

エージェントを再起動するには、Ctrl キーを押しながら C キーを押し、run.sh を実行して再起動します。

エージェントを使用するには、エージェントのプールを使用して ジョブを実行します。 別のプールを選択しなかった場合、エージェントは Default プールに配置されます。

1 回実行

対話形式で実行するように構成されたエージェントの場合は、エージェントに 1 つのジョブのみを受け入れるように選択できます。 この構成で実行するには:

./run.sh --once

このモードのエージェントは、1 つのジョブのみを受け入れてから、正常にスピンダウンします (Azure Container Instances などのサービスで実行する場合に便利です)。

起動されたサービスとして実行する

launchd LaunchAgent サービスとしてエージェントを実行および管理するための ./svc.sh スクリプトが用意されています。 このスクリプトは、エージェントを構成した後に生成されます。 サービスは UI テストを実行するための UI にアクセスできます。

手記

他の方法を使用する場合は、任意の種類のサービス メカニズムを使用できます。 サービスファイルを参照してください。

トークン

次のセクションでは、これらのトークンが置き換えられます。

  • {agent-name}

  • {tfs-name}

たとえば、前の例に示すように、our-osx-agentという名前でエージェントを構成したとします。 次の例では、{tfs-name} は次のいずれかです。

  • Azure Pipelines: 組織の名前。 たとえば、https://dev.azure.com/fabrikamに接続する場合、サービス名は vsts.agent.fabrikam.our-osx-agent

  • TFS: オンプレミスの TFS AT サーバーの名前。 たとえば、http://our-server:8080/tfsに接続する場合、サービス名は vsts.agent.our-server.our-osx-agent

コマンド

エージェント ディレクトリに移動する

たとえば、ホーム ディレクトリの myagent サブフォルダーにインストールした場合は、次のようになります。

cd ~/myagent$

取り付ける

命令:

./svc.sh install

このコマンドは、./runsvc.shを指す launchd plist を作成します。 このスクリプトでは、環境を設定し (次のセクションで詳しく説明します)、エージェントのホストを起動します。

先頭

命令:

./svc.sh start

アウトプット:

starting vsts.agent.{tfs-name}.{agent-name}
status vsts.agent.{tfs-name}.{agent-name}:

/Users/{your-name}/Library/LaunchAgents/vsts.agent.{tfs-name}.{agent-name}.plist

Started:
13472 0 vsts.agent.{tfs-name}.{agent-name}

サービスが実行されている場合、左側の数値は pid です。 2 番目の数値が 0 でない場合は、問題が発生しました。

地位

命令:

./svc.sh status

アウトプット:

status vsts.agent.{tfs-name}.{agent-name}:

/Users/{your-name}/Library/LaunchAgents/vsts.{tfs-name}.{agent-name}.testsvc.plist

Started:
13472 0 vsts.agent.{tfs-name}.{agent-name}

サービスが実行されている場合、左側の数値は pid です。 2 番目の数値が 0 でない場合は、問題が発生しました。

止める

命令:

./svc.sh stop

アウトプット:

stopping vsts.agent.{tfs-name}.{agent-name}
status vsts.agent.{tfs-name}.{agent-name}:

/Users/{your-name}/Library/LaunchAgents/vsts.{tfs-name}.{agent-name}.testsvc.plist

Stopped

アンインストール

アンインストールする前に停止する必要があります。

命令:

./svc.sh uninstall

自動ログインとロック

通常、エージェント サービスはユーザーがログインした後にのみ実行されます。 マシンの再起動時にエージェント サービスを自動的に開始する場合は、起動時に自動的にログインしてロックするようにマシンを構成できます。 「起動時に自動的にログインするように Mac を設定する - Apple サポートを参照してください。

手記

詳細については、「ターミナルリーギーキー:自動ログインをより安全に使用する ブログを参照してください。 そのブログに記載されている .plist ファイルは元の場所では利用できなくなっている可能性がありますが、コピーはここで見つけることができます:Lifehacker - OS X をログイン前にデスクトップにロードする

環境変数を更新する

サービスを構成すると、PATH、LANG、JAVA_HOME、ANT_HOME、MYSQL_PATHなど、現在のログオン ユーザーに役立つ環境変数のスナップショットが取得されます。 変数を更新する必要がある場合 (たとえば、新しいソフトウェアをインストールした後):

./env.sh
./svc.sh stop
./svc.sh start

環境変数のスナップショットは、エージェントのルート ディレクトリの下 .env ファイルに格納されます。また、そのファイルを直接変更して環境変数の変更を適用することもできます。

サービスを開始する前に手順を実行する

独自の命令とコマンドを実行して、サービスの開始時に実行することもできます。 たとえば、環境を設定したり、スクリプトを呼び出したりすることができます。

  1. runsvc.shを編集します。

  2. 次の行を手順に置き換えます。

    # insert anything to setup env when running as a service
    

サービス ファイル

サービスをインストールすると、一部のサービス ファイルが配置されます。

.plist サービス ファイル

.plist サービス ファイルが作成されます。

~/Library/LaunchAgents/vsts.agent.{tfs-name}.{agent-name}.plist

例えば:

~/Library/LaunchAgents/vsts.agent.fabrikam.our-osx-agent.plist

./svc.sh install は、このテンプレートからこのファイルを生成します: ./bin/vsts.agent.plist.template

.service ファイル

./svc.sh start は、上記の plist サービス ファイルへのパスを含む .service ファイルを読み取ってサービスを検索します。

代替サービス メカニズム

./svc.sh スクリプトは、launchd LaunchAgent サービスとしてエージェントを実行および管理するための便利な方法として提供されます。 ただし、任意の種類のサービス メカニズムを使用できます。

上記のテンプレートを使用して、他の種類のサービス ファイルの生成を容易にすることができます。 たとえば、UI テストが不要で、自動ログオンとロックを構成したくない場合は、起動デーモンとして実行されるサービスを生成するようにテンプレートを変更します。 Apple 開発者ライブラリ : 起動デーモンとエージェントの作成を参照してください。

エージェントを置き換える

エージェントを置き換えるには、ダウンロードに従って、エージェント の手順をもう一度構成します。

既に存在するエージェントと同じ名前を使用してエージェントを構成すると、既存のエージェントを置き換えるかどうかを確認するメッセージが表示されます。 Y答えた場合は、置き換えるエージェント (下記参照) を必ず削除してください。 そうしないと、数分間の競合の後、エージェントの 1 つがシャットダウンされます。

エージェントの削除と再構成

エージェントを削除するには:

  1. 前のセクションで説明したように、サービスを停止してアンインストールします。

  2. エージェントを削除します。

    ./config.sh remove
    
  3. 資格情報を入力します。

エージェントを削除したら、再度構成できます。

無人構成

エージェントは、人間の介入なしでスクリプトから設定できます。 --unattended をクリアし、すべての質問に正しく回答する必要があります。

エージェントを構成するには、組織への URL、またはエージェントのセットアップを承認されたユーザーのコレクションと資格情報を知っている必要があります。 その他の応答はすべて省略可能です。 代わりに環境変数を使用して任意のコマンド ライン パラメーターを指定できます。名前を大文字にし、先頭に VSTS_AGENT_INPUT_します。 たとえば、--passwordを指定する代わりに VSTS_AGENT_INPUT_PASSWORD します。

必須オプション

  • --unattended - エージェントのセットアップでは情報の入力を求めず、すべての設定をコマンド ラインで指定する必要があります
  • --url <url> - サーバーの URL。 例: https://dev.azure.com/myorganization または http://my-azure-devops-server:8080/tfs
  • --auth <type> - 認証の種類。 有効な値は次のとおりです。
    • pat (個人用アクセス トークン) - PAT は、Azure DevOps Services で動作する唯一のスキームです。
    • alt (基本認証)

認証オプション

  • --auth patを選択した場合:
    • --token <token> - 個人用アクセス トークンを指定します
    • PAT は、Azure DevOps Services で動作する唯一のスキームです。
  • --auth negotiate または --auth altを選択した場合:
    • --userName <userName> - ユーザー名を指定します
    • --password <password> - パスワードを指定します

プール名とエージェント名

  • --pool <pool> - エージェントが参加するプールの名前
  • --agent <agent> - エージェント名
  • --replace - プール内のエージェントを置き換えます。 別のエージェントが同じ名前でリッスンしている場合、競合で失敗し始めます

エージェントのセットアップ

  • --work <workDirectory> - ジョブ データが格納されている作業ディレクトリ。 既定では、エージェント ディレクトリのルートの下の _work です。 作業ディレクトリは特定のエージェントによって所有されており、複数のエージェント間で共有しないでください。
  • --acceptTeeEula - Team Explorer Everywhere エンド ユーザー ライセンス契約に同意する (macOS および Linux のみ)
  • --disableloguploads - コンソール ログ出力をサーバーにストリーミングしたり送信したりしないでください。 代わりに、ジョブの完了後にエージェント ホストのファイルシステムからそれらを取得できます。

配置グループのみ

  • --deploymentGroup - エージェントをデプロイ グループ エージェントとして構成する
  • --deploymentGroupName <name> - --deploymentGroup と共に使用して、エージェントが参加するデプロイ グループを指定します
  • --projectName <name> - プロジェクト名を設定するために --deploymentGroup と共に使用されます
  • --addDeploymentGroupTags - デプロイ グループ タグを追加する必要があることを示すために、--deploymentGroup と共に使用されます
  • --deploymentGroupTags <tags> - --addDeploymentGroupTags と共に使用して、デプロイ グループ エージェントのタグのコンマ区切りリストを指定します (例: "web,db")

環境のみ

  • --addvirtualmachineresourcetags - 環境リソース タグを追加する必要があることを示すために使用されます
  • --virtualmachineresourcetags <tags> - --addvirtualmachineresourcetags と共に使用して、環境リソース エージェントのタグのコンマ区切りの一覧を指定します (例: "web,db"

./config.sh --help 常に、必要な最新の応答と省略可能な応答が一覧表示されます。

診断

セルフホステッド エージェントで問題が発生した場合は、診断の実行を試すことができます。 エージェントを構成した後:

./run.sh --diagnostics

これは、問題のトラブルシューティングに役立つ可能性のある診断スイートを介して実行されます。 診断機能は、エージェント バージョン 2.165.0 以降で使用できます。

セルフホステッド エージェントのネットワーク診断

Agent.Diagnostic の値を true に設定して、セルフホステッド エージェントのネットワークの問題のトラブルシューティングに使用できる追加のログを収集します。 詳細については、「セルフホステッド エージェントのネットワーク診断」を参照してください。

その他のオプションに関するヘルプ

その他のオプションについては、以下をご覧ください。

./config.sh --help

このヘルプでは、認証の代替方法と無人構成に関する情報を提供します。

資格

エージェントの機能はプールにカタログ化およびアドバタイズされるため、エージェントが処理できるビルドとリリースのみが割り当てられます。 ビルドおよびリリース エージェントの機能を参照してください。

多くの場合、エージェントをデプロイした後、ソフトウェアまたはユーティリティをインストールする必要があります。 通常は、開発用コンピューターで使用するソフトウェアやツールをエージェントにインストールする必要があります。

たとえば、ビルドに npm タスクが含まれている場合、npm がインストールされているプールにビルド エージェントがない限り、ビルドは実行されません。

重要

機能には、すべての環境変数と、エージェントの実行時に設定される値が含まれます。 エージェントの実行中にこれらの値のいずれかが変更された場合は、新しい値を取得するためにエージェントを再起動する必要があります。 エージェントに新しいソフトウェアをインストールした後、新しい機能がプールに表示されるようにエージェントを再起動して、ビルドを実行できるようにする必要があります。

環境変数を機能として除外する場合は、環境変数 VSO_AGENT_IGNORE、無視する変数のコンマ区切りリストを設定して指定できます。

FAQ

最新のエージェント バージョンを使用していることを確認するにはどうすればよいですか?

  1. エージェント プールの [] タブに移動します。

    1. 組織にログインしてください (https://dev.azure.com/{yourorganization})。

    2. Azure DevOps組織の設定を選択します。

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

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

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

    1. プロジェクト コレクション (http://your-server/DefaultCollection) にサインインします。

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

      コレクションの設定を選びます。

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

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

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

      コレクションの設定、2019 年。

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

      エージェント プールの選択(2019 年)。

  2. エージェントを含むプールをクリックします。

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

  4. [機能] タブに移動します。

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

      エージェント プールから、目的のエージェント プールを選択します。

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

      [エージェント] を選んで、エージェントを選びます。

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

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

      手記

      Microsoft がホストするエージェントでは、システム機能は表示されません。 Microsoft ホスト型エージェントにインストールされているソフトウェアの一覧については、「Microsoft ホスト型エージェントを使用する」を参照してください。

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

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

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

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

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

      エージェント機能タブ。

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

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

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

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

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

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

  5. Agent.Version 機能を探します。 この値は、公開されている最新のエージェント バージョンと照らして確認できます。 Azure Pipelines エージェントの を参照し、一覧に記載されている最も高いバージョン番号のページを確認してください。

  6. 各エージェントは、新しいバージョンのエージェントを必要とするタスクを実行すると、自動的に更新されます。 一部のエージェントを手動で更新する場合は、プールを右クリックし、[すべてのエージェント更新] を選択します。

Azure DevOps Server プールの一部であるエージェントを更新できますか?

はい。 Azure DevOps Server 2019 以降では、ローカル ディスク上のエージェント パッケージ ファイルを検索するようにサーバーを構成できます。 この構成は、リリース時にサーバーに付属している既定のバージョンをオーバーライドします。 このシナリオは、サーバーがインターネットにアクセスできない場合にも適用されます。

  1. インターネットにアクセスできるコンピューターから、Azure Pipelines Agent GitHub リリース ページから最新バージョンのエージェント パッケージ ファイル (.zip または .tar.gz 形式) をダウンロードします。

  2. 任意の方法 (USB ドライブ、ネットワーク転送など) を使用して、ダウンロードしたパッケージ ファイルを各 Azure DevOps Server アプリケーション層に転送します。 エージェント ファイルを次のフォルダーに配置します。

  • Windows: %ProgramData%\Microsoft\Azure DevOps\Agents
  • Linux: usr/share/Microsoft/Azure DevOps/Agents
  • macOS: usr/share/Microsoft/Azure DevOps/Agents

Agents フォルダーが存在しない場合は作成します。

  1. これですべて完了です。 エージェントが更新されるたびに、Azure DevOps Server によってローカル ファイルが使用されるようになります。 各エージェントは、新しいバージョンのエージェントを必要とするタスクを実行すると、自動的に更新されます。 ただし、一部のエージェントを手動で更新する場合は、プールを右クリックし、[ すべてのエージェント更新] を選択します。

最新のエージェント バージョンを使用していることを確認するにはどうすればよいですか?

  1. エージェント プールの [] タブに移動します。

    1. 組織にログインしてください (https://dev.azure.com/{yourorganization})。

    2. [Azure DevOps][組織の設定] の順に選びます。

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

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

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

    1. プロジェクト コレクション (http://your-server/DefaultCollection) にサインインします。

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

      [コレクションの設定を選択] してください。

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

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

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

      コレクションの設定、2019 年。

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

      エージェント プールの選択(2019 年)。

  2. エージェントを含むプールをクリックします。

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

  4. [機能] タブに移動します。

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

      エージェント プールから、目的のエージェント プールを選択します。

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

      [エージェント] を選んで、エージェントを選びます。

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

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

      手記

      Microsoft がホストするエージェントでは、システム機能は表示されません。 Microsoft ホスト型エージェントにインストールされているソフトウェアの一覧については、「Microsoft ホスト型エージェントを使用する」を参照してください。

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

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

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

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

    3. 機能 タブを選択します。

      エージェント機能タブ。

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

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

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

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

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

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

  5. Agent.Version 機能を探します。 この値は、公開されている最新のエージェント バージョンと照らして確認できます。 Azure Pipelines エージェントの を参照し、一覧に記載されている最も高いバージョン番号のページを確認してください。

  6. 各エージェントは、新しいバージョンのエージェントを必要とするタスクを実行すると、自動的に更新されます。 一部のエージェントを手動で更新する場合は、プールを右クリックし、[すべてのエージェント更新] を選択します。

Azure DevOps Server プールの一部であるエージェントを更新できますか?

はい。 Azure DevOps Server 2019 以降では、ローカル ディスク上のエージェント パッケージ ファイルを検索するようにサーバーを構成できます。 この構成は、リリース時にサーバーに付属している既定のバージョンをオーバーライドします。 このシナリオは、サーバーがインターネットにアクセスできない場合にも適用されます。

  1. インターネットにアクセスできるコンピューターから、Azure Pipelines Agent GitHub リリース ページから最新バージョンのエージェント パッケージ ファイル (.zip または .tar.gz 形式) をダウンロードします。

  2. 任意の方法 (USB ドライブ、ネットワーク転送など) を使用して、ダウンロードしたパッケージ ファイルを各 Azure DevOps Server アプリケーション層に転送します。 エージェント ファイルを次のフォルダーに配置します。

  • Windows: %ProgramData%\Microsoft\Azure DevOps\Agents
  • Linux: usr/share/Microsoft/Azure DevOps/Agents
  • macOS: usr/share/Microsoft/Azure DevOps/Agents

Agents フォルダーが存在しない場合は作成します。

  1. これですべて完了です。 エージェントが更新されるたびに、Azure DevOps Server によってローカル ファイルが使用されるようになります。 各エージェントは、新しいバージョンのエージェントを必要とするタスクを実行すると、自動的に更新されます。 ただし、一部のエージェントを手動で更新する場合は、プールを右クリックし、[ すべてのエージェント更新] を選択します。

起動されたサービスのしくみの詳細については、どこで確認できますか?

Apple Developer Library: 起動デーモンとエージェントの作成

ファイアウォールを実行していて、コードが Azure Repos にあります。 エージェントが通信する必要がある URL は何ですか?

ファイアウォールの背後にあるセキュリティで保護されたネットワークでエージェントを実行している場合は、エージェントが次の URL と IP アドレスとの通信を開始できることを確認します。

ドメイン URL 説明
https://{organization_name}.pkgs.visualstudio.com {organization_name}.visualstudio.com ドメインを使用する組織向けの Azure DevOps Packaging API
https://{organization_name}.visualstudio.com {organization_name}.visualstudio.com ドメインを使用している組織の場合
https://{organization_name}.vsblob.visualstudio.com {organization_name}.visualstudio.com ドメインを使用している組織向けの Azure DevOps テレメトリ
https://{organization_name}.vsrm.visualstudio.com {organization_name}.visualstudio.com ドメインを使用する組織向けの管理サービスのリリース
https://{organization_name}.vssps.visualstudio.com {organization_name}.visualstudio.com ドメインを使用する組織向けの Azure DevOps Platform Services
https://{organization_name}.vstmr.visualstudio.com {organization_name}.visualstudio.com ドメインを使用する組織向けの Azure DevOps Test Management Services
https://*.blob.core.windows.net Azure Artifacts
https://*.dev.azure.com dev.azure.com ドメインを使用している組織の場合
https://*.vsassets.io CDN を使用した Azure Artifacts
https://*.vsblob.visualstudio.com dev.azure.com ドメインを使用している組織向けの Azure DevOps テレメトリ
https://*.vssps.visualstudio.com dev.azure.com ドメインを使用する組織向けの Azure DevOps Platform Services
https://*.vstmr.visualstudio.com dev.azure.com ドメインを使用する組織向けの Azure DevOps Test Management Services
https://app.vssps.visualstudio.com {organization_name}.visualstudio.com ドメインを使用している組織の場合
https://dev.azure.com dev.azure.com ドメインを使用している組織の場合
https://login.microsoftonline.com Microsoft Entra サインイン
https://management.core.windows.net Azure Management API
https://vstsagentpackage.azureedge.net エージェント パッケージ

組織が既存のファイアウォールまたは IP 制限と連携するようにするには、dev.azure.com*dev.azure.com が開かれていることを確認し、許可リストの IP アドレスを更新して、IP のバージョンに基づいて次の IP アドレスを含めます。 現在、13.107.6.18313.107.9.183 IP アドレスの一覧表示を許可している場合は、それらを削除する必要はないので、そのままにしておきます。

IPv4 範囲

  • 13.107.6.0/24
  • 13.107.9.0/24
  • 13.107.42.0/24
  • 13.107.43.0/24

IPv6 範囲

  • 2620:1ec:4::/48
  • 2620:1ec:a92::/48
  • 2620:1ec:21::/48
  • 2620:1ec:22::/48

手記

許可されるアドレスの詳細については、「許可 アドレス一覧とネットワーク接続を参照してください。

自己署名証明書を使用してエージェントを実行するにはどうすればよいですか?

自己署名証明書を使用してエージェントを実行

Web プロキシの背後でエージェントを実行するにはどうすればよいですか?

Web プロキシ の背後でエージェントを実行する

エージェントを再起動する方法

エージェントを対話形式で実行している場合は、「対話形式で実行」の再起動手順を参照してください。 エージェントをサービスとして実行している場合は、次の手順に従ってエージェントを 停止 し、次に 開始 します。

Web プロキシをバイパスして Azure Pipelines に接続するようにエージェントを構成するにはどうすればよいですか?

エージェントがプロキシをバイパスして Azure Pipelines に直接接続する場合は、エージェントが次の URL にアクセスできるように Web プロキシを構成する必要があります。

*.visualstudio.com ドメインを使用している組織の場合:

https://login.microsoftonline.com
https://app.vssps.visualstudio.com 
https://{organization_name}.visualstudio.com
https://{organization_name}.vsrm.visualstudio.com
https://{organization_name}.vstmr.visualstudio.com
https://{organization_name}.pkgs.visualstudio.com
https://{organization_name}.vssps.visualstudio.com

dev.azure.com ドメインを使用している組織の場合:

https://dev.azure.com
https://*.dev.azure.com
https://login.microsoftonline.com
https://management.core.windows.net
https://vstsagentpackage.azureedge.net
https://vssps.dev.azure.com

組織が既存のファイアウォールまたは IP 制限と連携するようにするには、dev.azure.com*dev.azure.com が開かれていることを確認し、許可リストの IP アドレスを更新して、IP のバージョンに基づいて次の IP アドレスを含めます。 現在、13.107.6.18313.107.9.183 IP アドレスの一覧表示を許可している場合は、それらを削除する必要はないので、そのままにしておきます。

IPv4 範囲

  • 13.107.6.0/24
  • 13.107.9.0/24
  • 13.107.42.0/24
  • 13.107.43.0/24

IPv6 範囲

  • 2620:1ec:4::/48
  • 2620:1ec:a92::/48
  • 2620:1ec:21::/48
  • 2620:1ec:22::/48

手記

この手順により、エージェントは Web プロキシをバイパスできます。 ビルド パイプラインとスクリプトでは、ビルドで実行するタスクとツールごとに Web プロキシのバイパスを処理する必要があります。

たとえば、NuGet タスクを使用している場合は、使用している NuGet フィードをホストするサーバーの URL のバイパスをサポートするように Web プロキシを構成する必要があります。

私はTFSを使用しており、上記のセクションのURLは私のために機能しません。 ヘルプはどこで入手できますか?

Web サイトの設定とセキュリティ

オンプレミスで TFS を使用していて、これらの機能の一部が表示されません。 なぜ駄目なのですか。

これらの機能の一部は、Azure Pipelines でのみ使用でき、まだオンプレミスでは使用できません。 TFSの最新バージョンに アップグレードした場合、一部の機能はオンプレミスで使用できます。

TFVC の前提条件

TFVC を使用する場合は、Oracle Java JDK 1.6 以降も必要です。 (Oracle JRE と OpenJDK では、この目的には十分ではありません)。

TEE プラグイン は TFVC 機能に使用されます。 これには EULA が含まれており、TFVC を使用する予定の場合は、構成時に同意する必要があります。

TEE プラグインは維持されなくなり、古い Java 依存関係がいくつか含まれるため、エージェント 2.198.0 以降ではエージェントディストリビューションに含まれません。 ただし、TFVC リポジトリをチェックアウトしている場合は、チェックアウト タスクの実行中に TEE プラグインがダウンロードされます。 TEE プラグインは、ジョブの実行後に削除されます。

手記

注: このダウンロード メカニズムのために、チェックアウト タスクの作業開始に時間がかかる場合があります。

エージェントがプロキシまたはファイアウォールの背後で実行されている場合は、次のサイトへのアクセスを確実に受け入れる必要があります: https://vstsagenttools.blob.core.windows.net/。 TEE プラグインはこのアドレスからダウンロードされます。

セルフホステッド エージェントを使用していて、TEE のダウンロードに関する問題が発生している場合は、TEE を手動でインストールできます。

  1. 環境変数またはパイプライン変数 DISABLE_TEE_PLUGIN_REMOVALtrueに設定します。 この変数により、TFVC リポジトリのチェックアウト後にエージェントが TEE プラグインを削除できなくなります。
  2. Team Explorer Everywhere GitHub リリースから TEE-CLC バージョン 14.135.0 を手動でダウンロードします。
  3. TEE-CLC-14.135.0 フォルダーの内容を <agent_directory>/externals/teeに抽出します。