jenkins在两个奴隶上工作?

我们需要能够运行一个消耗两个奴隶的Jenkins作业. (或者,两个工作,如果我们可以保证它们同时运行,并且至少有一个工作可能知道另一个工作.)情况是我们有一个重量级的应用程序,我们需要运行测试.测试在一台机器上运行,应用程序在另一台机器上运行.将它们放在同一台主机上是不切实际的.

现在,我们有一个Jenkins工作,它使用脚本启动专用应用程序服务器,安装正确的版本,正确的数据,然后针对它运行测试.这意味着当没有进行重量级测试时,我无法使用专用的应用程序服务器来运行其他任务.它也几乎限制了我们一个循环.能够动态分配应用服务器将允许更多.

显然没有办法在核心jenkins中做到这一点,但我希望有一些插件或hackery来实现这一点.当前的测试版本是一个maven 2作业,但这是可配置的,如果我们必须将其包装在其他内容中.它是通过成功完成另一项工作而开始的,可以将其改为开始两项工作,或其他任何需要的工作.

最佳答案 让我看看我是否理解了这个问题.

>您希望动态选择从站并在其上启动App Server.
>当App服务器在Slave上运行时,您不希望它运行任何其他作业.
>但是当App服务器没有运行时,您希望将该Slave用作其他任何Slave以用于其他作业.

一种方法是标记奴隶.并使用“限制可以运行此项目的位置”使App Server和Test Suite在具有Slave标签的计算机上运行.

然后在从属节点中,将“执行程序数”设置为1.这将确保在任何时候只运行一个作业.

下一步将创建一个作业来启动App Server,然后在App Server启动作业成功后启动测试作业.

如果您的测试作业需要知道运行App服务器的计算机的服务器详细信息,那么它就会变得很有趣.

点赞