【问题标题】:GOCD - Multiple OS GOCD Agents and pipelinesGOCD - 多个操作系统 GOCD 代理和管道
【发布时间】:2017-04-19 01:59:37
【问题描述】:

我正在尝试构建一个应用程序,其中一些应在 Windows 操作系统上执行,而另一些应在 Linux 中执行,如 Centos/Ubuntu。在设计管道时,如何确保所有与 windows 相关的任务/作业都应该转到 windows 代理,所有与 linux 相关的作业都应该转到适当的 linux 操作系统。

实现这一目标的理想方法是什么。

【问题讨论】:

  • 我认为代理和工作中的资源选项会发挥作用。谢谢

标签: go-cd


【解决方案1】:

[只是为了补充更多信息]

您通常通过 Go 仪表板中的“代理”选项卡启用/添加 Go 代理(安装在不同的操作系统上)。您可以使用“代理”选项卡中的“资源”按钮标记具有多个资源的 Go 代理。

当您在阶段(在管道中)创建作业时,您可以在“作业设置”的“资源”字段中提及用于运行此作业的资源(哪个 Go 代理)标签。

根据提到的资源,Go 服务器将使用这些 Go 代理来分配作业。您可以使用多个资源标记 Go 代理。

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    我有几个必须在特定机器上运行的管道。我使用两种方法完成此操作。

    首先是使用环境。我将特定的管道分配给特定的环境(例如开发、质量保证、生产)。然后,我将能够执行与开发相关的任务/作业的代理分配给开发环境。我将可以执行 QA 相关任务/作业的代理分配给 QA 环境。

    这可确保驻留在开发环境中的管道仅由也分配给开发环境的代理执行。

    如果您的代理能够同时执行开发和 QA 任务,则将代理分配给开发和 QA 环境。

    您可以使用相同的概念来确保只有 Windows 代理驻留在特定环境中。

    例如,您可以拥有一个 Development-Win 环境,您可以分配管道和代理来处理 Windows 构建。另一个称为 Development-Linux,您分配应该处理 linux 构建的代理和管道。

    由于我有可以为多种环境(Dev、QA 和 Prop)构建的代理,我还使用在“作业设置”选项卡下分配的“资源”。如果作业需要在windows主机上执行,那么我将分配一个资源“win2012”。这告诉我代理必须拥有“Windows 2012”资源才能执行此特定任务。

    我给代理分配了“win2012”的资源,表示它是windows 2012资源。

    结合环境配置和资源设置,作业只会由同时满足资源要求并处于适当环境的代理执行。

    如果您对任务有多个资源要求,您可以使用逗号分隔的列表来分配每个资源要求。我使用的一些资源是 msbuild、subversion、sqlcmd。这告诉我代理必须有权访问 msbuild(编译代码)、subversion(从 SVN 获取它)和 sqlcmd(对 SQL Server 执行 sql 查询)。然后我标记包含这些特定资源的代理。只有当代理满足所有这些资源要求时才会被分配任务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多