从原始的Eclipse右键导出打包,到后面使用maven打包,就单自己一个人使用开发部署是完全没问题的。现在的jenkins是对工具的封装、可视化和自动化,对于团队合作还是有一定的作用的,时时刻刻告诉我们代码是可运行的。
但是如果一个很久前的项目,又需要新加/修改功能,一下子还捡不起来,不放心啊还得验证一把。还有就是,测试有时刻他们自己打包,不会的还的教她们使用工具,人家烦自己也累。
jenkins是一个持续集成的工具,原来也接触过,但是都没用起来,都是搞开发,大部分时刻都能自己搞定。当下由于情况比较特殊,很多代码都直接在生产改,测试环境就不顾上了,但是测试环境不能总是旧代码啊,就想着有个自动化的东西来进行部署。
主要就是完成一个代码自动化部署的工作:自己搭建一个jenkins,从oschina上拉代码,编译后部署到tomcat并重启。
安装Jenkins
1 2 |
|
建立到oschina的无密钥登录
由于项目是私有的,通过https需要输入密码,还是git方式无密钥登录方式便捷一些。本地linux执行ssh-keygen,然后把 id_rsa.pub 的内容拷贝到项目的公钥处进行配置。可以参考文档: http://git.mydoc.io/?t=154712。
也可以结合 本地ssh-agent 和 ssh-forward 来弄。
配置项目
第一次登录需要进行一些配置,默认创建的admin密码会保存在 ~/.jenkins/secrets/initialAdminPassword 。(在初始化页面创建新用户报错,也不知道啥原因。登录后再建吧)
新版本的按照默认安装插件还不够,需要再添加一些。登录成功后,添加如下插件:
- Deploy to container Plugin 把war发布到容器tomcat…
- Nexus Artifact Uploader 上传jar到私服
Maven Integration plugin 集成maven
ThinBackup 备份也是有必要的,用的越久越是必要!!
配置maven:
自己下载个maven解压后,在jenkins - Global Tool Configuration上面配置maven地址即可(把 自动安装 的勾去掉就可以填地址了)
然后配置JOB:
- 构建一个maven项目:填任务的名称,然后点击左下角的OK
- 源码管理git: 填写地址,然后新增Credentials - SSH Username with private key - From the Jenkins master ~/.ssh 起一个容易区分的名字
- 构建触发器: Build periodically - 0 0 * * * 每天一次
- Build:web/pom.xml ; clean package -Papp,dist -DskipTests 就是mvn命令的一串参数
- Post Steps: Run only if build succeeds - Execute Shell
1 2 3 4 5 6 |
|
注意:这里的BUILD_ID挺有意思的!!!
也可以配置 构建后操作 把包发布到tomcat manager(呵呵,无奈原始包webapps下的都被我删了),就用脚本弄了。
构建
完成上面的操作后,就可以执行跑一次看看效果了。其他的还有很多功能:权限等。
多节点(集群)
如果只有一台jenkins的时刻,远程发布项目一般都scp或者使用tomcat-manager进行处理,如果把部署的机器作为jenkins node的话,就可以把部署的任务放到该节点本地跑,就不需要考虑远程部署的问题了。
配置节点: windows
1 2 |
|
配置好后,在界面点击 Launch agent
,会把agent拷贝到机器并启动agent。
然后任务的话,配置 Restrict where this project can be run 。
参考
- Jenkins配置基于角色的项目权限管理
- Jenkins进阶系列之——14配置Jenkins用户和权限
- https://wiki.jenkins-ci.org/display/JENKINS/Spawning+processes+from+build
- https://www.ibm.com/developerworks/cn/java/j-lo-jenkins/
–END