我需要在我们的Jenkins实例上进行一些配置更改,这将涉及几次重启Jenkins。但是,我们的开发人员所做的承诺足够频繁,以至于三天之内没有工作我就看不到詹金斯。

是否存在本机方式(通过GUI或通过命令行)安全重启Jenkins? IE:等待当前作业完成然后再下降,并跟踪Jenkins重新启动后开始排队的作业。

我知道有一个插件,但是要安装它,我需要重新启动Jenkins ...

评论

从我的头顶猜测,但是禁用奴隶不是一种选择吗? (据我所知,它不会停止正在进行的作业,但会阻止启动队列中的其他作业)

从理论上讲,通过正确配置的Jenkins实例运行Pipeline作业,您可以随时重新启动主节点或从节点。我的经验却相反。

#1 楼

如果您导航到$YOUR_JENKINS_URL/updateCenter/,则应该看到以下页面:

这里您可以检查Restart Jenkins when installation is complete and no jobs are running,这应该是相当安全的。

评论


我的理解是,仅在插件正在安装过程中才会发生重启...没有办法强迫不安装插件就进行重启,是吗?

– Alex
18年1月17日在16:36

@Alex我只是在我的实例上对其进行了测试,对我来说,无论安装插件如何,它似乎始终可以正常工作。根据stackoverflow.com/a/8077830,还应该有一个/ safeRestart和/ restart端点。

–eyalzek
18年1月17日在17:01

但是,这不是关于在作业运行时重新启动的问题吗?

–丹·科尼莱斯库(Dan Cornilescu)
18年1月17日在17:56

@DanCornilescu问题指出:IE:等待当前作业完成后再下降,并跟踪Jenkins重新启动后排队的作业。

–eyalzek
18年1月18日在17:09



我之所以问是因为这个问题还指出詹金斯在三天内没有工作,这意味着会有影响,因为一些工作将被延迟。但是,总比失去工作更好。

–丹·科尼莱斯库(Dan Cornilescu)
18年1月18日在17:47

#2 楼

访问https:// youjenkinsdomain / safeRestart会将其设置为等待作业停止然后重新启动的模式。

评论


当我们的Jenkins服务器出现错误并在插件需要它时无法重新启动时,我需要使用此特定答案。

–kayleeFrye_onDeck
19年1月9日在2:30

#3 楼

您可以使用Jenkins Rest API([jenkins_url] / safeRestart)执行safeRestart命令,也可以通过Jenkins CLI执行命令。

sudo /etc/init.d/jenkins safeRestart



运行CLI命令

通用语法如下(设计类似于svn / git之类的工具是
):

java -jar jenkins-cli .jar [-s JENKINS_URL]命令[选项...]
[参数...]

JENKINS_URL可以通过环境变量$ JENKINS_URL指定。当Jenkins在构建过程中派生一个进程时,会自动设置该环境变量
,这使您可以从内部使用
Jenkins CLI,而无需显式配置
URL。


注意:当运行safeRestart命令时,任何设置为在重启期间执行的作业都将排队,并在服务器恢复联机时执行。确保重启后不会引起任何冲突!

#4 楼

要手动重新启动Jenkins,可以使用以下任一命令(通过在浏览器中输入其URL):

(jenkins_url)/safeRestart-允许所有正在运行的作业完成。重新启动完成后,新作业将保留在队列中以运行。

(jenkins_url)/restart-强制重新启动而不等待构建完成。

#5 楼

我认为这是许多人试图解决的实际问题。有时最好在安装插件后重新启动Jenkins。根据我的经验,我可以提供的建议之一是:


限制对管理模块的访问,以便并非每个开发人员都可以安装插件。并提前通知他们
批量安装所有必需的插件并重新启动Jenkins
,通知开发人员Jenkins可以使用了。

我知道这需要手动进行,并且协调。但这到目前为止在我们的项目中效果很好,一提到就没什么害处。

#6 楼

在进行管道作业的情况下,访问“ https:// jenkins / safeRestart”不会等待“作业/构建”完成。

jenkins再次出现后,似乎要等待步骤完成并执行jenkins重新启动并恢复pipline。

评论


我想这是对@Nakilon答案的评论?

– hagello
18年6月28日在14:08

#7 楼

Jenkins的设计不受重新启动的影响。根据我的经验,构建可能会由于重新启动而失败,但这种情况很少见。

在我工作的地方,我们不得不定期重新启动Jenkins。我们有您能想象到的各种工作,有些很小,有些很大。我们只有一次看到没有使酱菜重新补水的构建失败。

之后,我们总是立即安全重启。