github+jenkins自动部署spring-boot
1,服务器安装jdk,Jenkins,mysql(非必须),maven。2,Jenkins初始化设置1)进入系统管理->插件管理搜索安装需要插件,包括:Gitlab Hook Plugin ,GitLab Plugin,Maven Integration plugin,NodeJS Plugin,nvm-wrapper,Publish Over SSH,等。点击勾选,安装。2)进入系统管理-
1,服务器安装jdk,Jenkins,mysql(非必须),maven。
2,Jenkins初始化设置
1)进入系统管理->插件管理
搜索安装需要插件,包括:Gitlab Hook Plugin ,GitLab Plugin,Maven Integration plugin,NodeJS Plugin,nvm-wrapper,Publish Over SSH,等。点击勾选,安装。
2)进入系统管理->全局工具配置,首先配置git的位置,
不知道 输入linux命令 whereis git
maven和git同样的方式安装
nodejs ,点击 新增nodejs,取别名,随便取名,选择版本,建议不要选最新版本
最后点击 保存。全局工具配置完成。
2,git获取密匙及hook设置
首先我们需要获取一个git的密匙,使得Jenkins能够随意的拉取指定分支的代码,进入git 创建一个新的密匙,按照图中描述步骤进行
选完后页面拉到最后点击 generate token
复制这段token 进入Jenkins 找到下图
进行新增凭证
进入系统配置,给GitHub service 配置刚刚新增的这个凭证。
3,现在jenkins可以在git上拉取密码,但是无法进行部署的动作。接下来我们进行配置,让Jenkins能够拉取代码后自动部署。那我们建一个项目
选择新建一个maven项目
添加git的克隆地址(http)
这里选好分支。后面自动部署时就是在这条分支,选择自己需要的那一条即可。
选择Hook,这里选错则不会自动部署
post step 选择 excuter shell。
配置好这些之后需要编写shell脚本。
如下
#!/bin/bash
cd /usr/local/jenkins
echo "Execute shell Start"
sh stop.sh
sh replace.sh
echo "Execute shell Finish"
BUILD_ID=dontKillMe nohup java -jar /usr/local/demo-0.0.1-SNAPSHOT.jar &
这段脚本执行的时候,Jenkins已经完成了拉取代码,maven编译及打包的动作(在jenkins的工作空间)。我们只需要关注的后面进行将在Jenkins工作空间的jar包的复制转移以及启动。
这里需要另外编写stop.sh(停止正在运行的服务)replace.sh(替换jar包重新启动)
首先编写stop脚本
vim /usr/local/jenkins/stop.sh
# 将应用停止
#stop.sh
#!/bin/bash
echo "Stopping SpringBoot Application"
pid=`ps -ef | grep demo-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
kill -9 $pid
fi
#此处personal-0.0.1-SNAPSHOT.jar根据自己的jar包名称修改
然后时repalce脚本
vim /usr/local/jenkins/replace.sh
jar_name=demo-0.0.1-SNAPSHOT.jar
#!编译好的jar包存放地址
file_path=/root/.jenkins/workspace/test/target/demo-0.0.1-SNAPSHOT.jar
#!将现有的jar备份后,将新的jar包替换
file="/usr/local/demo-0.0.1-SNAPSHOT.jar"
if [ -f "$file" ]
then
mv /usr/local/demo-0.0.1-SNAPSHOT.jar /usr/local/demo-0.0.1-SNAPSHOT.jar.`date +%Y%m%d%H%M%S`
fi
cp /root/.jenkins/workspace/test/target/demo-0.0.1-SNAPSHOT.jar /usr/local
点击立即构建,找到构建历史,找到正在构建的项目,点击小箭头选择“控制台“输出”,就可以看到正在构建的项目打印的日志。
如果是下图代表着代码提交git后可以自动拉取且在服务器部署
4,接下来进行提交代码自动触发服务部署的配置。
进入如下页面
进入Jenkins,
指定Hook Url,这里和之前的Payload URL 保持一致
点击保存之后,全部就配置完成。提交一个代码测试一下。
开始构建
访问接口,测试成功
参考
https://www.cnblogs.com/zsh-blogs/p/10508656.html
jenkins spring-boot
有问题请留言。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)