centos|jenkins + Git自动构建springboot项目并部署到远程机器
1.准备jenkins环境
centos 安装 jenkins和登录2.准备插件
文章图片
安装插件
Maven Integration(jenkins集成maven的插件,用于添加《构建一个maven项目》的菜单)
Publish Over SSH(用于连接远程服务器)
Deploy to container(用于把打包的应用发布到远程服务器)
3.添加远程代码部署服务器
文章图片
文章图片
4.配置 maven 和 jdk
注意:配置的路径都是jenkins机器,非远程代码部署机器
文章图片
- maven settings文件配置
文章图片
- jdk配置(java home)
文章图片
- maven配置
文章图片
文章图片
文章图片
选择构建一个maven项目,确认,即可开始配置项目参数(前面安装的插件)
- 添加 Git 仓库(这里我用的公共仓库,私有仓库需要添加域和用户信息)
文章图片
- 构建触发器
文章图片
- 配置maven命令
文章图片
- 发布到远程服务器的配置(下面还有个exec command,项目启动的脚本,稍后配置)
文章图片
- 启动脚本
#!/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
文章图片
点击build now 下面出现当前次构建的进度,点击进去就能看到构建的详情了
文章图片
日志文件(这里分别部署到了两台远程机器,两个不同的端口9898和9899)
文章图片
推荐阅读
- gitlab|gitlab 通过备份还原 admin/runner 500 Internal Server Error
- gitlab|Gitlab升级(12.2.1到14.6.4)
- 常用git命令总结
- CentOS7 阿里云镜像配置方法
- 圆形菜单
- Git学习-笔记摘要
- [2018-02-22]|[2018-02-22] Git之远程仓库
- 二、Git|二、Git 基础操作
- git|git 的常规操作
- Centos6源码编译安装2.4版本http服务步骤