如何将 Jenkins 构建历史从一台服务器复制到另一台服务器?

How can I copy the Jenkins build history from one server to another?

我们正在将服务器转移到另一个系统。我们已经设置了 Jenkins,使用作业导入插件导入了所有作业。

接下来我想为每个作业导入数据。这就是我要说的:

请注意,作业分布在多个文件夹和子文件夹中。我如何 copy/move 将这些作业中的每一个的构建历史记录到新服务器?

我几分钟前刚刚完成了同样的迁移,哈哈。您只需将旧服务器的构建路径中的文件夹放入新服务器即可。

构建历史位于构建目录中,如果您不知道它在哪里,请检查 Jenkins 文件夹中的 config.xml(又名 $JENKINS_HOME\config.xml)和 ctrl+F "buildsDir".

Jenkins 中的默认构建路径是 ${ITEM_ROOTDIR}/builds,它位于 $JENKINS_HOME 下的作业文件夹中。 我个人建议您将 history 和 Jenkins home 放在不同的驱动器中,以便更好地管理内存。

因此,只需将作业和历史记录复制到新构建服务器,将旧作业放在 $JENKINS_HOME\jobs 下,将旧构建文件夹放在新构建目录 (buildsDir) 中。

注意到有些文件无法复制,因为历史记录中有一些指针,例如Last Successful build,lastFailedBuild。只需跳过这些文件

希望对您有所帮助

如果您的旧 Jenkins 服务器仍在运行并且 运行 您可以通过 ssh 连接到它并使用 rsync 将每个作业的构建目录复制到新服务器。将下面的 $JENKINS_HOME$NEW_SERVER 替换为您的实际值。

for i in $JENKINS_HOME/jobs/*; do
  rsync -az -e ssh ${i}/builds/* $NEW_SERVER:${i}/builds/
done

Moving/copying/renaming 个职位 您可以:

  1. 只需复制相应的作业目录,即可将作业从一个 Jenkins 安装移动到另一个。
  2. 通过使用不同名称克隆作业目录来复制现有作业。
  3. 通过重命名目录来重命名现有作业。请注意,如果您更改作业名称,您将需要更改尝试调用重命名作业的任何其他作业。

即使 Jenkins 运行 也可以完成这些操作。要使这些更改生效,您必须单击“重新加载配置”以强制 Jenkins 从磁盘重新加载配置。

https://wiki.jenkins-ci.org/display/JENKINS/Administering+Jenkins