Jenkins deploy to container部署war到tomcat(学习笔记十六)

简介: /*** lihaibo* 文章内容都是根据自己工作情况实践得出。*如有错误,请指正* 版权声明:本博客欢迎转发,但请保留原作者信息!http://www.cnblogs.com/horizonli/p/5407551.html本博客已经添加"打赏"功能,"打赏"位置位于右边栏红色框中,感谢您的赞助.*/一、deploy插件在jenkins中发布application到远端有很多方法,除了publish over ssh外还有个插件deploy.hpi也可以实现。

/**

* lihaibo

* 文章内容都是根据自己工作情况实践得出。

*如有错误,请指正

* 版权声明:本博客欢迎转发,但请保留原作者信息!

http://www.cnblogs.com/horizonli/p/5407551.html

本博客已经添加"打赏"功能,"打赏"位置位于右边栏红色框中,感谢您的赞助.

*/

一、deploy插件

在jenkins中发布application到远端有很多方法,除了publish over ssh外还有个插件deploy.hpi也可以实现。


   插件下载地址:

链接: http://pan.baidu.com/s/1pLotSmR 密码: jzud

插件安装方法:  点击:Jenkins(三)---Jenkins初始配置和插件配置

或手动转到 http://www.cnblogs.com/horizonli/p/5331970.html

二、配置 启用插件前需要对远程端的容器进行环境初始化(这里以tomcat为例)

 1.tomcat能正常启动

 2.tomcat能在web界面使用用户登录到app  manager

  1)配置增加tomcat用户:


  2)添加用户和角色


 3)登录tomcat manager


登录后如果能看到下面的界面表示配置正确

三、使用deploy插件发布war包到远程容器(这里以tomcat为例)

在系统设置中配置maven/jdk/git  可以参考:Jenkins(三)---Jenkins初始配置和插件配置 (除去七 SSH这一节 )

启动插件


打开之后填写

这里单独说下war包的路径和界面:

在后台看是这样的:

从前台看这样的:

界面地址:

这个地址就是用设置的用户和密码登录后的界面地址如下图:

四、利用deploy插件发布application到远程主机

   1.首先确保远程主机上的tomcat能正常启动并能使用用户登录到application管理界面

   2.再进行构建操作

   3.如下图所示构建成功

INFO] Building war: /opt/jenkins_tomcat6/jobs/quick4j_demo/workspace/target/quick4j.war

[INFO] WEB-INF/web.xml already added, skipping

[INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------[INFO] Total time:6.782 s

[INFO] Finished at: 2016-04-19T14:06:53+08:00[INFO] Final Memory: 27M/438M

[INFO] ------------------------------------------------------------------------[JENKINS] Archiving /opt/jenkins_tomcat6/jobs/quick4j_demo/workspace/pom.xml to com.eliteams/quick4j/1.0.0/quick4j-1.0.0.pom

[JENKINS] Archiving /opt/jenkins_tomcat6/jobs/quick4j_demo/workspace/target/quick4j.war to com.eliteams/quick4j/1.0.0/quick4j-1.0.0.war

channel stopped

Deploying /opt/jenkins_tomcat6/jobs/quick4j_demo/workspace/target/quick4j.war to container Tomcat6.x Remote

  [/opt/jenkins_tomcat6/jobs/quick4j_demo/workspace/target/quick4j.war] is not deployed. Doing a fresh deployment.

  Deploying [/opt/jenkins_tomcat6/jobs/quick4j_demo/workspace/target/quick4j.war]

Finished: SUCCESS

img_51e409b11aa51c150090697429a953ed.gif

   4.测试是否发布成功

    4.1检查tomcat manager页面


   4.2web界面查看


====================================================================================

遇到的问题总结:

 问题一:部署app的时候,tomcat出现“403/401 for URL: http://172.16.18.192:8090/manager/text/list” 和The username you provided is not allowed to use the text-based Tomcat Manager (error 403)

    问题点: tomcat用户配置文件

    解决方案:检查用户名和密码是否正确  是否添加了用户角色和权限.

 问题二(最常见):部署完app后会出现内存溢出"java.lang.OutOfMemoryError: PermGen space"

    问题点:tomcat的虚拟机内存不足,需要设置更大的内存

    解决方案:1.找到tomcat路径,用编辑器打开catalina.sh,在“echo "Using CATALINA_BASE:    $CATALINA_BASE"”上面加入以下行:

            JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m

                 2.用脚本重启tomcat服务器,再部署。

                 重启tomcat示例脚本:


img_51e409b11aa51c150090697429a953ed.gif

#!/bin/bash

#Time

log_time=`date+[%Y-%m-%d]%H:%M:%S`

###manual_properties###

tomcat_basehome=/opt/tomcat6/apache-tomcat-6.0.45tomcat_port=9090shell_environment=/bin/bash

war_Dir=/opt/jenkins

war_Name=quick4j.war

###manual_properties###

#update server environmentecho"**********************************  ${log_time} *************************************"echo"updating server  environment start"export JAVA_HOME=/app/java/jdk1.8.0_11

export JRE_HOME=/app/java/jdk1.8.0_11/jre

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar/export CATALINA_2_HOME=/opt/tomcat6/apache-tomcat-6.0.45export CATALINA_2_BASE=/opt/tomcat6/apache-tomcat-6.0.45export TOMCAT_2_HOME=/opt/tomcat6/apache-tomcat-6.0.45sleep3echo"updating server  environment  end"#build check funcationecho"check tomcat status..."check_tomcat_status(){

      netstat -ant|grep ${tomcat_port}

      t=$?if[ $t -eq0];thenecho"tomcat is running....port is ${tomcat_port}"echo"shutdown tomcat....."echo">>>>>>>shutdown tomcat begin<<<<<<<<"            ${shell_environment} ${tomcat_basehome}/bin/shutdown.shecho">>>>>>>shutdown tomcat end <<<<<<<<"sleep5elif[ $t -ne0];thenecho"tomcat is poweroff"              ${shell_environment} ${tomcat_basehome}/bin/shutdown.shsleep5fi}

