设为首页 收藏本站
查看: 1148|回复: 0

[经验分享] [原]Jenkins(十五)

[复制链接]

尚未签到

发表于 2018-1-7 08:56:32 | 显示全部楼层 |阅读模式
  /**
  * 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
  


  2)添加用户和角色

  3)登录tomcat manager

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

  在后台看是这样的:

  从前台看这样的:

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

  四、利用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 Tomcat 6.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
  

  4.测试是否发布成功
  4.1检查tomcat manager页面

  ====================================================================================
  遇到的问题总结:
  问题一:部署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示例脚本:
  

#!/bin/bash  
#Time
  
log_time
=`date +[%Y-%m-%d]%H:%M:%S`  

  
###manual_properties###
  
tomcat_basehome
=/opt/tomcat6/apache-tomcat-6.0.45  
tomcat_port
=9090  
shell_environment
=/bin/bash  
war_Dir
=/opt/jenkins  
war_Name
=quick4j.war  
###manual_properties###
  

  

  

  
#update server environment
  

echo "**********************************  ${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>  
export CATALINA_2_HOME=/opt/tomcat6/apache-tomcat-6.0.45
  
export CATALINA_2_BASE=/opt/tomcat6/apache-tomcat-6.0.45
  
export TOMCAT_2_HOME=/opt/tomcat6/apache-tomcat-6.0.45
  
sleep 3
  
echo "updating server  environment  end"
  

  
#build check funcation
  
echo "check tomcat status..."
  
check_tomcat_status(){
  
netstat -ant|grep ${tomcat_port}
  
t=$?
  
if [ $t -eq 0 ]; then
  
echo "tomcat is running....port is ${tomcat_port}"
  
echo "shutdown tomcat....."
  
echo ">>>>>>>shutdown tomcat begin<<<<<<<<"
  
${shell_environment} ${tomcat_basehome}/bin/shutdown.sh
  
echo ">>>>>>>shutdown tomcat end <<<<<<<<"
  
sleep 5
  
elif [ $t -ne 0 ];then
  
echo "tomcat is poweroff"
  
${shell_environment} ${tomcat_basehome}/bin/shutdown.sh
  
sleep 5
  
fi
  
}
  

  
#check tomcat status invoke function
  
check_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 ];then
  
echo "Folder ${war_Dir} is empty.please check war package in this folder!"
  
exit 1
  
else
  
echo "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}
  
sleep 3
  
fi
  
#reboot tomcat
  
echo " >>>>>>>  rebooting  tomcat begin <<<<<<<<"
  
${shell_environment} ${tomcat_basehome}/bin/startup.sh
  
echo " >>>>>>>  rebooting  tomcat end <<<<<<<<"
  
echo "the log you can read in canalina.out"
  
echo "************************ deploy war package into container Successlly  **********************************"
  

  问题三:遇到“Connection refused”的异常
  问题点:tomcat
  解决方案:请检查远程机的容器是否启动、端口是否设置正常,不同的容器配置方式不一样,请参考相应容器的配置文档
  问题四:遇到“Deployed application at context path /xxx but context failed to start”
  问题点:tomcat
  解决方案:到远程机的WEB容器下查看日志
  问题总结部分参考:http://blog.csdn.net/houyefeng/article/details/50996198
  --------------------目录电梯---------------------
[原]Jenkins(一)---我理解的jenkins是这样的

[原]Jenkins(二)---jenkins之Git+maven+jdk+tomcat

[原]Jenkins(三)---Jenkins初始配置和插件配置

[原]Jenkins(四)---Jenkins添加密钥对

[原]jenkins(五)---jenkins添加项目

[原]jenkins(六)---jenkins远程部署脚本

[原]Jenkins(七)---jenkins项目编译测试发布由maven构建的web项目

[原]Jenkins(八)---jenkins构建项目报错时发送错误报告邮件

[原]Jenkins(九)---jenkins分别发布多个项目到多个远程主机

[原]Jenkins(十)---jenkins注册管理员admin并赋所有权限给admin

[原]Jenkins(十一)---jenkins使用管理员admin创建用户和分配权限

[原]Jenkins(十二)---jenkins管理员用户无法登陆解决办法Access Denied

[原]Jenkins(十三)---jenkins用户权限管理

[原]Jenkins(十四)---jenkins示例:admin管理所有项目,新建用户只能看部分项目

[原]Jenkins(十五)---jenkins插件之deploy

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-432476-1-1.html 上篇帖子: 性能测试持续集成(Jenkins+Ant+Jmeter) 下篇帖子: 基于jenkins搭建一个持续集成服务器
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表