如何将Jenkins从一台PC移动到另一台PC

时间:2012-01-04 09:58:57

标签: jenkins data-migration

我目前正在开发PC上使用Jenkins。我把它安装在我的开发PC上,因为我对这个工具知之甚少;所以我在开发PC上对它进行了测试。现在,我觉得Jenkins在构建过程中作为我的长期“合作伙伴”感到很自在,并希望将这个Jenkins“移动”到专用服务器上。

在此之前,我做了很少的构建,并从每个构建中归档了工件。特别是,版本号对我来说对版本控制非常重要。

如何将当前PC中的所有Jenkins信息导出到新服务器?

6 个答案:

答案 0 :(得分:158)

Jenkins wiki之后,你必须:

  • 在新服务器上安装新的Jenkins实例
  • 确保旧的和新的Jenkins实例已停止
  • 归档旧Jenkins实例的JENKINS_HOME的所有内容
  • 将存档解压缩到新的JENKINS_HOME目录
  • 启动新的Jenkins实例
  • 不要忘记更改新Jenkins实例的文档/链接:)
  • 不要忘记更改新Jenkins文件的所有者:chown -R jenkins:jenkins $JENKINS_HOME

JENKINS_HOME默认位于Linux安装的~/.jenkins,但要准确找到它的位置,请转到http://your_jenkins_url/configure页面并检查第一个参数的值:{{1} };这是JENKINS_HOME。

答案 1 :(得分:44)

如果 JENKINS_HOME目录太大而无法复制,您只需设置相同的作业,Jenkins插件和Jenkins配置(并且不需要旧的Job工件和报告) ,然后你可以使用ThinBackup Plugin

  1. 在源和目标Jenkins服务器上安装ThinBackup
  2. 在两者上配置备份目录(在Manage Jenkins - > ThinBackup - >设置中)

  3. 在Sourse Jenkins上访问ThinBackup - >立即备份

  4. 从Jenkins源备份目录复制到Jenkins目标备份目录
  5. On Target Jenkins转到ThinBackup - >恢复,然后重新启动Jenkins服务。
  6. 如果缺少某些插件或作业,请将备份内容直接复制到目标JENKINS_HOME。

  7. 如果您在源Jenkins上进行了用户身份验证,现在已锁定在目标Jenkins上,则编辑Jenkins config.xml,将col_1 col_2 col_3 1 a 30 1 b 25 1 other 6 2 a 321 2 b 1 2 other 122 设置为false,然后重新启动Jenkins。

    < / LI>

答案 2 :(得分:11)

这让我从Ubuntu 12.04(Jenkins ver.1.628)转到Ubuntu 16.04(Jenkins ver.1.651.2)。我先installed Jenkins from the repositories

  1. Stop both Jenkins servers
  2. JENKINS_HOME(例如/ var / lib / jenkins)从旧服务器复制到新服务器。从新服务器的控制台:

    rsync -av username@old-server-IP:/var/lib/jenkins/ /var/lib/jenkins/

  3. Start your new Jenkins server

  4. 你可能不需要这个,但我必须

    • Manage JenkinsReload Configuration from Disk
    • 再次断开并连接所有从站。
    • 检查Configure System > Jenkins LocationJenkins URL是否已正确分配给新的Jenkins服务器。

答案 3 :(得分:1)

Jenkins服务器自动化:

第1步:

设置存储库以将Jenkins主目录(作业,配置,插件等)存储在GitLab本地或GitHub私有存储库中,并通过推送对Jenkins作业,插件等的任何新更改来定期更新它。 / p>

第2步:

为Jenkins配置Puppet主机组/角色,可用于启动新的Jenkins服务器。完成Puppet配方中的所有基本配置,并确保它安装最新版本的Jenkins并为JENKINS_HOME设置单独的目录/装载。

第3步:

使用上面的Jenkins-puppet配置启动新机器。安装完所有内容后,将Jenkins配置从Git存储库抓取/克隆到Jenkins home direcotry并重新启动Jenkins。

第4步:

转到Jenkins网址,管理Jenkins 管理插件并更新所有需要更新的插件。

完成

您可以使用Docker SwarmKubernetes自动缩放从属节点。

答案 4 :(得分:1)

