Jenkins——应用篇——插件使用——Deploy to container Plugin

来源:互联网 发布:终极算法 pdf 百度云 编辑:程序博客网 时间:2024/06/05 15:57

本文是jenkins应用系统文章的一部分,大部分来自工作和学习中的实践,部分内容来自官方文档和网友的文章,引用的文章会在“参考资料”部分附上原始链接,如无意中侵犯您的权利,请联系QQ:46106962,如需要进一步的交流请加入QQ群: (Jenkins学习交流)469536515。转载和使用请注明出处。

依赖环境

JDK
Tomcat

插件安装

在jenkins“系统管理”的“管理插件”中安装“Deploy to container Plugin”

在运程机上安装Tomcat

本文是通过Deploy to container Plugin插件将应用发布到tomcat下,使用的是tomcat 7.0.63,我使用的是绿色免安装版,如果使用其他方式安装请自行查找资料。

修改Tomcat管理用户配置

Deploy to container Plugin需要通过属于manager-script组的Tomcat管理用户将war包发布到Tomcat服务器上,默认没有这样的用户,需要在TOMCAT_HOME/conf/tomcat-users.xml添加manager-script组和相应的用户,增加如下两行:
<role rolename="manager-script"/>
<user username="deploy" password="deploy123456" roles="manager-script"/>
注:配置好后需要重启Tomcat才能生效

在Jenkins中配置Job

在“构建后操作”中增加“Deploy war/ear to container”,配置如下图:
Deploy to container Plugin配置

参数说明

WAR/EAR files
相对于工作空间的相对路径,也可以写“Ant-style GLOBs”表达式,如:**/*.war,“Ant-style GLOBs”暂时还没有弄明白是什么,经测试可以按如下形式写:source/target/*.war或source/target/yiqifa-adcenter-web.war,建议以“**/*.war”形式填写。
如本文中使用的Jenkins的工作空间为/data/jenkins,job名称为hyf-test-deploy-plugin,则这里的路径是相对/data/jenkins/hyf-test-deploy-plugin的(其中source是在job中指定的源码存放目录,视设置确定需不需要加上这个目录)
如果所有配置都正确,在Jenkins的控制台会看到如下图的提示:
deploy的输出
其中“hyf-test-deploy-plugin”为Jenkins的job名称。
Context Path
应用在Tomcat中的部署路径,如上图,部署后可以通过http://172.16.18.192:8080/hyftest来访问部署的应用
Manager user name/Manager password
在“修改Tomcat管理用户配置”中配置好的用户名和密码
Tomcat Url
运程Tomcat的访问路径,如上图中的http://172.16.18.192:8080,插件通过这个地址将应用的war/ear包上传到Tomcat的webapps目录下
Add Container
在这里可以继续增加其他的容器,这样就可以实现将应用同时部署到不同的容器中。

注意事项

  1. 运行Job进行部署前要先启动运程机上的WEB容器,插件需要通过容器提供的接口将war包发布到容器下
  2. 如果遇到“Deployed application at context path /xxx but context failed to start”这样的异常请到远程机的WEB容器下查看日志
  3. 如果遇到“Connection refused”的异常请检查远程机的容器是否启动、端口是否设置正常,不同的容器配置方式不一样,请参考相应容器的配置文档
  4. 如果遇到“403/401 for URL: http://172.16.18.192:8090/manager/text/list”,请检查远程机上是否存在Job中的Manager user name处添加的用户以及权限和密码设置是否正确

问题汇总

  1. 部署后Tomcat崩溃问题
    这个问题是由于Tomcat检测到webapps下应用的WEB-INF/lib、WEB-INF/classes或war有变化自动部署应用引起的,最常见的就是内存溢出问题,因为不在生产环境使用Tomcat所以没深究,有知道的同学请补充。

1 0
原创粉丝点击