jenkins部署码云springboot项目到远程服务器

dalaoyang      2022-04-18     711

关键词:

本文是上一篇文章的后续,上一篇只是利用Jenkins部署项目到本地,并启动,本文是将项目部署到远程服务器并执行。

1.环境准备

1.1 安装插件

上一篇文章已经介绍了需要安装的应用及插件,这一篇还需要2个插件,分别是如下插件:

  • Git Parameter Plug-In :这个插件用于获取git上信息,如分支和标签
  • Publish Over SSH :这个插件用于将本地文件发送到远程服务器

1.2 环境配置

这里需要在 系统管理->系统设置->Publish over SSH配置远程部署的服务器,如图:

技术分享图片

其中参数配置如下:

  • Passphrase :远程服务器密码
  • Name :这个就是给远程连接起个名
  • Hostname :远程服务器地址
  • Username :远程服务器用户名
  • Remote Directory :上传文件路径

都配置完成后可以点击下面Test Configuration进行测试,如果提示Success则证明配置成功。

2.项目配置

这里大致分为四个部分

2.1 参数

首先是参数,基本上和上一篇差不多,新增了几个,有一个和之前的不一样,使用的Git Parameter,这里选择的分支(branch),如下图:

技术分享图片

技术分享图片

技术分享图片

2.2 Git

git没什么好说的,和之前一样,见下图。

技术分享图片

2.3 Build Environment

这里配置了要传到对应服务器的东西,以及需要使用的脚本,见下图。

技术分享图片

技术分享图片

Exec command脚本代码如下,这里也没什么好说的,进入对应目录,将脚本赋予权限,然后执行。

cd ${jar_path}/${project_name}/;
chmod 777 start_${project_name}.sh;
./start_${project_name}.sh ${jar_path} ${jar_name} ${spring_profile} ${check_url} ${project_name} ${jdk_path}

2.4 Build

这里就是将项目打包,然后把服务器上shell脚本复制到打包后文件夹,代码如下:

mvn clean install -Dmaven.test.skip=true;
cp /usr/local/shell/start_jar.sh start_${project_name}.sh;

如图

技术分享图片

3.测试运行

运行前,展示一下远程上传的脚本,脚本内容并非本人自己写的,借鉴了其他组的脚本:

#!/bin/bash

#export BUILD_ID=dontKillMe这一句很重要,这样指定了,项目启动之后才不会被Jenkins杀掉。
export BUILD_ID=dontKillMe

jar_path=${1}
jar_name=${2}
spring_profile=${3}
check_url=${4}
project_name=${5}
jdk_path=${6}

if  [ ! -n "${jar_path}" ] ;then
    echo "参数 1. jar_path 为空"
    exit 1
fi
if  [ ! -n "${jar_name}" ] ;then
    echo "参数 2. jar_name 为空"
    exit 1
fi

if  [ ! -n "${spring_profile}" ] ;then
    echo "参数 3. spring_profile 为空"
    exit 1
fi
if  [ ! -n "${check_url}" ] ;then
    echo "参数 4. check_url 为空"
    exit 1
fi
if  [ ! -n "${project_name}" ] ;then
    echo "参数 5. project_name 为空"
    exit 1
fi
if  [ ! -n "${jdk_path}" ] ;then
    echo "参数 6. jdk_path 为空"
    exit 1
fi

#Jenkins中编译好的jar位置
deploy_path=${jar_path}/${project_name}/

#服务检查
check_attempts=20
check_timeout=6

#进入工作目录,log会打在该目录下
cd ${deploy_path}

echo ‘deploy_path‘ ${deploy_path}
#获取运行编译好的进程ID,便于我们在重新部署项目的时候先杀掉以前的进程
pid=$(cat ${deploy_path}/pid)

#杀掉以前可能启动的项目进程
kill -9 ${pid}

#启动jar,指定SpringBoot的profiles为test,后台启动
nohup ${jdk_path} -jar -Xms256m -Xmx256m -XX:-HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./logs -Dspring.profiles.active=${spring_profile} ${deploy_path}/${jar_name} >/dev/null &

#将进程ID存入到pid文件中
echo $! > ${deploy_path}/pid

#服务启动检测
online=false
echo "检测服务启动状态"
for (( i=1; i<=${check_attempts}; i++ ))
do
  code=`curl -sL --connect-timeout 20 --max-time 30 -w "%{http_code}
" "${check_url}" -o /dev/null`
  echo "服务检测返回结果:$code"
  if [ "${code}" = "200" ]; then
    echo "已检测到服务:${check_url}"
    sleep 10
    online=true
    break
  else
    echo "未检测到服务,等待 ${check_timeout} 秒后重试"
    sleep ${check_timeout}
  fi
done
if $online; then
  echo "服务检查结束,服务启动正常"
  exit 0
else
  echo "服务检查结束,服务启动失败"
  exit 1
fi

在jenkins部署项目,如下图,对应参数,分支只有一个master。这里的测试地址我选择的是项目首页,如下:

技术分享图片

点击Build按钮后,等待处理即可,可能由于两个服务器间传输文件比较慢的原因相对时间不是很快。执行结束后见下图:

技术分享图片
然后访问http://47.98.109.195:8888/可以看到下图:

技术分享图片

4.总结

总体感觉jenkins使用就是一个熟悉了就感觉没那么难了,个人感觉这个工具就是需要慢慢熟悉,一开始是最难入手的。


springboot(十六):使用jenkins部署springboot

...nkins是devops神器,本篇文章介绍如何安装和使用jenkins部署SpringBoot项目jenkins搭建部署分为三个步骤;第一步,jenkins安装第二步,插件安装和配置第三步,PushSSH第四步,部署项目第一步,jenkins安装准备环境:JDK:1.8Jenkins:2.83Centos:7.... 查看详情