#check tomcat status invoke functioncheck_tomcat_status

#transfer  application package

deploy_Loaction=${tomcat_basehome}/webapps/war_Dir_Data=`ls ${war_Dir}`echo"start  transfer  war package to tomcat webapps ......."if[ -z $war_Dir ];thenecho"Folder ${war_Dir} is empty.please check war package in this folder!"    exit 1elseecho"Find ${war_Dir} exist war package ${war_Name}"    # echo"deleteing old  package ${war_Name} in ${war_Dir}"    # rm${war_Dir}/${war_Name}

    echo"deleteing old  package ${war_Name} in ${deploy_Loaction}"rm ${deploy_Loaction}${war_Name}

    echo"start  transfer ${war_Name} to ${deploy_Loaction}"cp${war_Dir}/${war_Name}  ${deploy_Loaction}

    sleep3fi#reboot tomcat echo" >>>>>>>  rebooting  tomcat begin <<<<<<<<"${shell_environment} ${tomcat_basehome}/bin/startup.shecho" >>>>>>>  rebooting  tomcat end <<<<<<<<"echo"the log you can read in canalina.out"echo"************************ deploy war package into container Successlly  **********************************"

img_51e409b11aa51c150090697429a953ed.gif

 问题三:遇到“Connection refused”的异常

    问题点:tomcat

    解决方案:请检查远程机的容器是否启动、端口是否设置正常,不同的容器配置方式不一样,请参考相应容器的配置文档

 问题四:遇到“Deployed application at context path /xxx but context failed to start”

    问题点:tomcat

    解决方案:到远程机的WEB容器下查看日志


问题总结部分参考:http://blog.csdn.net/houyefeng/article/details/50996198

目录
相关文章
|
3月前
|
Java jenkins 应用服务中间件
结合Jenkins与Tomcat,实施Maven项目的自动构建和部署流程。
任何项目构建和部署的自动化流程,总离不开对各个环节精细把控与密切配合。涉及到源代码管理、构建工具、持续集成服务器以及最终的运行时环境的协调。通过上述简洁实用的步骤,可以实现Maven项目从源代码到运行状态的无缝过渡,进而提升软件开发的效率与质量。
284 0
|
6月前
|
Java 关系型数据库 MySQL
在Linux平台上进行JDK、Tomcat、MySQL的安装并部署后端项目
现在,你可以通过访问http://Your_IP:Tomcat_Port/Your_Project访问你的项目了。如果一切顺利,你将看到那绚烂的胜利之光照耀在你的项目之上!
385 41
|
6月前
|
开发框架 Java 关系型数据库
在Linux系统中安装JDK、Tomcat、MySQL以及部署J2EE后端接口
校验时,浏览器输入:http://[your_server_IP]:8080/myapp。如果你看到你的应用的欢迎页面,恭喜你,一切都已就绪。
509 17
|
6月前
|
Java 关系型数据库 MySQL
在Linux操作系统上设置JDK、Tomcat、MySQL以及J2EE后端接口的部署步骤
让我们总结一下,给你的Linux操作系统装备上最强的军队,需要先后装备好JDK的弓箭,布置好Tomcat的阵地,再把MySQL的物资原料准备好,最后部署好J2EE攻城车,那就准备好进军吧,你的Linux军团,无人可挡!
158 18
|
6月前
|
开发框架 关系型数据库 Java
Linux操作系统中JDK、Tomcat、MySQL的完整安装流程以及J2EE后端接口的部署
然后Tomcat会自动将其解压成一个名为ROOT的文件夹。重启Tomcat,让新“植物”适应新环境。访问http://localhost:8080/yourproject看到你的项目页面,说明“植物”种植成功。
214 10
|
10月前
|
监控 Java 应用服务中间件
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
162 23
|
10月前
|
监控 Java 应用服务中间件
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
285 22
|
jenkins Devops Java
DevOps实践:Jenkins在持续集成与持续部署中的价值
【10月更文挑战第27天】在快速发展的软件开发领域,DevOps实践日益重要。Jenkins作为一款流行的开源自动化服务器,在持续集成(CI)和持续部署(CD)中扮演关键角色。本文通过案例分析,探讨Jenkins在Java项目中的应用,展示其自动化构建、测试和部署的能力,提高开发效率和软件质量。
350 2
|
9月前
|
监控 jenkins Shell
jenkins结合gitlab实现CI(持续集成)
通过本文的介绍,我们详细了解了如何结合Jenkins和GitLab实现持续集成。从环境准备、插件配置到Pipeline任务创建和CI流程监控,每一步都提供了详细的操作步骤和示例代码。希望本文能帮助开发者快速搭建起高效的CI系统,提高项目开发效率和代码质量。
833 9
|
10月前
|
Java jenkins 持续交付
Jenkins集成Maven
通过以上步骤,可以在Jenkins中成功集成Maven,实现自动化构建和部署。通过定时构建、SCM轮询等方式,可以确保代码库中的最新变更能够及时构建和测试,提高开发效率和代码质量。这种集成方式在实际项目中具有广泛的应用前景,能够显著提升团队的协作效率。
282 8

推荐镜像

更多