前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Springboot and Gitlab 自动部署配置

Springboot and Gitlab 自动部署配置

作者头像
老七Linux
发布2018-05-31 12:36:20
8420
发布2018-05-31 12:36:20
举报
文章被收录于专栏:Laoqi's Linux运维专列

最近玩springboot,自己有一个服务器,写完了都放到服务器去部署,刚开始用的gui-manager方式,但是慢慢的发现,这个方法部署太慢了。大家都知道一般的小水管宽带的上传也就70k左右,部署一次等n久。于是想着能不能自动部署,每次把代码提交即可。经过查找资料结合自身已有的了解,找到了Jenkins,很强大,但是配置什么的略微麻烦,看网上的教程貌似也要编写脚本,于是想着何不自己直接撸个脚本算了,于是各种查找各种学脚本,于是有了如下简单的部署脚本,在结合crontab任务,基本可以满足自己的需求了。

贴出脚本代码如下:(autodeploy.sh)

代码语言:javascript
复制
#!/bin/sh
# Tomcat的webapps地址
tomcat_webapps_path=/usr/local/apache-tomcat-9.0.0.M18/webapps/
# github 项目地址
[email protected]:megoc/springboot-mybatis.git
#截取"/"右边的
tmp=${github_url##*/}
#截取"."左边的
project_name=${tmp%%.*}
echo "========="$project_name===============
#没有更新标志
b="Already"
c="up-to-date"
#判断是否已经clone 过了
if [ ! -d "$project_name" ]
then
  rm -rf $project_name
#获取命令执行的结果
a=$(git clone $github_url 2>&1)
cd $project_name
echo $a
else
  cd $project_name
  echo "=========begin git pull============"
#获取pull的结果
a=$(git pull origin master 2>&1)
echo $a
fi
#如果结果中包含相关的字段,则认为没有更新,退出不进行打包部署
echo $a
echo $b
echo $c
#输出字符串是否包含关键字更新
if [[ $a =~ $b ]]
then
echo ------------no update-------------
exit 0
elif [[ $a =~ $c ]]
then
echo ------------no update-------------
exit 0
fi
echo "============begin package=========="
rm -rf target
#开始打包
mvn package
cd target/
#开始部署,此方式不妥当,应该通过gui进行部署,有兴趣的自己实现
#停止Tomcat服务
systemctl stop tomcat
rm -rf ${tomcat_webapps_path}"ROOT"
#移动到Tomcat目录下并自动命名
mv -u *.war ${tomcat_webapps_path}"ROOT.war"
#重启Tomcat服务
systemctl start tomcat
echo "=============deploy end============="
脚本运行前提:

jdk和Tomcat安装

安装git并配置git的SSH登录

maven 安装,最简单方式

代码语言:javascript
复制
yum install maven

也可以到官网自己去下载安装包配置。

脚本使用方式:

在任何目录下新建脚本文件

代码语言:javascript
复制
vi autodeploy.sh

复制以上脚本粘贴,并修改Tomcat的webapps的路径为你自己服务器上的路径,同时修改GitHub的项目地址,还有你的Tomcat的服务器的启动(systemctl start tomcat)和停止(systemctl stop tomcat)指令,和我一样的不需修改 保存退出,执行指令确保脚本可运行

代码语言:javascript
复制
chmod +x autodeploy.sh

配置定时任务–crontab定时任务配置 #每30分钟执行一次脚本,根据自己需求改

代码语言:javascript
复制
*/30 * * * * /usr/local/sbin/autodeploy.sh

大工告成,现在只要提交到GitHub上即可,等时间一到或者直接登录服务器运行脚本即可自动部署项目了。

提示:本脚本运行于CentOS 7 其他环境未测试。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017/10/27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 脚本运行前提:
  • 脚本使用方式:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档