前言

首先什么是自动化部署呢, 先来一张图
在这里插入图片描述

之前我们可能要在本地用maven命令等打成jar包或者是war包 , 然后将打包好的包放到服务器的tomcat上, 这些过程都是手动的, 如果一个项目需要频繁的修改测试部署, 这时候来一个自动化部署多么的炫酷, jenkins就帮我们做了这事 , 下面说一下核心的配置和步骤

环境准备

  • Jenkins 2.228
  • Git 1.8.3.1
  • Maven 3.5.0
  • JDK 1.8
  • GitLab 12.0.2
  • tomcat 8.x
  • 两台服务器: 192.168.50.150 119.3.xxx.xxx

我们还需要在jenkins上配置Git的私钥, 不然代码屎拉不下来的,参考如下链接
配置SSH

这些工具的安装步骤就不详细的说了,百度上都有,也可以私信我

部署jar包核心配置

  1. 首先我们先在Jenkins上配置好一会所需要的服务器
    在这里插入图片描述
    进到系统设置,划到最下面
    在这里插入图片描述
  2. 配置工具
    在这里插入图片描述
    Maven在这里插入图片描述
    JDK
    在这里插入图片描述
    Git
    在这里插入图片描述
    Maven
    在这里插入图片描述
  3. 新建一个项目,进行配置,新建项目选择自由风格的就行, 就不做演示了, 建完项目进行配置
    在这里插入图片描述
    在这里插入图片描述

下面是核心,构建后的操作(如果选项卡中没有send build artifacts over ssh,就去安装一下SSH Build Agents插件)
在这里插入图片描述
在这里插入图片描述
Shell脚本如下

#!/bin/sh
app_dir=/opt/maven/jarstore/com/ywq/test/0.0.1-SNAPSHOT
app_file_path=$app_dir/test-0.0.1-SNAPSHOT.jar

app_path=/opt/jar/test.jar
source /etc/profile

if [ -f $app_file_path ] ;then

 echo -- stop app

	pidlist=`ps -ef | grep test| grep -v grep | awk '{print $2}'`

	if [ "$pidlist" = "" ] ;then
		 echo "no app pid alive!"
	else

	   echo "app Id list :$pidlist"
	   kill -9 $pidlist
	   echo "KILL $pidlist:"
	fi
echo -- 开始部署$app_path

  if [ -f $app_path ] ;then
        rm -f $app_path
        echo -- 正在删除$app_path
fi 

    mv $app_file_path  $app_path
    echo -- 开始启动$app_path
    export JAVA_HOME=/opt/jdk1.8
    nohup java -Xms1024m -Xmx1024m -jar $app_path > test.log &
    echo -- 启动完成
fi


这样就是配置好了,就可以实现jar包的自动化部署了

部署war包核心配置

部署war包和jar 很相似, 只是在最后一步有差别,构建后的操作

部署war包就不用脚本了, 用Deploy to container 插件(如果选项卡里没有,就去装一下)

在这里插入图片描述
在这里插入图片描述
如果说我们没有配置tomcat的管理账号密码, 就去tomcat下conf目录的tomcat-users.xml文件添加一下,内容如下(在tomcat-uses 这个标签中)

<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-status"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<user username="tomcat_user" password="123456" roles="manager-gui,manager-script,tomcat,admin-gui,admin-script" />

其余步骤和上面一样, 这样就算配置成功了

总结

这一套自动化流程帮我们提高了很大的效率, 同时也避免的一些人为错误的发生。
从无到有, 两天的时间, 也是翻阅了很多资料, 遇到了很多困难, 多去尝试!
如有对本文或者安装的过程有异议或问题,欢迎讨论学习!

纸上得来终觉浅,绝知此事要躬行。

在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