【问题标题】:Can I restart Jenkins master node without stopping slave nodes' jobs?我可以在不停止从节点工作的情况下重新启动 Jenkins 主节点吗?
【发布时间】:2015-04-28 09:12:58
【问题描述】:

我在从属节点有非常重要且长期的工作,而主节点没有工作。 在这种情况下,我需要重新配置和更新插件。

(其实longs作业很多(耗时超过一小时,但这些作业必须在5分钟内重新启动。)

我可以在不停止从节点作业的情况下重启 Jenkins 主节点吗?

【问题讨论】:

    标签: jenkins


    【解决方案1】:

    看起来这个问题类似于How reboot Jenkins with running build queue?,并且可以考虑安全重启插件

    【讨论】:

      【解决方案2】:

      Jenkins 架构不允许这样做,在 Jenkins 中添加对此的支持几乎是不可能的。

      如果这对您很重要,您应该寻找其他允许这样做的 CI 解决方案。

      我知道它可以做到这一点的唯一一个是GitLab CI。如果我记得很清楚,一旦将作业分配给节点/从站,它将在其上运行,您可以重新启动主站,而不会影响从站或作业。

      值得一提的是,GitLab CI 与 Travis CI 类似,可能只支持 Jenkins 可以做的 10%,但这并不意味着您一定需要更多。

      【讨论】:

        【解决方案3】:

        我刚刚做了 OP 询问的场景,结果是所有后续作业都在 sh 步骤上挂起 5 分钟,然后出现此错误:

        17:36:31  process apparently never started in /var/lib/jenkins/workspace/TesiraFirmwareNG_develop-tmp/durable-6a718028
        17:36:31  (running Jenkins temporarily with -Dorg.jenkinsci.plugins.durabletask.BourneShellScript.LAUNCH_DIAGNOSTICS=true might make the problem clearer)
        

        有人知道这是什么吗? Durable Task 插件的目的似乎是让 Jenkins 能够监控 Jenkins 之外的长时间运行的任务。读到这里,我相信它是 Jenkins 如何管理奴隶及其工作的关键部分。当我重启 Jenkins 主服务器时,重启运行下游作业的 Jenkins 从服务器可能会解决持久任务问题。

        但没有运气 - 重新启动主机和从机后,我仍然遇到上面相同的“进程显然从未启动”错误。有人知道这个问题的原因,或者知道解决方案吗?

        更新:我们的问题原来是 Jenkins 全局属性中的一个空环境变量,与在其主服务器重新启动时运行的从属作业无关。 This issue 是我们的原因,只有在启用 LAUNCH_DIAGNOSTICS java arg 后才明显,这导致更多输出显示先前无提示的错误(传递给 docker 调用的空环境变量)导致我们找到根本原因。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-04-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-06-05
          • 2013-02-24
          • 2020-01-20
          • 1970-01-01
          相关资源
          最近更新 更多