五.jenkins部署springboot项目--服务

springboot 通过winsw部署为服务winsw 下载地址:https://github.com/kohsuke/winsw/releaseswinsw的使用比较简单,下载上面两个文件,和springboot项目jar包一个文件夹下。将exe和xml修改成同样的名字xml文件内容如下:<configuration><!--I... 查看详情

jenkins自动部署springboot项目

说明:该示例为在windows系统下自动化部署springboot架构:springboot+github+gradle+jdk8各种配置步骤及截图说明:1、配置git,gradle及jdk  系统管理→全局工具配置  说明:其中git配置项中的PathtoGitexecutable要指到git.exe文件,m... 查看详情

jenkins+docker一键自动化部署springboot项目

本文章实现最简单全面的​​Jenkins+docker+springboot​​ 一键自动部署项目,步骤齐全,少走坑路。环境:centos7+git(gitee)简述实现步骤:在docker安装jenkins,配置jenkins基本信息,利用Dockerfile和shell脚本实现项目自动拉取打包并运... 查看详情

jenkins和gitee自动化部署springboot项目(代码片段)

Centos使用Jenkins和Gitee自动化部署SpringBoot项目本教程是在腾讯云上面通过jenkins.war包进行Jenkins的部署,没有采用docker和yum的方式。此外,本项目是在云服务器本地进行自动构建,所以就没有配置publishoverssh环境准备首先... 查看详情

jenkins+docker一键自动化部署springboot项目(代码片段)

...文章及时了解本文章实现最简单全面的Jenkins+docker+springboot一键自动部署项目,步骤齐全,少走坑路。环境:centos7+git(gitee)简述实现步骤:在docker安装jenkins,配置jenkins基本信息,利用Docke 查看详情

jenkins+docker一键自动化部署springboot项目(代码片段)

...文章及时了解本文章实现最简单全面的Jenkins+docker+springboot一键自动部署项目,步骤齐全,少走坑路。环境:centos7+git(gitee)简述实现步骤:在docker安装jenkins,配置jenkins基本信息,利用Docke 查看详情

docker学习|第八篇:docker+jenkins单机部署springboot项目(代码片段)

Docker学习|第八篇:Docker+Jenkins单机部署SpringBoot项目前言最近学了一段时间的jenkins以及Docker之后,自己进行了一些自动持续集成的相关实践。在这里记录一下。环境本文所需环境如下:CentOs7系统已安装Docker已安装... 查看详情

jenkins部署springboot项目失败

参考技术A一天踩两次坑也是醉了~更新完springboot的版本后居然部署不成功!查看日志报以下错一开始以为是网络问题,还试了把jenkins更新,重装和更新jenkins的maven插件,升级maven,但后来发现都不是这些问题。关键句是这个Failur... 查看详情

springboot项目利用jenkins实现自动化部署

https://blog.csdn.net/rengee202/article/details/80894872?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0 查看详情

springboot项目利用jenkins实现自动化部署

https://blog.csdn.net/rengee202/article/details/80894872?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0 查看详情

基于docker+jenkins实现自动化部署(代码片段)

...准备:这里搭建测试整个流程的时候使用的是jenkins+gitee+springboot项目1、登录码云https://gitee.com/ 创建自己的代码仓库。2、创建springboot项目上传到仓库。一、下载Jenkins镜像,安装启动有个很残酷的消息在docker的镜像仓库中Jenki... 查看详情

springboot项目使用jenkins进行自动化部署(gitlab管理项目)_(代码片段)

1.部署服务器创建好对应文件夹和启动脚本创建文件夹mkdir/wdcloud/app/rps/rps-module-category创建启动脚本cd/wdcloud/app/rps/rps-module-categoryvimrps-module-category.sh#!/bin/bashAPP_HOME=/wdcloud/app/rps/rps-module-categoryAPP_JAR=r 查看详情

使用jenkins+gitlab自动构建springboot项目,并部署到远程服务器上

前言最近又重新弄了一下jenkins,虽然之前也有弄过但是都是在本地服务器部署,而且记录的不够详细,因此这次将写下详细部署过程。 一、下载并启动Jenkins下载地址:https://jenkins.io/download/  ,选择下载war包下载... 查看详情

jenkins自动化部署springboot多模块依赖jar(代码片段)

...器和环境4.上传服务器总结前言实现使用jenkins自动化部署springboot多模块打包jar提示:以下是本篇文章正文内容,下面案例可供参考一、实现原理大概实现流程使用git命令拉取指定分支的代码使用maven指定命令构建项目到je... 查看详情

jenkins自动化部署springboot多模块依赖jar(代码片段)

...器和环境4.上传服务器总结前言实现使用jenkins自动化部署springboot多模块打包jar提示:以下是本篇文章正文内容,下面案例可供参考一、实现原理大概实现流程使用git命令拉取指定分支的代码使用maven指定命令构建项目到je... 查看详情

jenkins+docker+gitee+springboot自动化部署(代码片段)

当我们使用传统的开发方式开发后台系统时,每写完一个功能点就需要重新运行一下项目,然后进行测试,如果是项目比较小还可以,但是如果项目比较大的话,由于涉及的人员比较多,这种开发方式就比... 查看详情

jenkins+码云做持续集成

...滴云等,因为码云要访问你的外网服务器)、码云账号、jenkins的war包;第一步:安装以及配置jenkins安装jenkins官网下载:https://jenkins.io/然后将war包部署到服务器然后访问jenkins以上比较粗略,因为这个不是很难,可以参考:https:/... 查看详情