【问题标题】:Single Jenkins Computer/Node used by more then one Jenkins不止一个 Jenkins 使用的单个 Jenkins 计算机/节点
【发布时间】:2018-05-19 19:48:43
【问题描述】:

如果有可能在两个 jenkins 实例之间共享一台计算机/节点,我很好奇?

我知道可以在 Jenkins 实例上制作两个相同的节点配置副本并更改工作空间,但我的目标是这种情况。

Jenkins A 与节点 A
Jenkins B 与节点 A

Jenkins A 在节点 A
上开始工作 Jenkins B 使节点 A 离线

Jenkins B 在节点 A
上开始工作 Jenkins A 使节点 A 离线

节点A一次只能使用一次,不应该有不同工作空间的并行作业运行。

我知道当你有一个jenkins实例时可以实现,但是如果你必须至少使用其中两个怎么办?

注意:两个 Jenkins 实例位于不同的机器上。

【问题讨论】:

  • 在一台机器上拥有多个 Jenkins 实例是完全可能的,但是如果你一次只能运行一个实例,那么拥有两个实例又有什么意义呢?!如果A 正在运行构建,而B 将其置于“离线”状态,会发生什么情况?
  • Jenkins 实例都在各自的机器上,但它们连接到第三方计算机/节点,并且该计算机/节点(或者我应该说本示例中的节点 A)只能处理一个连接当时。
  • 那么拥有多台机器有什么意义呢?只使用一个和一个构建代理?
  • 例如大量的作业/节点并且想要分成两个詹金斯但仍然保持每个作业可以连接到任何计算机/节点的可能性。示例是简化。
  • jenkins 主页中有一个 RSS 提要选项...如果特定作业正在运行,您可以从那里阅读它,您也可以尝试一下wiki.jenkins.io/display/JENKINS/URLTrigger+Plugin

标签: jenkins jenkins-plugins jenkins-pipeline jenkins-slave


【解决方案1】:

我相信jenkins mesos plugin 是您所需要的。

使用以下步骤安装和配置:

  • 步骤 1

  • 步骤 2

  • 第三步

  • 第四步

当然,在执行上述操作之前,您必须为自己安装一个 mesos 集群,请参阅mesos official site。如果您不熟悉 mesos,这可能会花费一些时间。

在第4步,你最好设置slave cpus等于你真正从节点的数量。

原理是:

Mesos 首先向 Jenkins Master A 发送资源报价,然后 jenkins master A 将在从节点 A 上启动任务,因为该资源现在被 jenkins master A 使用。 Resource offer 不会再发送给 Jenkins Master B,所以 Jenkins Master B 正在等待。

Jenkins Master A 完成任务后,从节点 A 的 mesos 资源报价会发送给 Jenkins Master B,然后 Jenkins Master B 可以启动任务。

从站可以被 Jenkins Mesos A 和 Jenkins Mesos B 使用,但不能同时使用。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-24
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    • 2019-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多