Jenkins自动构建部署SpringBoot项目

Jenkins

Jenkins是开源CI&CD软件领导者,是Devops神器,本文介绍Jenkins的安装,自动构建,部署SpringBoot项目

Jenkins安装及配置

1.安装
1.1Jenkins官网下载所需版本的war包即可https://jenkins.io/zh/download/(推荐下载LTS即长期支持版本问题会比较少)

image

1.2我使用的Linux系统,所以把下载好的war包上传到服务器上去,编写一个启动脚本启动Jenkins即可,Jenkins是war包形式可以直接使用java -jar命令执行,使用脚本是为了后续启动停止Jenkins方便操作

  • 使用wgett命令下载war包:wget http://mirrors.jenkins.io/war/2.190.3/jenkins.war
  • 启动脚本如下
#!/bin/bash
pid=`ps -ef | grep jenkins.war | grep -v 'grep'| awk '{print $2}'| wc -l`
if [ "$1" = "start" ];then
        if [ $pid -gt 0 ];then
    echo 'jenkins is running...'
    else
    java -jar jenkins.war --httpPort=8888 >/dev/null 2>&1 &
        fi
elif [ "$1" = "stop" ];then
        exec ps -ef | grep jenkins | grep -v grep | awk '{print $2}'| xargs kill -9
    echo 'jenkins is stop..'
else
        echo "Please input like this:"./jenkins.sh start" or "./jenkins stop""
fi
  • 启动和停止命令(Jenkins安装目录下执行)
./jenkins.sh stop
./jenkins.sh start

2.配置
2.1启动Jenkins后会提示需要密码,根据页面提示使用cat命令到指定路径下获取密码即可

image

2.2安装插件,上一步输入密码后会进入下一个页面选择官方推荐的即可(但是有的插件可能不能安装多刷新几次全部安装),然后需要设置账号密码,自己根据需求进行设置

  • 安装插件:通过下载HPI文件安装插件
    (1)下载所需要安装合适版本插件的HPI,网址:http://updates.jenkins-ci.org/download/plugins/?C=N;O=D
    image

    (2)进入Jenkins主页面:系统管理 -> 插件管理 -> 高级 -> 上传插件(红框里需要自己手动点击确认)
    image

    (3)项目部署需要安装三个必须插件:Git plugin 和 Maven Integration plugin,publish over SSH,可以使用上诉方式安装也可以使用一下方法:系统管理 -> 插件管理 -> 可选插件 -> 根据插件名字搜索安装即可
  • Git plugin:支持Git的插件
  • Maven Integration plugin:构建Maven项目所需要的插件,安装后在创建新项目时可以选择构建Maven项目
  • publish over SSH:SSH连接服务器,让项目可以发布在其他服务器上
    2.3Jenkins全局配置:系统管理 -> 全局工具配置(需要安装Maven、JDK、Git,未安装需要在服务器上安装)
  • Maven全局配置:可以修改settings.xml将远程仓库成阿里云速度会快点,如果自己公司有中央仓库也可以做修改,此处时指定


    image
  • JDK


    image
  • Git:Name随意写、Path就是服务器安装的路径


    image
  • Maven


    image
  • 配置SSH Server:系统管理 -> 系统配置 -> Publish over SSH
    image

    点击高级设置输入密码:选择使用密码验证权限
    image

    3.自动构建部署SpringBoot项目
    3.1访问Jenkins,新建Item
    image

    3.2输入Item名,选择构建Maven项目
    image

    3.3项目配置
  • 勾选丢弃旧的构建,选择是否备份被替换的旧包。我这里选择备份最近的10个


    image
  • 源码管理:选择Git填写仓库地址,并添加访问账号和密码或者秘钥


    image
  • 添加访问凭据:点击添加,添加访问认证(我是用的UserName+Password模式也可以选择其他方式)


    image
  • 构建环境:构建环境中勾选“Add timestamps to the Console Output”,代码构建的过程中会将日志打印出来
    ![](https://user-gold-cdn.xitu.io/2019/12/12/16ef92370fafe302?w=939&h=294&f=png&s=28370
  • Build:在Build中填写Pom位置(多模块,单一模块默认即可),并填写Maven打包命令


    image
  • Post Steps:选择Run only if build succeeds,打包成功后执行


    image
  • 点击Add post-build step,选择 Send files or execute commands over SSH:构建成功后的操作,通过SSH传输文件,并执行相应脚本或者命令


    image
  • SSH Publishers配置


    image

    Name:选择之前Publish over SSH配置的SSH Servers
    Source files:选择源文件所在地址,就是项目打包后的jar包地址(根据实际情况而定) XX/target/xxx.jar 项目jar包名
    Remove prefix:XX/target/,去除掉Source files后的xxx.jar即可
    Remote directory:/apps/proj-packages/vevor-amazon-cloud/amazon-admin/ 代码应用服务器的目录地址
    Exec command:/apps/proj-packages/vevor-amazon-cloud/amazon-admin/startup.sh 应用服务器对应的脚本(也可以写Linux命令)

  • 启动脚本:下面脚本的意思是先杀死已有项目进程,备份旧Jar,获取新Jar包并启动(网上很多,可以自行搜索)
DATE=$(date +%Y%m%d)
export JAVA_HOME PATH CLASSPATH
JAVA_HOME=/usr/local/java/jdk1.8.0_171
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
DIR=/apps/proj-packages/vevor-amazon-cloud/amazon-admin
JARFILE=amazon-admin.jar
 
if [ ! -d $DIR/backup ];then
   mkdir -p $DIR/backup
fi
cd $DIR
 
ps -ef | grep $JARFILE | grep -v grep | awk '{print $2}' | xargs kill -9
mv $JARFILE backup/$JARFILE$DATE
mv -f /root/.jenkins/workspace/Cloud-Amazon-Admin/amazon-admin/target/$JARFILE .
 
java -jar $JARFILE --spring.profiles.active=prod  > out.log &
if [ $? = 0 ];then
        sleep 30
        tail -n 50 out.log
fi
 
cd backup/
ls -lt|awk 'NR>5{print $NF}'|xargs rm -rf

  • 点击立即构建或者Build Now:项目构建部署


    image

    会在控制台打印具体构建部署信息,方便排查错误


    image

你可能感兴趣的:(Jenkins自动构建部署SpringBoot项目)