Hudson安装配置、部署应用及分析
<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li>一、部署环境</li><li>二、环境搭建<ul class="second_class_ul"><li>1、下载hudson ,安装部署http://hudson-ci.org/</li><li>2、下载完成,需找一台linux的机器,上传文件。后台解压运行</li><li># java -jar hudson-3.0.1.war --httpPort=8888&</li></ul></li><li>三、新建、部署项目<ul class="second_class_ul"><li>1、新建项目</li><li>2、调整系统设置</li><li>3、开始配置新建的任务</li><li>4、配置任务的环境</li><li>5、开始构建项目</li></ul></li><li>四、项目构建步骤分析<ul class="second_class_ul"><li>1、构建项目第一步,通过ant,build项目</li><li>2、构建项目第二步:停止tomcat</li><li>3、构建项目第三步:备份项目</li><li>4、构建项目第四步:覆盖应用</li><li>5、构建项目第五步:启动tomcat</li></ul></li><li>五、hudson利弊<ul class="second_class_ul"></ul></li><li>六、环境部署和实际应用<ul class="second_class_ul"><li>1、初始环境的搭建和应用部署</li><li>2、跨机部署构建项目</li><li>3、通用性</li><li>4、硬件管理</li></ul></li><li>七、综上所述<ul class="second_class_ul"></ul></li></ul></div><p class="maodian"></p><h2>一、部署环境</h2>
<p>机器:一台linux虚机,内存1G,操作系统CentOS release 5.6,硬盘100G。</p>
<p>实验应用:乐学方舟后台部署(非正式环境)</p>
<p>应用环境:apache-tomcat-7.0.27 ,JDK</p>
<p class="maodian"></p><h2>二、环境搭建</h2>
<p class="maodian"></p><h3>1、下载hudson ,安装部署http://hudson-ci.org/
</h3>
<p><img src="https://zhuji.jb51.net/uploads/img/20230517/0f8b86d912256cb4fbdd3339c489a6db.jpg" width="545" height="179"></p>
<p>点击下载</p>
<p><img src="https://zhuji.jb51.net/uploads/img/20230517/f4e0daa28275a2288d2a9dd57a7b2b40.jpg" width="451" height="148"></p>
<p class="maodian"></p><h3>2、下载完成,需找一台linux的机器,上传文件。后台解压运行</h3>
<p class="maodian"></p><h3># java -jar hudson-3.0.1.war --httpPort=8888&</h3>
<p>在实验环境中,hudson-3.0.1.war 会默认解压到/root/.hudson/目录下面,这个改变不了</p>
<p>通过浏览器访问http://IP:8888/</p>
<p><img src="https://zhuji.jb51.net/uploads/img/20230517/4848b3d59eaac73cc05e0fd0d0db1cfe.jpg" width="508" height="195"></p>
<p>页面最后install,等待安装完成 ,安装最新版的hudson,还是老实的等待安装吧,没有安装后面有的苦了。。</p>
<p>以上是安装hudson的过程</p>
<p class="maodian"></p><h2>三、新建、部署项目</h2>
<p class="maodian"></p><h3>1、新建项目</h3>
<p><img src="https://zhuji.jb51.net/uploads/img/20230517/fbc662c165047eab377473a1ddc02ffb.jpg" width="559" height="243"></p>
<p><img src="https://zhuji.jb51.net/uploads/img/20230517/b4a55ad56578d46d8171255b3e4f7402.jpg" width="559" height="189"></p>
<p class="maodian"></p><h3>2、调整系统设置</h3>
<p><img src="https://zhuji.jb51.net/uploads/img/20230517/b4c3f1295acd48990ee57d325114c02a.jpg" width="565" height="351"></p>
<p>设置JDK环境变量</p>
<p><img src="https://zhuji.jb51.net/uploads/img/20230517/8fe5777abbaf923e644fd59b7a848ab9.jpg" width="544" height="148"></p>
<p> </p>
<p>安装ant,添加环境变量:http://<em>ant</em>.apache.org/bindownload.cgi 下载安装包,接解压到自定义目录,就可以使用</p>
<p><img src="https://zhuji.jb51.net/uploads/img/20230517/cea462e9c629d33d305e417b4c12644e.jpg" width="552" height="139"></p>
<p> </p>
<p>SVN的账号密码和添加邮件</p>
<p><img src="https://zhuji.jb51.net/uploads/img/20230517/2efa149d21fde411fcf1a81264899977.jpg" width="558" height="67"></p>
<p> </p>
<p><img src="https://zhuji.jb51.net/uploads/img/20230517/99176ae9215e1d7647f2262574b4dd97.jpg" width="554" height="195"></p>
<p>可以先测试,其他不变,点击“save”保存</p>
<p class="maodian"></p><h3>3、开始配置新建的任务</h3>
<p><img src="https://zhuji.jb51.net/uploads/img/20230517/2ff2b579d423fbceb1312c6b150eccdf.jpg" width="558" height="160"></p>
<p><img src="https://zhuji.jb51.net/uploads/img/20230517/5e600a8a32bb115e23f9315a948f44a5.jpg" width="558" height="244"></p>
<p class="maodian"></p><h3>4、配置任务的环境</h3>
<p><img src="https://zhuji.jb51.net/uploads/img/20230517/bdded42ac47243dd006e6d0d03334068.jpg" width="565" height="126"></p>
<p>SVN 路径</p>
<p><img src="https://zhuji.jb51.net/uploads/img/20230517/29c8b016a76c1d1a9a6c23af8cb221dc.jpg" width="532" height="188"></p>
<p>Ant的build项目,这个build.xml后面说明,很重要的一个文件,贯穿整个hudson是否成功完成部署的关键</p>
<p><img src="https://zhuji.jb51.net/uploads/img/20230517/03a60426f00a955ff99075e9aa1660f5.jpg" width="558" height="181"></p>
<p><img src="https://zhuji.jb51.net/uploads/img/20230517/2ee68152b8f4062da14a64f174593da5.jpg" width="544" height="159"></p>
<p>以上配置好了就可以点击最底下的保存</p>
<p class="maodian"></p><h3>5、开始构建项目</h3>
<p><img src="https://zhuji.jb51.net/uploads/img/20230517/9d97abea59ce6ac495f284ff3276454b.jpg" width="561" height="196"></p>
<p>点击开始构建</p>
<p>点击console可以查看够构建项目的过程,也能在这里里面看到是够构建成功,还有报错信息</p>
<p class="maodian"></p><h2>四、项目构建步骤分析</h2>
<p class="maodian"></p><h3>1、构建项目第一步,通过ant,build项目</h3>
<p><img src="https://zhuji.jb51.net/uploads/img/20230517/2d0ee25202ebd48df5d6305b1bfba6d1.jpg" width="550" height="159"></p>
<p>在项目设置中,配置选项,build项目</p>
<p>/home/zhengtingting/project/trunk/BackOfficePortal/build.xml 这个我是从SVN上面取的源码(还没有编译)文件存放路径</p>
<p>然后一起查看build.xml文件,在上文中提到该文件的重要性,现在开始解读改文件</p>
<p>从SVN上面取到的源码包存放路径。</p>
<p><img src="https://zhuji.jb51.net/uploads/img/20230517/3033814151f882bf434572054811d807.jpg" width="553" height="390"></p>
<p>这个build文件是开发会自带的文件,只要我们取下来,几乎不要变动</p>
<p>最重要的应该是后面的</p>
<p class="maodian"></p><h3>2、构建项目第二步:停止tomcat</h3>
<p>在build文件中可以看到这样的一个节点</p>
<p><img src="https://zhuji.jb51.net/uploads/img/20230517/f52a215c5ca4f2d3c26f75a78fbb11f4.jpg" width="555" height="207"></p>
<p>在项目中的设置中也能看到这个build文件的提到停止tomcat,由于使用本人自己的用户,所以在脚本中添加了sudo,但是很悲催的告诉大家,hudson中不识别sudo这个命令</p>
<p>#vi tomcat_stop01.sh</p>
<p><img src="https://zhuji.jb51.net/uploads/img/20230517/2988640ff447348d841b6ae6151c55a8.jpg" width="566" height="186"></p>
<p>和开心,看到build成功了,但是各位亲们,遗憾的是,在实验机器上面看不到tomcat停止了,所以吧去掉sudo命令,后面你又得很悲催的发现在重新build不成功,为什么?嘿嘿,这就是停止脚本的权限了,给个可执行的权限吧。这回成功了。</p>
<p class="maodian"></p><h3>3、构建项目第三步:备份项目</h3>
<p><img src="https://zhuji.jb51.net/uploads/img/20230517/5722bf33be6c51348362a6ef1d07ba05.jpg" width="566" height="184"></p>
<p>项目设置中添加一条ant节点备份脚本,</p>
<p>重新构建项目吧,这回很确定的说不成功。为什么,还不是文件夹的权限。</p>
<p>首先,备份文件夹的权限,改成所属人为本人,还有项目也是,但是还是失败,最终一狠心,改成777的权限,成功了,这个是弊端啊。</p>
<p><img src="https://zhuji.jb51.net/uploads/img/20230517/11bf6033ad013ff676a87f638b410dff.jpg" width="552" height="226"></p>
<p class="maodian"></p><h3>4、构建项目第四步:覆盖应用</h3>
<p><img src="https://zhuji.jb51.net/uploads/img/20230517/15e347891ef47f33529f92613c60a303.jpg" width="574" height="221"></p>
<p>在build成功之后就会在/home/zhengtingting/project/trunk/BackOfficePortal目录下面生产应用目录,直接就可以拿去覆盖现有应用就可以了</p>
<p class="maodian"></p><h3>5、构建项目第五步:启动tomcat</h3>
<p><img src="https://zhuji.jb51.net/uploads/img/20230517/9af588a9edab90e9712cee26f54d7965.jpg" width="527" height="152"></p>
<p>剩下的也就差不多了,该给的权限都给了,不该给的权限也给了,这回也就成功了</p>
<p class="maodian"></p><h2>五、hudson利弊</h2>
<table width="570" border="1" cellspacing="0" cellpadding="0"><tbody>
<tr>
<td rowspan="2" valign="top" width="187">Hudson</td>
<td valign="top" width="187">优势</td>
<td valign="top" width="187">劣势</td>
</tr>
<tr>
<td valign="top" width="187">1、 部署简单,脚本使用方便2、 构建过程简单3、 页面配置,实施方便,简单4、 可移植性强,主要移动脚本5、 部署项目失败,回滚简单6、 批量部署简单7、 不需要数据库参与8、 集成RSS/E-mail/IM-通过RSS发布构建结果或当构建失败时通过e-mail实时通知。9、 Hudson可以通过插件扩展 </td>
<td valign="top" width="187">1、安装插件时间长2、跨机器构建项目需要人工参与3、文件夹权限不严谨4、hudson自动解压目录不合理(/root/.hudson/)5、需要依赖自动化部署的ant,git等6、使用批处理命令直接移war包。不过这样的缺点在于,移动失败的时候,会显示批处理命令执行成功,hudson是不会报错的,需要人工检查。</td>
</tr>
</tbody></table>
<p> </p>
<p class="maodian"></p><h2>六、环境部署和实际应用</h2>
<p class="maodian"></p><h3>1、初始环境的搭建和应用部署</h3>
<p>有我们OPS有自己编译好的yum源,可以直接将构建项目过程中的第二步停止应用脚本改成yum安装包。</p>
<p>A、 很多应用都需要添加虚拟主机,这就需要在脚本中匹配到某行,添加虚拟主机的配置</p>
<p>B、 构建项目的第二步停止tomcat和第三步备份项目可以省略,不过也可以不省略,看个人习惯</p>
<p>C、 其余的步骤都是相同的</p>
<p class="maodian"></p><h3>2、跨机部署构建项目</h3>
<p>跨机器或是双机部署应用的情况下,这边采用的是rsync同步的方式,部署应用,在这之前是需要人工手动的进行操作,进行配置rsync(rsync部署安晓会他们已经试验过了,有什么需要的这个也是可以沟通滴)</p>
<p align="left">rsync -vazP –delete ip::war/ /home/zhengtingting/deploy/ >>/home/zhengtingting/rsync.log 2>&1</p>
<p align="left">Hudson如果不需要手工参与的话,需要使用一个插件,系统管理/插件管理/可选插件,系统列出可用的所有插件,找到Deploy插件选中并点击安装按钮,等安装完毕后重启tomcat,就可以看到Deploy插件已经安装好。不过在hudson-3.0.1的就没有看到了。安装的插件也没有看到这个功能。</p>
<p><img src="https://zhuji.jb51.net/uploads/img/20230517/69936083d70156a9cdefc6b70e9c0188.jpg" width="672" height="225"></p>
<p align="left">重新打开上面添加任务的配置界面,找到配置文件的最后,找到Post-build Actions(构建后的动作)</p>
<p align="left"><img src="https://zhuji.jb51.net/uploads/img/20230517/997dd5a40f00d9f23ea4ae76a6e7d643.jpg" width="575" height="226"></p>
<p align="left">不过这个构建有点不好的一个现象,不过是否成功的覆盖移植应用,最终在build都会显示成功,如果失败就需要手工的参与,批量处理的这种最好是先在一天验证是否通过后在进行批量的处理。</p>
<p class="maodian"></p><h3>3、通用性</h3>
<p align="left">A、脚本移植</p>
<p align="left">Hudson可移植性还是挺好的,不过在移植过程中,需要重新的下载和更新hudson,需要占用大量的时间。里面的插件,至少需要2-3个小时的安装时间,不过在这个时间可以迁移脚本就行了。安装好插件,需要的配置也得需要个半个小时至1个小时时间。Hudson可移植的也就是脚本,就依赖的包,不需要什么东西。移植性还是相对不错的。</p>
<p align="left">B、没有数据库参数</p>
<p align="left">Hudson不需要涉及到任何数据库参与部署,这就可以避免了很大部分的数据库的更改,还有就是匹配</p>
<p class="maodian"></p><h3>4、硬件管理</h3>
<p align="left">Hudson到使用到现在还没有看到有硬件管理方面的插件。</p>
<p align="left">5、依赖和回滚</p>
<p align="left">A、依赖</p>
<p align="left">Hudson部署看个人喜好用ant,git,maven都行,不过还是需要从SVN上面下东西,</p>
<p align="left">本来从开始就使用ant,必须一定要安装一个,不然是不会成功滴。还有安装的时候需要的各种插件,SVN,EMAIL,还有几个页面初始打开的是必须要安装的几个插件,否则,是会失败滴。</p>
<p align="left">B、回滚</p>
<p align="left">项目构建失败的回滚,只是更改下脚本,将原本备份的解压覆盖到应用目录中就行,最开始的停止tomcat和最后的启动tomcat都需要留着,不需要改动。</p>
<p class="maodian"></p><h2>七、综上所述</h2>
<p>Hudson使用还是挺便捷的,也有所利弊,不过应用在新的简单的项目上面是可以的,本次实验是在本机传输的,后期会跟进对于跨机器的部署,在这边是考虑使用rsync同步的,测试那边已经在使用这个工具跨机器使用。</p>
<p>如需转载请注明出处: http://www.ttlsa.com/html/2518.html</p>
頁:
[1]