概要:
原来使用的jenkins版本为1.6,现在需要升级为最新版2.3.6
由于在内网,不能使用jenkins自带的在线升级工具
升级思路:
由于版本跨度太大,直接copy jenkins目录,启动最新版本jenkins war包的方式已经不兼容:jenkins任务显示不全
思索再三,只能 1.重新搭一套最新的jenkins版本,同时为最新版jenkins下载适配原来jenkins所使用的插件 2.进行jenkins的数据迁移
1.离线下载所有用到的最新版jenkins插件
通过参考官网文档:https://www.jenkins.io/doc/book/installing/offline/
得知插件离线下载工具:plugin-installation-manager-tool
离线下载插件使用说明参考:https://github.com/jenkinsci/plugin-installation-manager-tool
在外网搭建插件下载工具环境(jdk,最新jenkins war包,插件下载工具)
编辑插件下载工具文档:把原来jenkins plugins目录下所有的文件名导出,整理
注:有些插件名字可能有出入导致下载失败
确定插件名称可以在官网插件页面搜索相关插件:https://plugins.jenkins.io/
可以下载下来并解压,查看实际插件名称
ant
antisamy-markup-formatter
batch-task
credentials
cvs
external-monitor-job
javadoc
junit
ldap
mailer
matrix-auth
matrix-project
maven-plugin
pam-auth
powershell
publish-over-ftp
publish-over-ssh
rebuild
role-strategy
script-security
ssh-credentials
ssh-slaves
subversion
translation
view-job-filters
windows-slaves
插件下载清单文档编辑完,开始执行命令下载
/your/path/to/java -jar jenkins-plugin-manager-*.jar --war /your/path/to/jenkins.war --plugin-file /your/path/to/plugins.txt
到这步最新版jenkins插件下载完成
2.备份老jenkins迁移文件
到老jenkins的数据目录 JENKINS_HOME 下依次备份:
jobs (任务)
users (用户)
config.xml (视图,子节点等)
nodes (运行节点)
jenkins.plugins.publish_over_ssh.BapSshPublisherPlugin.xml (ssh发布插件配置文件)
jenkins.plugins.publish_over_ftp.BapFtpPublisherPlugin.xml (ftp发布插件配置文件)
jenkins.model.JenkinsLocationConfiguration.xml (IP配置文件,此文件在jenkins初始化时会指定当前ip为jenkins ip)
credentials.xml (jenkins凭据)
org.jvnet.hudson.plugins.SSHBuildWrapper.xml (ssh插件配置文件)
3.初始化新版jenkins
按照官方文档操作:https://www.jenkins.io/doc/book/installing/offline/
把最新版jenkins war包拷贝至内网测试机器指定目录下
执行启动命令nohup /your/path/to/java -DJENKINS_HOME=/your/path/to/jenkins_data -jar /your/path/to/jenkins.war --httpPort=10086 > out.log 2>&1 &
此命令可以保存为 jenkinsStart.sh脚本
注:-DJENKINS_HOME参数必须在 -jar 前面才有效
按照上面文档说明初始化jenkins
4.拷贝数据至新JENKINS_HOME 目录
拷贝初始化完毕的JENKINS_HOME jenkins_data目录 为 jenkins_data_new
在 jenkins_data_new目录里,用上面备份完的jenkins文件替换掉相关文件夹,并把所下载的所有插件放入plugins文件夹
修改启动命令为nohup /your/path/to/java -DJENKINS_HOME=/your/path/to/jenkins_data_new -jar /your/path/to/jenkins.war --httpPort=10086 > out.log 2>&1 &
使用原来jenkins的管理账号登陆jenkins,查看任务是否正常
5.检查数据迁移无误,打包新jenkins目录,并部署到正式环境,修改jenkins_data_new为 jenkins_data,并修改jenkins启动脚本
6.检查jenkins,并完善相关配置
经过检查:
1.发现 ssh主机密码不能识别,需要逐个修改
2.已经配置的jenkins_slave节点需要重新配置连接
以上处理完毕,jenkins测试一切正常,升级完成