在 Jenkins 中恢复到原始配置

Revert to original configuration in Jenkins

我托管了一个 Jenkins 服务器,它有一个主节点和几个其他从属配置。昨晚,触发基于矩阵的构建配置的作业失败了。我重新启动并通过 Jenkins 执行了清理工作,但 none 解决了这个问题。记录的初始错误是:

FATAL: hudson.remoting.RequestAbortedException: java.io.IOException: Unexpected termination of the channel hudson.remoting.RequestAbortedException: hudson.remoting.RequestAbortedException: java.io.IOException: Unexpected termination of the channel

之后我从磁盘执行了重新加载配置,然后通过 <jenkins_job_url>/restart 手动重启,这甚至使构建系统变得更糟。由于 /tmp 文件夹中的 space 不可用,master 下线了,我通过清理 space 修复了这个问题。之后我观察到原来的从服务器配置已经看不到了。我还有 slave-0 和 slave-1,但 slave-2 已经不存在了。相反,它被替换为 slave-3 配置。现在从属 0 和 1 似乎工作正常。但是,由于 Failed to mkdirs,slave 3 的构建失败了。有没有一种方法可以让我从开始的地方恢复到原始配置,因为我执行的步骤最初似乎很有意义,但我不知道它会产生如此多的影响?感谢任何帮助。

UPDATE1:我想我应该使用 Jenkins 中可用的一些配置备份插件,但是除了 $JENKINS_HOME 之外是否有一些特定的目录存储这些配置?

在进行重大更改之前,您应该始终备份 ${JENKINS_HOME}。

更好的是有一份基于时间触发的工作,它会偶尔为你做这件事。

除此之外 - 只有将硬盘驱动器物理恢复到以前的状态才能恢复您的旧配置。一旦配置在 Jenkins 中被覆盖——它就消失了。除非您使用 Job Config History 插件。虽然在我看来保留手动创建的备份更好:JobConfigHistory 不会随着作业配置一起消失的保险在哪里? :)

除此之外,提到的插件也会跟踪系统配置。

正如@Zloj 所提到的,一旦更改被覆盖,就没有简单的修复方法。我最终通过删除不工作的从站来解决问题,将现有构建重新映射到我通过复制正在工作的现有从站创建的新从站,减少构建数量(通过从矩阵中删除那些不需要)最后,通过 https://wiki.jenkins-ci.org/display/JENKINS/thinBackup 插件进行备份并在 Stash 备份配置 :)

对于 windows 只需删除主目录中的 .jenkins 文件夹。这将使您恢复到原始设置。

我们一直在使用 SCM Sync Configuration 插件,它多次拯救了我们。它在 bitbucket 中存储所有作业配置,包括全局配置。但是最新的插件会说不再维护了。但我能够从 github 中提取源代码并自己重建它。

请注意...不要使用全局变量来存储密码和密钥...此插件会将它们全部同步到 github。严格使用 Jenkins 凭证。