Jenkins+svn自动化部署dubbo服务
前言
由于都是新建的dubbo项目,还没上线,尚在内网测试阶段,所以一直没有用工具去打包。都是人工打包更新,要是更新多个服务,是非常繁琐的一个过程,首先要打包接口暴露层的服务,还要打包启动层的服务,然后到服务器就是各种jar包替换,重启等。没办法,这只能自己硬着头皮把这个运维的工作做了。
安装Jenkins
官网地址:http://pkg.jenkins-ci.org/redhat-stable/
安装命令:rmp -ivh jenkins-2.222.1-1.1.noarch.rpm
如需修改端口:vi /etc/sysconfig/jenkins 找到Jenkins—port 修改即可
修改java配置: vi /etc/init.d/jenkins 修改为自己java路径
安装jdk环境
安装maven
启动 service jenkins start/stop/restart
安装插件
1.安装svn插件:Subversion Plugin
2.因为需要拉取多个仓库的代码,所以也要装这个插件:Multiple SCMs
排坑
1.刚开始在安装插件的时候,一直报connect time out,一直没安装成功,后来通过百度找到原因。
jenkins在下载插件之前会检查网络连接,会读取default.json(/var/lib/jenkins/updates/default.json)这个文件里的网址,默认是访问谷歌的,这就很坑了,服务器网络又不能翻墙,肯定是检测失败的。把下图的google换成baidu即可。
2.修改插件下载地址:https://updates.jenkins.io/update-center.json,改为清华园提供的地址:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json。文件所在位置:/var/lib/jenkins/hudson.model.UpdateCenter.xml。
3.设置多个仓库一定要指定保存的路径,一般会保存到 /var/lib/jenkins/workspace下面,如果指定了server,则会保存到/var/lib/jenkins/workspace/server下。如果不指定会带来什么后果呢,第二个仓库的代码会把第一个仓库的代码覆盖掉,一开始我也想不懂,为什么我明明指定是打包第一个仓库的代码,为什么每次都是打包到第二个仓库的代码了。
4. 由于需要写脚本发布部署,所以我也顺便恶补了一番Xshell脚本。
(1)执行脚本发现:没有rm,mv等权限。
Xshell命令前加上sudo
(2)加上sudo后发现:command not foud