持续集成:jenkins2.0实施要点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了持续集成:jenkins2.0实施要点相关的知识,希望对你有一定的参考价值。

自动化部署是自动化运维的重要内容之一,如果一个公司经常喊自动化运维,但没有持续集成的概念,没有实施自动化部署,还需要程序员手工打包部署,那么无疑其生产方式是落后的。持续集成的工具有很多,jenkins是其中典型代表之一。


1、经过测试,jenkins2.0tomcat6.0.39+jdk1.6下面跑不起来,换jdk1.8下则可以。


2、修改jenkins运行家目录

Jenkins默认保存所有的数据文件在/root/.jenkins,这个路径比较别扭,修改的话,方法有二:

1)、直接在tomcat的catalina.sh里面添加:export JENKINS_HOME=

2)、直接在环境文件里设置,如/etc/profile


3、让jenkins使用特定的jdk版本进行构建

经过测试,在build.xml里面配置单独的jdkpath貌似不管用,执行ant还是会用系统自己的jdk版本编译。那么,如何配置单独的jdk版本呢?方法是在jenkins系统管理——系统设置里面增加一个全局属性,设置一下JAVA_HOME,如下图:

技术分享


4、发邮件。

jenkins的邮件插件和扩展邮件插件用起来太麻烦,个人强烈建议直接用python整一个脚本,python的smtplib库简单好用,发送html+图片是很容易,相比linux的mailx,强大很多。如果构建失败,调用此脚本将build日志发送给相关人士即可。


5、自动部署

jenkins的自动部署是通过一个名为“Deploy to container Plugin”的插件完成的,原理是利用tomcat的admin接口将war包导进去。个人感觉也不太好使,大家都知道,tomcat虽然可以自动识别war包,但是安全的做法是需要重启,不重启的话,经过反复部署war包,jvm会慢慢出现问题。而且重启的时候,shutdown往往不够彻底,必须kill -9干掉tomcat进程才行。基于此,本人也推荐手工完成自动部署,在jenkins机器和远程机器之间建立互信,先备份,然后上传war包,再重启。即便如此,也要注意对远程web服务器进行监控,本人遇到一次远程web服务器内存不够(用了很多swap),导致部署过去的war包,lib加载不进去导致项目启动失败,报监听启动错误:SEVERE: Error listenerStart




本文出自 “记忆碎片” 博客,转载请与作者联系!

以上是关于持续集成:jenkins2.0实施要点的主要内容,如果未能解决你的问题,请参考以下文章

不甘寂寞的Jenkins:从持续集成到持续部署

持续集成使用 Jenkinsfile 设计直观的 Pipeline

基于Docker的开发模式驱动持续集成落地实施(脑图学习笔记)

持续集成基本概念

jenkins2.0以后的版本提供自动部署和远程部署功能?

Jenkins+Maven+Svn搭建持续集成环境持续集成和自动部署