jenkins自动部署tomcat

关于部署的3种思路:

  • 远程部署(jenkins编译部署到远程服务器):
    • 安装ssh插件

    • ssh插件配置

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

  • 本地部署(与jenkins在同一服务器):

关于maven构建的两种选择:

    • 直接选择maven插件
      • 自带插件():

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

 

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

  1. export BUILD_ID=XXXXXX # 必须得加,原因未知,否则无法启动tomcat
  2. export project_dir=$WORKSPACE
  3. export target_dir=/export/App/zgbcms.m.jd.com
  4. export do_dir=/export/Domains/zgbcms.m.jd.com/server1/bin
  5. export war_path="cms-web"
  6. export war_file="cms-web.war"
  7. # 接受6个参数,mvn_parama为编译什么版本,接受参数dovolopment,test
  8. export mvn_parama="test"
  9. /home/lyz/bushu.sh
环境部署shell:

  1. #!/bin/bash
  2. # 自动编译部署脚本,jenkins调用
  3. # 编译后生成文件war,清空并解压到指定文件夹,重启服务器
  4. export M2_HOME=/export/servers/apache-maven-2.2.1
  5. export JAVA_HOME=/export/servers/jdk1.6.0_25
  6. export JAVA_BIN=/export/servers/jdk1.6.0_25/bin
  7. export PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/bin
  8. export CLASSPATH=.:/lib/dt.jar:/lib/tools.jar
  9. 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"
  10. export JAVA_HOME JAVA_BIN PATH CLASSPATH JAVA_OPTS
  11. export PATH=$PATH:$M2_HOME/bin
  12. # 测试用传参
  13. #export project_dir=/root/.jenkins/workspace/zgb_server_master
  14. #export target_dir=/export/App/zgb.m.jd.com
  15. #export do_dir=/export/Domains/zgb.m.jd.com/server1/bin
  16. #export war_path="jd-qqgserver-web"
  17. #export war_file="jd-qqgserver-web.war"
  18. project_dir=$project_dir
  19. target_dir=$target_dir
  20. do_dir=$do_dir
  21. war_path=$war_path
  22. war_file=$war_file
  23. mvn_parama=$mvn_parama
  24. echo $project_dir
  25. echo $target_dir
  26. echo $do_dir
  27. echo $war_path
  28. echo $war_file
  29. echo $mvn_parama
  30. function mvn_build()
  31. {
  32. if[ $# -eq 6 ] # 校验参数是否为6个
  33. then
  34. if[-d "$project_dir/"]&&[-d "$target_dir/"]&&[-d "$do_dir/"]# 校验文件夹是否存在
  35. then
  36. cd $project_dir
  37. if["$mvn_parama"=="development"]
  38. then
  39. echo "编译开发版本!"
  40. mvn clean install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -P artifactory,development
  41. elif["$mvn_parama"=="test"]
  42. then
  43. echo "编译test版本!"
  44. mvn clean install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -P artifactory,test
  45. else
  46. echo "未指定配置文件参数!会导致服务器无法访问!"
  47. exit 1
  48. fi
  49. rm -rf $target_dir/*
  50. cp -r $project_dir/$war_path/target/$war_file $target_dir/
  51. echo $target_dir/$war_file
  52. cd $target_dir
  53. unzip -oq $war_file
  54. rm -rf $target_dir/$war_file
  55. $do_dir/stop.sh
  56. if[ $?==0]
  57. then
  58. echo "服务器停止成功!"
  59. else
  60. echo "服务器停止失败!"
  61. fi
  62. $do_dir/start.sh
  63. if[ $?==0]
  64. then
  65. echo "服务器启动成功!"
  66. else
  67. echo "服务器启动失败!"
  68. exit 1# 退出状态为1,传给jenkins让任务失败
  69. fi
  70. else
  71. echo "Folder $* is not exist!"
  72. exit 1
  73. fi
  74. else
  75. echo "$0 is Errors! Parama is $# not 6!"
  76. exit 1
  77. fi
  78. }
  79. # 接受6个参数,mvn_parama为编译什么版本,接受参数dovolopment,beta,production,test 或其他,其他为默认
  80. mvn_build $project_dir $target_dir $do_dir $war_path $war_file $mvn_parama

来自为知笔记(Wiz)

附件列表

时间: 2024-11-05 11:46:38

jenkins自动部署tomcat的相关文章

使用Jenkins 自动部署发布

使用Jenkins自动部署发布,继Jenkins部署篇后: #注意:jenkins路径会有差异,不用在意这个,同一个版本部署2次,发现了2个不同的目录结构,很诧异. jenkins build玩war包的存放目录:/data/jenkins/workspace/simple/target 自动发布的脚本存放路径:/data/jenkins/jobs/simple 脚本的内容: 脚本使用的是scp命令,当然也可以使用wget等. [[email protected] simple]# cat de

Jenkins自动部署Shell脚本

注意:本脚本用于Shell脚本分享,因环境不同,不可直接用于其它环境部署用. #!/bin/bash#时间:2019年7月29日#作者:肖山#微信:helpxiaoshan#用途:用于XXXX UAT环境ATG商城项目Jenkins自动部署使用. ############ 使用注意事项:################################################################################# 注意1:需修改目标主机/etc/ssh/sshd

linux下实现自动部署tomcat的脚本

linux下实现自动部署tomcat的脚本 由于经常部署war到tomccat上,经常有一些重复的工作要做:停服务.备份war包.上传新的war包.启动服务.索性就写了一个自动部署的脚本. 脚本如下autoDeploy.sh: 1 #! /bin/sh 2 echo '####################开始自动部署####################' 3 path=`pwd` #当前路径 4 tomcatPath=tomcat-7 #指定tomcat文件目录名称 5 cd ../$t

服务器做了格式化后(ip没变),jenkins自动部署报错

jenkins自动部署报错如下:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!Some

使用cargo实现jenkins自动部署远程tomcat

转载请标明出处: http://blog.csdn.net/ouyida3/article/details/48089141 tomcat-users.xml配置 <role rolename="manager"/> <role rolename="manager-script"/> <role rolename="manager-gui"/> <role rolename="manager-j

Jenkins自动部署发布Java代码(完整教程)

一.需求 Jenkins大多数情况下都是用来部署Java项目,上一篇博客已经写了自动打包Java项目,但在现实应用中,Jenkins很强大的,可以做到自动打包发布Java项目.这篇文章,将引导大家完成完整的Java项目(自动发布代码功能)! 二.实验环境 三.实验步骤 1.搭建tomcat 服务(在192.168.22.129服务器上) (1)先安装jdk1.8 jdk和tomcat 下载地址: https://pan.baidu.com/s/1URk88Tp2Io0eUEMo1WpoCg 提取

使用Jenkins自动部署nodejs应用

想必部署过nodejs应用的朋友都有过这样的经历: 1.通过ssh登录服务器 2.进入nodejs目录 3.执行:git pull 命令拉取最新代码 4.执行:npm install 安装新依赖 5.执行:pm2 restart all 重新启动所有nodejs进程 如果我们只有一台机器,并且更新不是很频繁,似乎这样的操作还是可以接受,但是如果我们有4台nodejs应用的服务器,每次的代码改动将是灾难! 好在我们有Jenkins帮助我们做这些事情,Jenkins是一个可以自动远程部署,执行远程脚

Linux下自动部署Tomcat应用

#! /bin/sh echo '####################开始自动部署####################' path=`pwd` #当前路径 tomcatPath=apache-tomcat-8.5.15 #指定tomcat文件目录名称 cd ../$tomcatPath/bin #进入tomcat的bin目录 PID=$(ps -fu `whoami`|grep tomcat|grep -v grep|awk '{print $2}') if [ -z "$PID&quo

Glassfish Payara + jenkins自动部署脚本

配置文件内的列需要依次添加cat AutoDeployConf.conf #application domain port target contextroot app_name package_path passwordfiletest domain9 4808 test test test /test.war /test_adminpassword.txt 脚本内容,执行方式./auto_deploy_glassfish.sh applicationcat auto_deploy_glass