jenkins + Git自动构建springboot项目并部署到远程机器

1.准备jenkins环境

centos 安装 jenkins和登录

2.准备插件

在这里插入图片描述
安装插件
Maven Integration(jenkins集成maven的插件,用于添加《构建一个maven项目》的菜单)
Publish Over SSH(用于连接远程服务器)
Deploy to container(用于把打包的应用发布到远程服务器)

3.添加远程代码部署服务器

在这里插入图片描述

在这里插入图片描述

4.配置 maven 和 jdk

注意:配置的路径都是jenkins机器,非远程代码部署机器

在这里插入图片描述

  1. maven settings文件配置
    在这里插入图片描述
  2. jdk配置(java home)
    在这里插入图片描述
  3. maven配置
    在这里插入图片描述

5.添加要构建的项目

在这里插入图片描述
在这里插入图片描述
选择构建一个maven项目,确认,即可开始配置项目参数(前面安装的插件)

  1. 添加 Git 仓库(这里我用的公共仓库,私有仓库需要添加域和用户信息)
    在这里插入图片描述

  2. 构建触发器
    在这里插入图片描述

  3. 配置maven命令在这里插入图片描述

  4. 发布到远程服务器的配置(下面还有个exec command,项目启动的脚本,稍后配置)
    在这里插入图片描述

  5. 启动脚本

    #!/bin/bash
    port=9898 #项目启动端口
    echo "check $port"
    grep_port=`netstat -tlpn | grep "\b$port\b"`
    echo "grep port is $grep_port"
    if [ -n "$grep_port" ]
    then
      echo "端口 $port 在使用"
      netstat -nlp |grep :9898 |grep -v grep|awk '{print $7}' |awk -F '/' '{print $1}' |xargs kill -9
      echo "kill 掉$port 端口"
    else
      echo "端口没有被使用"
    fi
    echo "开始重启"
    # 此处要加BUILD_ID=dontKillMe 否则jenkins不会将项目启动下去
    BUILD_ID=dontKillMe nohup java -jar /home/jenkins_deploy/xxx/xxx-0.0.1.jar &
    echo "jenkins 自动化部署成功"
    

    需要注意的点:在部署多台机器的时候,可能会出现状态为 unstable 的状态,错误提示为
    ERROR: Exception when publishing, exception message [Exec timed out or was interrupted after 120,000ms]
    阻塞了后面的机器继续发布和启动,需要在配置远程机器的高级配置里勾上 Exec in pty 如下图
    在这里插入图片描述
    添加了这个配置后,虽然结果提示Finished:success,但是项目没有启动
    需要在脚本里添加sleep 1即可成功启动

    #!/bin/bash
    port=9898 #项目启动端口
    echo "check $port"
    grep_port=`netstat -tlpn | grep "\b$port\b"`
    echo "grep port is $grep_port"
    if [ -n "$grep_port" ]
    then
      echo "端口 $port 在使用"
      netstat -nlp |grep :9898 |grep -v grep|awk '{print $7}' |awk -F '/' '{print $1}' |xargs kill -9
      echo "kill 掉$port 端口"
    else
      echo "端口没有被使用"
    fi
    echo "开始重启"
    # 此处要加BUILD_ID=dontKillMe 否则jenkins不会将项目启动下去
    BUILD_ID=dontKillMe nohup java -jar /home/jenkins_deploy/xxx/xxx-0.0.1.jar &
    echo "jenkins 自动化部署成功"
    sleep 1
    

6.启动和日志输出

配置完成后回到项目内
在这里插入图片描述
点击build now 下面出现当前次构建的进度,点击进去就能看到构建的详情了
在这里插入图片描述
日志文件(这里分别部署到了两台远程机器,两个不同的端口9898和9899)
在这里插入图片描述

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值