Jenkins升级:1.x到2.x
Jenkins推出2.0的版本已经有一段时间了,相比1.x来讲,从界面到功能都有很大的改良,其中最吸引人的就是pipeline特性了。Jenkins的pipeline是基于Groovy DSL,可以通过简单脚本将原本独立运行于单个或多个节点的任务灵活的连接起来,实现复杂的发布流程,并且还能提供直观的展示界面。公司之前搭建的时候,使用的是Jenkins 1.625.3的版本,由于有很多任务在上面,不
Jenkins推出2.0的版本已经有一段时间了,相比1.x来讲,从界面到功能都有很大的改良,其中最吸引人的就是pipeline特性了。Jenkins的pipeline是基于Groovy DSL,可以通过简单脚本将原本独立运行于单个或多个节点的任务灵活的连接起来,实现复杂的发布流程,并且还能提供直观的展示界面。
公司之前搭建的时候,使用的是Jenkins 1.625.3的版本,由于有很多任务在上面,不好随便升级,最近有点时间,终于将它升到2.19。这里简单记录一下升级过程。
备份jenkins的家目录
为了保险起见,在升级之前将jenkins的家目录做一个备份。这样即使失败了也能还原回去。替换新的Jenkins的war包
之前使用的Jenkins是用war包放在tomcat的webapps目录下直接运行的,所以,对于这种方式的升级来讲,直接用新的2.19的Jenkins的war包,替换掉老的war包即可。tomcat这时自己会检查到代码包的变化,自动解压并重启tomcat。按照Update向导升级
重启完成之后再访问界面,顶部会出现一个提示升级的按钮,点击Update即可。后面会出现2.0版本以后推荐安装的插件选择向导,根据自己的需要选择安装就好了。
这样升级操作就已经完成了,但是需要注意的是,点击进入系统管理界面会有些问题提示:
有些旧版本中的数据格式和新版中的不一样
我是直接Dismiss掉了,目前没发现有什么影响。一片红色字列着很多插件版本过低
这时候也不用担心,将它提示出来的插件升升级什么的就没问题了。
*另外,需要注意的是,插件升级后,job的配置方法可能会发生变化。比如,我将svn的插件升级之后(从1.5级升级到了2.5以上了),新版的svn在配置的时候,多出了一个认证项Credentials,如果不配置的话,之前的job在从svn拉代码的时候都会报错的。
对于上面这种情况,配置任务太多的话,每个都通过界面去添加会很累,所以我使用直接修改jobs的config.xml配置文件。
没添加Credentials项的配置如下:
<hudson.scm.SubversionSCM_-ModuleLocation>
<remote>http://svn.server.com/svn/projectname</remote>
<local>./svn/workdir</local>
<depthOption>infinity</depthOption>
<ignoreExternalsOption>false</ignoreExternalsOption>
</hudson.scm.SubversionSCM_-ModuleLocation>
添加Credentials项的配置如下:
<hudson.scm.SubversionSCM_-ModuleLocation>
<remote>http://svn.server.com/svn/projectname</remote>
<credentialsId>xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</credentialsId>
<local>./svn/workdir</local>
<depthOption>infinity</depthOption>
<ignoreExternalsOption>false</ignoreExternalsOption>
</hudson.scm.SubversionSCM_-ModuleLocation>
也就是说要在remote和local的两行属性信息之间添加一个credentialsId属性,使用sed命令如下:
sed -i '/<remote>*/{n;s#<local>*#<credentialsId>xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</credentialsId>\n&#g}' ./jobs/*/config.xml
这个证书ID可以到Credentials界面去查看,修改config.xml配置之后,把jenkins重新读取下配置重启即可生效了。
对于使用Jenkins的docker容器运行的情况,直接拉一个新版的docker镜像,挂载一下原来的jenkins家目录运行就可以了,这里不多说了。
更多推荐
所有评论(0)