【发布时间】:2022-03-16 23:49:42
【问题描述】:
我们正在将服务器移至另一个系统。我们已经设置了 Jenkins,使用作业导入插件导入了所有作业。
接下来我想为每个工作导入数据。这就是我要说的:
请注意,作业分布在多个文件夹和子文件夹中。如何将每个作业的构建历史复制/移动到新服务器?
【问题讨论】:
标签: jenkins migration jenkins-plugins
我们正在将服务器移至另一个系统。我们已经设置了 Jenkins,使用作业导入插件导入了所有作业。
接下来我想为每个工作导入数据。这就是我要说的:
请注意,作业分布在多个文件夹和子文件夹中。如何将每个作业的构建历史复制/移动到新服务器?
【问题讨论】:
标签: jenkins migration jenkins-plugins
几分钟前我刚刚完成了同样的迁移,哈哈。您只需将文件夹放在旧服务器的构建路径中即可。
构建历史记录位于构建目录中,如果您不知道它在哪里,请检查 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。只需跳过这些文件
希望对你有帮助
【讨论】:
如果您的旧 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
【讨论】:
移动/复制/重命名作业 你可以:
即使 Jenkins 正在运行,这些操作也可以完成。要使此类更改生效,您必须单击“重新加载配置”以强制 Jenkins 从磁盘重新加载配置。
https://wiki.jenkins-ci.org/display/JENKINS/Administering+Jenkins
【讨论】: