一、部署环境
机器:一台linux虚机,内存1G,操作系统CentOS release 5.6,硬盘100G。 实验应用:乐学方舟后台部署(非正式环境) 应用环境:apache-tomcat-7.0.27 ,JDK二、环境搭建
1、下载hudson ,安装部署http://hudson-ci.org/


2、下载完成,需找一台linux的机器,上传文件。后台解压运行
# java -jar hudson-3.0.1.war --httpPort=8888&
在实验环境中,hudson-3.0.1.war 会默认解压到/root/.hudson/目录下面,这个改变不了 通过浏览器访问 http://IP:8888/
三、新建、部署项目
1、新建项目


2、调整系统设置





3、开始配置新建的任务


4、配置任务的环境




5、开始构建项目

四、项目构建步骤分析
1、构建项目第一步,通过ant,build项目


2、构建项目第二步:停止tomcat
在build文件中可以看到这样的一个节点

3、构建项目第三步:备份项目


4、构建项目第四步:覆盖应用

5、构建项目第五步:启动tomcat

五、hudson利弊
Hudson | 优势 | 劣势 |
1、 部署简单,脚本使用方便2、 构建过程简单3、 页面配置,实施方便,简单4、 可移植性强,主要移动脚本5、 部署项目失败,回滚简单6、 批量部署简单7、 不需要数据库参与8、 集成RSS/E-mail/IM-通过RSS发布构建结果或当构建失败时通过e-mail实时通知。9、 Hudson可以通过插件扩展 | 1、安装插件时间长2、跨机器构建项目需要人工参与3、文件夹权限不严谨4、hudson自动解压目录不合理(/root/.hudson/)5、需要依赖自动化部署的ant,git等6、使用批处理命令直接移war包。不过这样的缺点在于,移动失败的时候,会显示批处理命令执行成功,hudson是不会报错的,需要人工检查。 |
六、环境部署和实际应用
1、初始环境的搭建和应用部署
有我们OPS有自己编译好的yum源,可以直接将构建项目过程中的第二步停止应用脚本改成yum安装包。 A、 很多应用都需要添加虚拟主机,这就需要在脚本中匹配到某行,添加虚拟主机的配置 B、 构建项目的第二步停止tomcat和第三步备份项目可以省略,不过也可以不省略,看个人习惯 C、 其余的步骤都是相同的2、跨机部署构建项目
跨机器或是双机部署应用的情况下,这边采用的是rsync同步的方式,部署应用,在这之前是需要人工手动的进行操作,进行配置rsync(rsync部署安晓会他们已经试验过了,有什么需要的这个也是可以沟通滴)rsync -vazP –delete ip::war/ /home/zhengtingting/deploy/ >>/home/zhengtingting/rsync.log 2>&1
Hudson如果不需要手工参与的话,需要使用一个插件,系统管理/插件管理/可选插件,系统列出可用的所有插件,找到Deploy插件选中并点击安装按钮,等安装完毕后重启tomcat,就可以看到Deploy插件已经安装好。不过在hudson-3.0.1的就没有看到了。安装的插件也没有看到这个功能。

重新打开上面添加任务的配置界面,找到配置文件的最后,找到Post-build Actions(构建后的动作)
不过这个构建有点不好的一个现象,不过是否成功的覆盖移植应用,最终在build都会显示成功,如果失败就需要手工的参与,批量处理的这种最好是先在一天验证是否通过后在进行批量的处理。
3、通用性
A、脚本移植
Hudson可移植性还是挺好的,不过在移植过程中,需要重新的下载和更新hudson,需要占用大量的时间。里面的插件,至少需要2-3个小时的安装时间,不过在这个时间可以迁移脚本就行了。安装好插件,需要的配置也得需要个半个小时至1个小时时间。Hudson可移植的也就是脚本,就依赖的包,不需要什么东西。移植性还是相对不错的。
B、没有数据库参数
Hudson不需要涉及到任何数据库参与部署,这就可以避免了很大部分的数据库的更改,还有就是匹配
4、硬件管理
Hudson到使用到现在还没有看到有硬件管理方面的插件。
5、依赖和回滚
A、依赖
Hudson部署看个人喜好用ant,git,maven都行,不过还是需要从SVN上面下东西,
本来从开始就使用ant,必须一定要安装一个,不然是不会成功滴。还有安装的时候需要的各种插件,SVN,EMAIL,还有几个页面初始打开的是必须要安装的几个插件,否则,是会失败滴。
B、回滚
项目构建失败的回滚,只是更改下脚本,将原本备份的解压覆盖到应用目录中就行,最开始的停止tomcat和最后的启动tomcat都需要留着,不需要改动。