私はアプリケーションをビルドしようとしていますが、Windows OSやCentOS/UbuntuのようなLinuxで実行する必要があるアプリケーションもあります。パイプラインを設計する際に、どのようにWindows関連のタスク/ジョブがWindowsエージェントに送られ、すべてのLinux関連のジョブが適切なLinux OSに移動するかを確認するにはどうすればよいですか。GOCD - 複数のOS GOCDエージェントとパイプライン
これを達成するための理想的なアプローチは何でしょうか。
私はアプリケーションをビルドしようとしていますが、Windows OSやCentOS/UbuntuのようなLinuxで実行する必要があるアプリケーションもあります。パイプラインを設計する際に、どのようにWindows関連のタスク/ジョブがWindowsエージェントに送られ、すべてのLinux関連のジョブが適切なLinux OSに移動するかを確認するにはどうすればよいですか。GOCD - 複数のOS GOCDエージェントとパイプライン
これを達成するための理想的なアプローチは何でしょうか。
[ただ、より多くの情報を追加する]
あなたは、一般的に有効/囲碁ダッシュボードで「エージェント」タブを経由して(異なるオペレーティングシステムにインストールされている)移動エージェントを追加します。 [代理店]タブの[リソース]ボタンを使用して、複数のリソースでGoエージェントにタグを付けることができます。
ステージで(パイプラインで)ジョブを作成するときは、このジョブを実行するために使用するリソース(エージェントが移動する)を「ジョブ設定」の「リソース」フィールドで指定できます" タブ。
上記のリソースに基づいて、GoサーバーはGoエージェントを使用してジョブを割り当てます。 Goエージェントに複数のリソースをタグ付けすることができます。
これが役に立ちます。
特定のマシンで実行する必要があるパイプラインがいくつかあります。私は2つの方法でこれを達成します。
最初は環境を使用しています。特定の環境(例:開発、QA、生産)に特定のパイプラインを割り当てます。次に、開発関連のタスク/ジョブを実行する能力を持つエージェントを開発環境に割り当てます。 QA関連のタスク/ジョブを実行できるエージェントをQA環境に割り当てます。
これにより、開発環境にあるパイプラインは、開発環境にも割り当てられているエージェントだけで確実に実行されます。
エージェントが開発タスクとQAタスクの両方を実行できる場合は、エージェントを開発環境とQA環境の両方に割り当てます。
この同じ概念を使用して、特定の環境にWindowsエージェントのみが存在するようにすることができます。
たとえば、Windowsビルドを処理するパイプラインとエージェントを割り当てるDevelopement-Win環境を作成できます。もう1つは、Linuxビルドを処理するエージェントとパイプラインを割り当てる、開発-Linuxです。
私は複数の環境(Dev、QA、Prop)用に構築できるエージェントを持っているので、「ジョブ設定」タブで割り当てられた「リソース」も使用しています。ジョブをWindowsホスト上で実行する必要がある場合は、「win2012」のリソースを割り当てます。これは、この特定のタスクを実行するにはエージェントが "Windows 2012"のリソースを持っていなければならないことを示しています。
エージェントにWindows 2012リソースであることを示す「win2012」のリソースを割り当てます。
環境設定とリソース設定の組み合わせでは、ジョブはリソース要件を満たし、適切な環境にあるエージェントによってのみ実行されます。
タスクに複数のリソース要件がある場合は、コンマ区切りのリストを使用してタスクのそれぞれに割り当てることができます。私が使用するリソースの中には、msbuild、subversion、sqlcmdなどがあります。これはエージェントがmsbuild(コードをコンパイルする)、subversion(SVNから取得する)、sqlcmd(SQL Serverに対してSQLクエリを実行する)にアクセスできる必要があることを伝えます。次に、これらの特定のリソースを含むエージェントにマークを付けます。エージェントがこれらのリソース要件をすべて満たす場合にのみ、タスクが割り当てられます。
私はエージェントとジョブのリソースオプションが魔法をすると思います。ありがとう – user3121011