有时我们可能无法访问Jenkins机器将文件夹直接复制到另一个Jenkins实例中。所以我写了一个菜单驱动的实用程序,它使用Jenkins REST API调用从一个Jenkins实例到另一个实例安装插件和作业。
的 对于插件迁移: 强>
{SOURCE_JENKINS_SERVER}/pluginManager/api/json?depth=1
您可以使用以下参数发送POST请求以安装这些插件。
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
的 对于工作迁移: 强>
{SOURCE_JENKINS_URL}/view/All/api/json
{SOURCE_JENKINS_URL}/job/{JOB_NAME}
我在Python中创建了一个菜单驱动的实用程序,它要求用户启动插件或Jenkins迁移并使用Jenkins REST API调用来执行此操作。
你可以参考 JenkinsMigration.docx 来自此网址 詹金斯 jenkinsmigration jenkinsrestapi
这对我有用,可以从Ubuntu 12.04(Jenkins ver.1.628)转到Ubuntu 16.04(Jenkins ver.1.651.2)。我先来 从存储库安装Jenkins 。
复制 JENKINS_HOME (例如/ var / lib / jenkins)从旧服务器到新服务器。从新服务器的控制台:
JENKINS_HOME
rsync -av username@old-server-IP:/var/lib/jenkins/ /var/lib/jenkins/
启动新的Jenkins服务器
你可能不需要这个,但我必须这样做
Manage Jenkins
Reload Configuration from Disk
Configure System > Jenkins Location
Jenkins URL