【问题标题】:Force Bamboo to use specific Build Agent for Deployment强制 Bamboo 使用特定的构建代理进行部署
【发布时间】:2013-08-18 22:57:33
【问题描述】:

我正在使用竹子进行构建,以及在 linux 机器 (ubuntu) 上进行部署。我还有一个在 Windows 7 64 位上使用远程代理的构建计划。

我注意到 Bamboo 有时想尝试使用远程代理 (windows7) 来部署 linux 版本。我该如何防止这种情况?

我看到我可以在部署计划编辑屏幕中设置代理,但这需要一个 linux 代理来构建,一个 linux 代理来部署。是否可以使用相同的 linux 代理来构建和部署,同时确保部署始终使用 linux 代理而不是任何其他可用的非 linux 代理?

【问题讨论】:

    标签: linux windows build-process build-automation bamboo


    【解决方案1】:

    我们一直在做的最接近的事情是向特定代理添加其他代理没有的所需功能。因此,在 linux 代理上,为该代理定义自定义功能。然后在部署的要求中,包括该自定义功能。这应该会阻止 Windows 远程代理接手该作业。

    【讨论】:

    • 怎么样?你是如何做到这一点的“在部署的要求中,包括那个自定义功能”,究竟是什么?我有一些具有自定义功能的代理,但找不到您所说的操作?
    • 我们没有使用 Bamboo 的实际部署项目,只是一个常规的构建定义。转到 linux 代理页面并定义“CanBuildLinux”功能并将其设置为 true。然后在您的构建配置 -> 默认作业 -> 要求选项卡上,创建“CanBuildLinux”等于 true。现在只有具有该功能的代理才能运行该构建。
    • Brett Bim sigh :) 我以为您正在使用部署项目,但在单击该 UI 中的每个链接 3 小时后不知何故发现了一个我忽略的神奇选项: ) 感谢您的回复,让我放心,部署项目实际上是不可能的;)
    【解决方案2】:

    我认为没有任何应用程序功能可用于执行您正在尝试执行的操作,除了指定一个或多个代理仅可用于处理指定的部署项目。

    但是,似乎可以实现相同目标的一种解决方法是在您的任务中包含一个虚拟步骤,该步骤什么都不做,只会导致 Bamboo 将其发送给特定的代理组。

    例如,我有相反的问题,我需要我的部署在 Windows 机器而不是 Linux 机器上运行。我在 /? 中包含了一个 MSBuild 任务?对于解决方案名称,这会导致 Bamboo 仅将部署发送到 Windows 服务器,但该任务实际上什么都不做,只是在日志中打印 MSBuild 命令选项。

    我相信您可以在 Linux 上找到类似的东西。另外,我认为您可以使用 Command 任务类型指定自定义可执行文件。如果您使用路径定义该命令并确保它存在于您要定位的机器上,您可能能够获得所需的结果。实际的可执行文件可能只是一个什么都不做的脚本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-10
      • 1970-01-01
      • 2014-06-26
      相关资源
      最近更新 更多