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

目录
相关文章
|
10天前
|
监控 Java 应用服务中间件
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
51 23
|
11天前
|
监控 Java 应用服务中间件
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
44 22
|
14天前
|
监控 Java 应用服务中间件
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
56 25
|
1月前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
151 26
|
1月前
|
运维 jenkins Java
Jenkins 自动化局域网管控软件构建与部署流程
在企业局域网管理中,Jenkins 作为自动化工具,通过配置源码管理、构建及部署步骤,实现了高效、稳定的软件开发与部署流程,显著提升局域网管控软件的开发与运维效率。
56 5
|
4月前
|
应用服务中间件 Docker 容器
docker应用部署---Tomcat的部署配置
这篇文章介绍了如何使用Docker部署Tomcat服务器,包括搜索和拉取Tomcat镜像、创建容器并设置端口映射和目录映射,以及如何创建一个HTML页面并使用外部机器访问Tomcat服务器。
docker应用部署---Tomcat的部署配置
|
3月前
|
Java 应用服务中间件 Linux
tomcat学习二:tomcat部署多个项目:不修改端口和修改端口 两种方式详解
这篇文章详细介绍了在Tomcat服务器上部署多个项目的方法,包括不修改端口和修改端口两种方式。
219 0
|
3月前
|
jenkins Java 持续交付
Jenkins打包,发布,部署
Jenkins打包,发布,部署
294 0
|
2月前
|
jenkins Devops Java
DevOps实践:Jenkins在持续集成与持续部署中的价值
【10月更文挑战第27天】在快速发展的软件开发领域,DevOps实践日益重要。Jenkins作为一款流行的开源自动化服务器,在持续集成(CI)和持续部署(CD)中扮演关键角色。本文通过案例分析,探讨Jenkins在Java项目中的应用,展示其自动化构建、测试和部署的能力,提高开发效率和软件质量。
97 2
|
3天前
|
Java jenkins 持续交付
Jenkins集成Maven
通过以上步骤,可以在Jenkins中成功集成Maven,实现自动化构建和部署。通过定时构建、SCM轮询等方式,可以确保代码库中的最新变更能够及时构建和测试,提高开发效率和代码质量。这种集成方式在实际项目中具有广泛的应用前景,能够显著提升团队的协作效率。
30 8