这几天一直搞服务器持续集成和自动化部署这块,总算是成功部署上了,在这里我谈下经验。
公司服务器结构主要是分为:SVN版本控制在一个服务器上,Tomcat应用服务器,Jenkins服务器,当然还有数据库服务器等等。。。
这里我们的思路是,所有开发人员均从SVN服务器上获取代码,也可以提交代码。
之前是必须通过人员每天将SVN的最新代码拷贝到Tomcat服务器中。
我们想可以省去人员的困扰,每天自动对SVN的版本库进行持续集成到Jenkins服务器中,然后Jenkins服务器定时,将war包部署到Tomcat服务器中。
PS:一台服务器可以虚拟出很多IP地址,我们部署的服务器的IP虽然不一样,但是很可能是从一台物理的服务器虚拟出的IP地址,所以我们这里部署的其实是服务器虚拟机的地址。
我们所有服务器上均是Linux系统。
下面谈一下我的部署过程:
具体过程网上很多都有介绍:推荐几个详细的网站:
详细部署过程:
一般的配置过程我就不一一列举了,这里介绍几个高级一点,容易出错的问题:
1.定时构建问题:(Buildperiodically 和 Poll SCM)
Buildperiodically 是指定时构建,PollSCM 是指定时轮训版本。
定时构建需要注意的问题: 011,16,23 * * *是指每天11点,16点,23点构建一次。
但是如果这么写会发现下面出现提示 建议用H 来代替。
看一下旁边的帮助文档发现,用H是为了降低负载,不用固定在一个时间集中编译。
这里大家可以很好的读一下旁边的问号,可以灵活的定义多种方式。
Poll SCM是为了当版本变更时,就可以自动部署,这里可以写5 * * * * 每五分钟就轮训一次版本库,检查版本。
2. 在构建过程中需要制定target还有 ant配置文件build.xml 和properties
这里注意,因为jenkies自动部署需要将构建好的文件打成war包,然后通过部署到tomcat的webapp,通过自动解压进行发布。所以在构建中需要加入ant,打war包脚本。
这里我就不多说了,ant写法网上都有。
3. 自动部署到Tomcat中
首先安装一个插件
我通过自动安装没成功,原因是好像网站有过滤什么什么的,于是我手动下载安装了,步骤网上有,这回成功了。
安装好之后,会在Addpost-build action中出现部署到容器(deploy war/ear to a container)这一项,然后这里是大家最头疼也是最无奈的配置问题,我来说一下:
之后正常启动,发现一切OK。