一尘不染

Jenkins在两个slave上工作?

jenkins

我们需要能够运行消耗两个奴隶的詹金斯工作。(或者,两个作业,如果我们可以保证它们同时运行,并且至少有一个可能知道另一个是什么。)这种情况是我们有一个重量级的应用程序,需要针对它进行测试。测试在一台计算机上运行,​​应用程序在另一台计算机上运行。将它们放在同一主机上是不切实际的。

现在,我们有一个Jenkins作业,该作业使用脚本启动专用的应用服务器,安装正确的版本,正确的数据,然后对其进行测试。这意味着当没有进行繁重的测试时,我不能使用专用的应用程序服务器来执行其他任务。这也几乎将我们限制为一个循环。能够动态分配应用服务器将允许更多服务器。

核心詹金斯显然没有办法做到这一点,但我希望有一些插件或黑客工具来实现这一目标。当前的测试版本是maven
2作业,但是如果我们必须将其包装在其他内容中,则可以配置。成功完成另一项工作可以拉开序幕,可以将其更改为开始两项,或者执行其他任何要求。


阅读 401

收藏
2020-07-25

共1个答案

一尘不染

让我看看我是否理解这个问题。

  1. 您希望动态选择一个从属并在其上启动App Server。

  2. 当App服务器在从服务器上运行时,您不希望它运行任何其他作业。

  3. 但是,当App服务器未运行时,您希望将该Slave用作其他作业的其他Slave。

一种解决方法是标记奴隶。并使用“限制可以在哪里运行该项目”来使App Server和Test Suite在带有Slave标签的计算机上运行。

然后在从属节点中,将“执行者数”置为1。这将确保在任何时候都只运行一个Job。

下一步将创建一个作业,以启动App Server,然后在App Server启动作业成功后启动Test作业。

如果您的测试工作需要了解您的App服务器运行所在计算机的服务器详细信息,那么它将变得很有趣。

2020-07-25