【问题标题】:How can I copy the Jenkins build history from one server to another?如何将 Jenkins 构建历史从一台服务器复制到另一台服务器?
【发布时间】:2022-03-16 23:49:42
【问题描述】:

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

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

请注意,作业分布在多个文件夹和子文件夹中。如何将每个作业的构建历史复制/移动到新服务器?

【问题讨论】:

    标签: jenkins migration jenkins-plugins


    【解决方案1】:

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

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

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

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

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

    希望对你有帮助

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 如果文件夹中有作业,这将不起作用。在这种情况下,构建历史记录位置不同 /jobs/
      【解决方案3】:

      移动/复制/重命名作业 你可以:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-06-18
        • 2011-02-05
        • 2011-02-06
        • 2018-08-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多