有时我们可能无法访问Jenkins机器将文件夹直接复制到另一个Jenkins实例中。所以我写了一个菜单驱动的实用程序,它使用Jenkins REST API调用从一个Jenkins实例到另一个实例安装插件和作业。

对于插件迁移:

  1. GET请求:var that = this;将为您提供随其版本安装的插件列表。
  2. 您可以使用以下参数发送POST请求以安装这些插件。

    {SOURCE_JENKINS_SERVER}/pluginManager/api/json?depth=1
  3. 对于职位迁移:

    1. 您可以使用REST调用final_url=`{DESTINATION_JENKINS_SERVER}/pluginManager/installNecessaryPlugins` data=`<jenkins><install plugin="{PLUGIN_NAME}@latest"/></jenkins>` (where, latest will fetch the latest version of the plugin_name) auth=`(destination_jenkins_username, destination_jenkins_password)` header=`{crumb_field:crumb_value,"Content-Type":"application/xml”}` (where crumb_field=Jenkins-Crumb and get crumb value using API call {DESTINATION_JENKINS_SERVER}/crumbIssuer/api/json
    2. 获取{SOURCE_JENKINS_URL}上安装的作业列表
    3. 然后,您可以使用作业网址{SOURCE_JENKINS_URL}/view/All/api/json从{SOURCE_JENKINS_URL}上的作业中获取每个作业config.xml文件。
    4. 使用此config.xml文件在{DESTINATION_JENKINS_URL}上发布XML文件的内容,这将在{DESTINATION_JENKINS_URL}上创建作业。
    5. 我在Python中创建了一个菜单驱动的实用程序,它要求用户启动插件或Jenkins迁移,并使用Jenkins REST API调用来执行此操作。

      您可以从此网址引用JenkinsMigration.docx

答案 5 :(得分:0)

让我们说我们正在将Jenkins LTS从PC1迁移到PC2(无论LTS版本是否与升级版本相同)。 使用ThinBackUp插件可以轻松迁移或升级Jenkins版本。

第1步:准备PC1进行迁移

  • 管理Jenkins-> ThinbackUp->设置
  • 选择正确的选项和备份目录
  • 如果您需要工作历史记录,并且需要添加工件,那么请同时选择“回建结果”选项。

enter image description here

  • 返回并单击立即备份。

enter image description here

注意:此Thinbackup也将采用可选的插件备份。

  • 检查ThinbackUp文件夹必须具有带有当前日期和时间戳的文件夹。 (等待几分钟,可能需要一些时间。)
  • 准备好后背,压缩它,然后复制到PC2中的 PARTICULAR (将是“备份目录”)目录中。
  • 解压缩ThinbackUp压缩文件夹。
  • 在PC1中停止Jenkins服务。

第二步:在PC2中安装Jenkins(使用.war文件或粘贴归档版本安装)。

  • 使用命令sc create <Jenkins_PC2Servicename> binPath="<Path_to_Jenkinsexe>/jenkins.exe"创建Jenkins服务
  • 如果需要在PC2中修改JENKINS_HOME / jenkins.xml。
  • 在PC2中运行Windows服务
  • 管理Jenkins-> ThinbackUp->设置
  • 请确保您将第一步中的 CURTICULAR 路径作为ThinBackup设置中的备份目录。
  • ThinbackUp-> Restore将为您提供一个下拉列表,选择一个正确的备份(标识日期和时间戳)。

enter image description here

  • 等待几分钟,您将获得最新的备份配置,包括作业历史记录和PC2中的插件。
  • 如果JENKINS_HOME / Jenkins.xml中需要进行其他更改(来自PC1 ThinbackUp,不需要),则此修改需要手动进行。

注意::如果您在Jenkins作业中使用SCM的数据库设置,则需要格外小心,因为在ThinbackUp插件的帮助下,所有SCM插件都不支持携带数据库设置。 例如如果您使用的是PTC Integrity SCM插件,并且某些Jenkins作业正在使用使用Integrity的数据库,则它将创建目录 JENKINS_Home / IntegritySCM ,ThinbackUp在进行备份时将不包括该数据库。

解决方案:直接将此 JENKINS_Home / IntegritySCM 文件夹从PC1复制到PC2。