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

[经验分享] jenkins自动部署tomcat

[复制链接]

尚未签到

发表于 2017-12-25 22:45:40 | 显示全部楼层 |阅读模式
jenkins自动部署tomcat
DSC0000.png 关于部署的3种思路:

  • 远程部署(jenkins编译部署到远程服务器):



    • 安装ssh插件

DSC0001.png



    • ssh插件配置

DSC0002.png


  • 添加远程jenkins服务器节点:
DSC0003.png


  • 本地部署(与jenkins在同一服务器):
关于maven构建的两种选择:



    • 直接选择maven插件





      • 自带插件():


DSC0004.png




      • 插件配置(或直接新建maven项目):


DSC0005.png
DSC0006.png



    • 添加shell编译过程,通过shell调用服务器的maven环境

jenkins配置:

  • export BUILD_ID=XXXXXX # 必须得加,原因未知,否则无法启动tomcat
  • export project_dir=$WORKSPACE
  • export target_dir=/export/App/zgbcms.m.jd.com
  • export do_dir=/export/Domains/zgbcms.m.jd.com/server1/bin
  • export war_path="cms-web"
  • export war_file="cms-web.war"
  • # 接受6个参数,mvn_parama为编译什么版本,接受参数dovolopment,test
  • export mvn_parama="test"

  • /home/lyz/bushu.sh
环境部署shell:

  • #!/bin/bash
  • # 自动编译部署脚本,jenkins调用
  • # 编译后生成文件war,清空并解压到指定文件夹,重启服务器
  • export M2_HOME=/export/servers/apache-maven-2.2.1
  • export JAVA_HOME=/export/servers/jdk1.6.0_25
  • export JAVA_BIN=/export/servers/jdk1.6.0_25/bin
  • export PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/bin
  • export>
  • export JAVA_OPTS="-Djava.library.path=/usr/local/lib -server -Xms1024m -Xmx1024m -XX:MaxPermSize=256m -Djava.awt.headless=true -Dsun.net.client.defaultConnectTimeout=60000 -Dsun.net.client.defaultReadTimeout=60000 -Djmagick.systemclassloader=no -Dnetworkaddress.cache.ttl=300 -Dsun.net.inetaddr.ttl=300"
  • export JAVA_HOME JAVA_BIN PATH>
  • export PATH=$PATH:$M2_HOME/bin
  • # 测试用传参
  • #export project_dir=/root/.jenkins/workspace/zgb_server_master
  • #export target_dir=/export/App/zgb.m.jd.com
  • #export do_dir=/export/Domains/zgb.m.jd.com/server1/bin
  • #export war_path="jd-qqgserver-web"
  • #export war_file="jd-qqgserver-web.war"

  • project_dir=$project_dir
  • target_dir=$target_dir
  • do_dir=$do_dir
  • war_path=$war_path
  • war_file=$war_file
  • mvn_parama=$mvn_parama

  • echo $project_dir
  • echo $target_dir
  • echo $do_dir
  • echo $war_path
  • echo $war_file
  • echo $mvn_parama

  • function mvn_build()
  • {
  • if[ $# -eq 6 ] # 校验参数是否为6个
  • then
  • if[-d "$project_dir/"]&&[-d "$target_dir/"]&&[-d "$do_dir/"]# 校验文件夹是否存在
  • then
  •             cd $project_dir

  • if["$mvn_parama"=="development"]
  • then
  •                 echo "编译开发版本!"
  •                 mvn clean install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -P artifactory,development
  • elif["$mvn_parama"=="test"]
  • then
  •                 echo "编译test版本!"
  •                 mvn clean install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -P artifactory,test
  • else
  •                 echo "未指定配置文件参数!会导致服务器无法访问!"
  •                 exit 1
  • fi

  •             rm -rf $target_dir/*
  •             cp -r $project_dir/$war_path/target/$war_file $target_dir/
  •             echo $target_dir/$war_file
  •             cd $target_dir
  •             unzip -oq $war_file
  •             rm -rf $target_dir/$war_file

  •             $do_dir/stop.sh
  • if[ $?==0]
  • then
  •                 echo "服务器停止成功!"
  • else
  •                 echo "服务器停止失败!"
  • fi

  •             $do_dir/start.sh
  • if[ $?==0]
  • then
  •                 echo "服务器启动成功!"
  • else
  •                 echo "服务器启动失败!"
  •                 exit 1# 退出状态为1,传给jenkins让任务失败
  • fi
  • else
  •             echo "Folder $* is not exist!"
  •             exit 1
  • fi
  • else
  •         echo "$0 is Errors! Parama is $# not 6!"
  •         exit 1
  • fi
  • }

  • # 接受6个参数,mvn_parama为编译什么版本,接受参数dovolopment,beta,production,test 或其他,其他为默认
  • mvn_build $project_dir $target_dir $do_dir $war_path $war_file $mvn_parama
来自为知笔记(Wiz)附件列表
  posted on 2017-01-23 12:21 测试散人 阅读(...) 评论(...)  编辑 收藏

运维网声明 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-428060-1-1.html 上篇帖子: maven自动化架构+Jenkins持续集成(CI)视频讲解 下篇帖子: Jenkins + Maven + Ansible + Tomcat 实现JAVA代码自动部署
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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