如何安全重启詹金斯?


19

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

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

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


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

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

Answers:


14

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

在这里您可以检查Restart Jenkins when installation is complete and no jobs are running哪个应该比较安全。


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

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

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

@DanCornilescu问题指出:IE: wait for current jobs to finish before going down, and keep track of queued jobs to start once Jenkins comes back up.,这就是您选中该框时发生的情况。
eyalzek

我问的是这个问题,它也说明了Jenkins without jobs running in three days-这意味着会有影响,因为一些工作将被延迟。但是,总比失去工作更好。
Dan Cornilescu


8

您可以使用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命令时,设置为在重新启动期间执行的所有作业都将排队,并在服务器恢复联机时执行。确保重启后不会造成任何冲突!


1

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

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

我知道这需要人工和协调。但这到目前为止在我们的项目中效果很好,一提到就没什么害处。


1

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

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

(jenkins_url)/restart -强制重启,而无需等待构建完成。



0

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

在我工作的地方,我们不得不定期重新启动Jenkins。我们有您能想象到的各种工作,有些很小,有些很大。只有一次,我们没有看到腌制液没有被补充水分的建造失败。

之后,我们始终会立即进行安全重启。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.