持续集成-交付-发布-项目

一:Jenkins部署

1.安装插件

  1. Maven插件 Maven Integration plugin
  2. 发布插件 Deploy to container Plugin
  3. 需要安装插件如下:
  4. 安装插件Deploy to container ---支持自动化代码部署到tomcat容器
  5. Git 插件 可能已经安装
  6. Maven Integration :jenkins利用Maven编译,打包所需插件
  7. Publish Over SSH :通过ssh连接

2.安装过程

系统管理—->插件管理——>可选插件—->过滤Deploy to container——>勾选—->直接安装

持续集成-交付-发布-项目 - 图1

持续集成-交付-发布-项目 - 图2

3.配置SSH

持续集成-交付-发布-项目 - 图3

持续集成-交付-发布-项目 - 图4

持续集成-交付-发布-项目 - 图5

注意:

  1. key:指的是jenkins服务器用哪个用户去远程连接程序服务器就是那个用户的私钥。(记得做免密 jenkins---> web-server)

持续集成-交付-发布-项目 - 图6

4.配置jdk,maven,git

持续集成-交付-发布-项目 - 图7

持续集成-交付-发布-项目 - 图8

持续集成-交付-发布-项目 - 图9

持续集成-交付-发布-项目 - 图10

二:构建发布任务

1.创建maven项目

持续集成-交付-发布-项目 - 图11

持续集成-交付-发布-项目 - 图12

2.配置项目

持续集成-交付-发布-项目 - 图13

持续集成-交付-发布-项目 - 图14

https://github.com/bingyue/easy-springmvc-maven

  1. ![](%E6%8C%81%E7%BB%AD%E9%9B%86%E6%88%90-%E4%BA%A4%E4%BB%98-%E5%8F%91%E5%B8%83-%E9%A1%B9%E7%9B%AE.assets/vxtF-uRF9X71FkT1Ac_JIA.png)

注意:

  1. 新版本需要将默认分支改为main

持续集成-交付-发布-项目 - 图15

持续集成-交付-发布-项目 - 图16

持续集成-交付-发布-项目 - 图17

调用mave命令

持续集成-交付-发布-项目 - 图18

保存:

持续集成-交付-发布-项目 - 图19

3.发布服务器部署

  1. [root@java-server ~]# mkdir -p /data/application
  2. 上传jdk
  3. [root@java-server ~]# tar xzf jdk-8u191-linux-x64.tar.gz -C /usr/local/
  4. [root@java-server ~]# cd /usr/local/
  5. [root@java-server local]# mv jdk1.8.0_191/ java
  6. 下载tomcat
  7. [root@java-server ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42.tar.gz
  8. [root@java-server ~]# tar xzf apache-tomcat-8.5.42.tar.gz -C /data/application/
  9. [root@java-server ~]# cd /data/application/
  10. [root@java-server application]# mv apache-tomcat-8.5.42/ tomcat
  11. 设置环境变量
  12. [root@java-server ~]# vim /etc/profile
  13. export JAVA_HOME=/usr/local/java
  14. export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
  15. export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
  16. export TOMCAT_HOME=/data/application/tomcat
  17. [root@java-server ~]# source /etc/profile
  18. 测试:
  19. [root@java-server ~]# java -version
  20. java version "1.8.0_191"
  21. Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
  22. Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
  23. 删除tomcat默认发布目录下面的内容:
  24. [root@java-server ~]# rm -rf /data/application/tomcat/webapps/*
  25. [root@java-server ~]# cd /data/application/tomcat/webapps/
  26. [root@java-server webapps]# ls
  27. 创建目录和脚本:
  28. [root@java-server ~]# mkdir /opt/script #创建脚本目录
  29. [root@java-server ~]# vim app-jenkins.sh #创建脚本
  30. #!/usr/bin/bash
  31. #本脚本适用于jenkins持续集成,实现备份war包到代码更新上线!使用时请注意全局变量。
  32. #================
  33. #Defining variables
  34. export JAVA_HOME=/usr/local/java
  35. webapp_path="/data/application/tomcat/webapps"
  36. tomcat_run="/data/application/tomcat/bin"
  37. updata_path="/data/update/`date +%F-%T`"
  38. backup_path="/data/backup/`date +%F-%T`"
  39. tomcat_pid=`ps -ef | grep tomcat | grep -v grep | awk '{print $2}'`
  40. files_dir="easy-springmvc-maven"
  41. files="easy-springmvc-maven.war"
  42. job_path="/root/upload"
  43. #Preparation environment
  44. echo "Creating related directory"
  45. mkdir -p $updata_path
  46. mkdir -p $backup_path
  47. echo "Move the uploaded war package to the update 2directory"
  48. mv $job_path/$files $updata_path
  49. echo "========================================================="
  50. cd /opt
  51. echo "Backing up java project"
  52. if [ -f $webapp_path/$files ];then
  53. tar czf $backup_path/`date +%F-%H`.tar.gz $webapp_path
  54. if [ $? -ne 0 ];then
  55. echo "打包失败,自动退出"
  56. exit 1
  57. else
  58. echo "Checking if tomcat is started"
  59. if [ -n "$tomcat_pid" ];then
  60. kill -9 $tomcat_pid
  61. if [ $? -ne 0 ];then
  62. echo "tomcat关闭失败,将会自动退出"
  63. exit 2
  64. fi
  65. fi
  66. cd $webapp_path
  67. rm -rf $files && rm -rf $files_dir
  68. cp $updata_path/$files $webapp_path
  69. cd /opt
  70. $tomcat_run/startup.sh
  71. sleep 5
  72. echo "显示tomcat的pid"
  73. echo "`ps -ef | grep tomcat | grep -v grep | awk '{print $2}'`"
  74. echo "tomcat startup"
  75. echo "请手动查看tomcat日志。脚本将会自动退出"
  76. fi
  77. else
  78. echo "Checking if tomcat is started"
  79. if [ -n "$tomcat_pid" ];then
  80. kill -9 $tomcat_pid
  81. if [ $? -ne 0 ];then
  82. echo "tomcat关闭失败,将会自动退出"
  83. exit 2
  84. fi
  85. fi
  86. cp $updata_path/$files $webapp_path
  87. $tomcat_run/startup.sh
  88. sleep 5
  89. echo "显示tomcat的pid"
  90. echo "`ps -ef | grep tomcat | grep -v grep | awk '{print $2}'`"
  91. echo "tomcat startup"
  92. echo "请手动查看tomcat日志。脚本将会自动退出"
  93. fi
  94. [root@java-server ~]# vim app-jenkins.sh
  95. 脚本内容在后面
  96. [root@java-server ~]# chmod +x app-jenkins.sh #添加执行权限
  97. [root@java-server ~]# mv app-jenkins.sh /opt/script/

4.开始构建任务

持续集成-交付-发布-项目 - 图20

持续集成-交付-发布-项目 - 图21

持续集成-交付-发布-项目 - 图22

持续集成-交付-发布-项目 - 图23