Hudson安装配置、部署应用及分析
一、部署环境
机器:一台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/

页面最后install,等待安装完成 ,安装最新版的hudson,还是老实的等待安装吧,没有安装后面有的苦了。。
以上是安装hudson的过程
三、新建、部署项目
1、新建项目


2、调整系统设置

设置JDK环境变量

安装ant,添加环境变量:http://ant.apache.org/bindownload.cgi 下载安装包,接解压到自定义目录,就可以使用

SVN的账号密码和添加邮件


可以先测试,其他不变,点击“save”保存
3、开始配置新建的任务


4、配置任务的环境

SVN 路径

Ant的build项目,这个build.xml后面说明,很重要的一个文件,贯穿整个hudson是否成功完成部署的关键


以上配置好了就可以点击最底下的保存
5、开始构建项目

点击开始构建
点击console可以查看够构建项目的过程,也能在这里里面看到是够构建成功,还有报错信息
四、项目构建步骤分析
1、构建项目第一步,通过ant,build项目

在项目设置中,配置选项,build项目
/home/zhengtingting/project/trunk/BackOfficePortal/build.xml 这个我是从SVN上面取的源码(还没有编译)文件存放路径
然后一起查看build.xml文件,在上文中提到该文件的重要性,现在开始解读改文件
从SVN上面取到的源码包存放路径。

这个build文件是开发会自带的文件,只要我们取下来,几乎不要变动
最重要的应该是后面的
2、构建项目第二步:停止tomcat
在build文件中可以看到这样的一个节点

在项目中的设置中也能看到这个build文件的提到停止tomcat,由于使用本人自己的用户,所以在脚本中添加了sudo,但是很悲催的告诉大家,hudson中不识别sudo这个命令
#vi tomcat_stop01.sh

和开心,看到build成功了,但是各位亲们,遗憾的是,在实验机器上面看不到tomcat停止了,所以吧去掉sudo命令,后面你又得很悲催的发现在重新build不成功,为什么?嘿嘿,这就是停止脚本的权限了,给个可执行的权限吧。这回成功了。
3、构建项目第三步:备份项目

项目设置中添加一条ant节点备份脚本,
重新构建项目吧,这回很确定的说不成功。为什么,还不是文件夹的权限。
首先,备份文件夹的权限,改成所属人为本人,还有项目也是,但是还是失败,最终一狠心,改成777的权限,成功了,这个是弊端啊。

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

在build成功之后就会在/home/zhengtingting/project/trunk/BackOfficePortal目录下面生产应用目录,直接就可以拿去覆盖现有应用就可以了
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都需要留着,不需要改动。
七、综上所述
Hudson使用还是挺便捷的,也有所利弊,不过应用在新的简单的项目上面是可以的,本次实验是在本机传输的,后期会跟进对于跨机器的部署,在这边是考虑使用rsync同步的,测试那边已经在使用这个工具跨机器使用。
如需转载请注明出处: http://www.ttlsa.com/html/2518.html
Hudson安装配置、部署应用及分析的更多相关文章
- tcpdump安装配置及抓包分析
http://blog.csdn.net/e421083458/article/details/23963189 cpdump安装配置及抓包分析 预装软件:[plain] view plain cop ...
- ELK安装配置及nginx日志分析
一.ELK简介1.组成ELK是Elasticsearch.Logstash.Kibana三个开源软件的组合.在实时数据检索和分析场合,三者通常是配合使用,而且又都先后归于 Elastic.co 公司名 ...
- cdh版本的hue安装配置部署以及集成hadoop hbase hive mysql等权威指南
hue下载地址:https://github.com/cloudera/hue hue学习文档地址:http://archive.cloudera.com/cdh5/cdh/5/hue-3.7.0-c ...
- tomcat 安装配置部署到nginx+tomcat+https
目录 1 Tomcat简介 2.下载并安装Tomcat服务 2.2 部署java环境 2.3 安装Tomcat 2.4 Tomcat目录介绍 (关注点 bin conf logs webapps) 2 ...
- Roller5.0.3安装配置部署 step by step
一.下载roller 下载地址:http://roller.apache.org/downloads/downloads.html下载下来之后,解压包含两部份doc.webapps 二.准备环境 1. ...
- Linux中(Ubuntu18.04.x/CentOS)mysql8.0.x安装/配置/部署/启动
The MySQL Connectors and APIs are the drivers and libraries that you use to connect applications in ...
- maven安装配置部署建项运行
http://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-websocket/1.4.1.RELEA ...
- ELK 架构之 Logstash 和 Filebeat 安装配置
上一篇:ELK 架构之 Elasticsearch 和 Kibana 安装配置 阅读目录: 1. 环境准备 2. 安装 Logstash 3. 配置 Logstash 4. Logstash 采集的日 ...
- 持续集成篇 --Hudson持续集成服务器的安装配置与使用
样例项目参考视频教程:http://www.roncoo.com/course/view/85d6008fe77c4199b0cdd2885eaeee53 IP:192.168.4.221 8G内存 ...
随机推荐
- 《Java并发编程实战》第二章 线程安全 札记
一个.什么是线程安全 编写线程安全的代码 其核心是管理国事访问的操作. 共享,可变的状态的訪问 - 前者表示多个线程訪问, 后者声明周期内发生改变. 线程安全性 核心概念是正确性.某个类的行为与其规范 ...
- 实现键值对存储(三):Kyoto Cabinet 和LevelDB的架构比較分析
译自 Emmanuel Goossaert (CodeCapsule.com) 在本文中,我将会逐组件地把Kyoto Cabinet 和 LevelDB的架构过一遍.目标和本系列第二部分讲的差点儿相 ...
- 关于cocos2dx导入安卓项目至eclipse的诸多问题
看视频实在是有点蛋疼,尽管我也想在苹果上做,可是奈何自己是一个小屌丝,根本买不起高富帅的装备.所以仅仅能硬着头皮去处理win以下的问题. 在把用C++语言编写的cocos2dx项目编译编译完毕之后,导 ...
- atitit.为什么技术的选择方法java超过.net有前途
atitit.为什么技术的选择方法java超过.net有前途 #----有没有法律依据不同的铜需求... 通常有开发效率,需要在稳定性.. 笔者 老哇爪 Attilax 艾龙, EMAIL:1466 ...
- 批处理添加iis wpg、users对IIS的访问权限
原文 批处理添加iis wpg.users对IIS的访问权限 上一篇,我们学习了如何使用批处理删除各种帐户在IIS中的访问权限.下面,我们来看看,如何通过批处理添加iis_wpg.users对IIS的 ...
- mac下qt设置调试器 调试器未设置
标号少标个5凑合看吧
- poj 2804 字典 (特里 要么 快排+二分法)
2804:词典 总时间限制: 3000ms 内存限制: 65536kB 描写叙述 你旅游到了一个国外的城市.那里的人们说的外国语言你不能理解.只是幸运的是,你有一本词典能够帮助你. 输入 首先输 ...
- 我也来谈javascript高级编程之:javascript函数编译过程
前言 题目有点大,其实也就是手痒...跟大家来扯一下javascript编译过程. 那么到底什么是“编译”呢 这个...本人文笔太差,我还是直接举例子吧. 相信玩过js童鞋应该都看过下面这样一个面试题 ...
- JS脚本显示当前日期+星期几[转]
以下的代码提供了显示当前日期和星期几的实现方法: function writeDateInfo() { var day=""; var month= ...
- swiftSingleton模式
swift在几个方面Singleton模式: 1. 全局变量 private let _singleton = Singleton() class Singleton: NSObject { clas ...