关键词:
本文是上一篇文章的后续,上一篇只是利用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:/... 查看详情