Jenkins部署在码云上的SpringBoot项目
介绍
Jenkins 是一个开源软件项目,是基于 Java 开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
其实通俗来说,Jenkins 就是一个自动化部署项目的工具,提交代码就能自动部署项目,省去重复的运维工作。
需要的环境:Jdk1.8 Maven Git
JDK Maven Git安装
jdk maven省略…
环境相关命令(回头查看用)
- vim /etc/profile
- source /etc/profile
Jenkins安装
- jenkins安装部署文档 这个建议还是不要用了,问题很多
需要输入以下3条命令, 网络原因, 要花比较长的时间,而且可能会安装失败
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
yum install jenkins
- jenkins以war包方式启动(我选择的是这种)
war包下载地址 下载很慢很慢
百度云:
链接:https://pan.baidu.com/s/1mmuKDaYgAG_SijFe8aMBkg
提取码:zl3c
将war包下载下来后(我的本地启动失败,卡在首页,服务器上启动成功)
- 运行命令
nohup java -jar jenkins.war --httpPort=8666 &
- 打开浏览器进入链接 `http://主机IP:8666
- 注意: 请将war包放在/root目录下, 后面涉及路径问题,有点麻烦
密码在linux中输入tail -n 100 nohup.out查看日志获得
接着选择推荐的插件
A few minutes later…
设置登录密码等操作
配置 jenkins 全局工具
这步就是配置一些基础的东西,像jdk、maven、git等,配置到jenkins.
这里列出我的配置(根据自己的配置来)
记得把自动安装的勾去掉,才能自己输入(参考前面的环境相关命令,根据自己的实际情况来)
Jenkins配置
到这里最重要的就是配置了,接下来一步步配置,如果你不理解为什么要这样配置,不要改路径,不然要磨很久
- 登录jenkins
- 左边的导航栏选择
- 新建项目,选择Freestyle project, 左下保存按钮
- 配置环境参数(脚本会使用到)
总结一下:
-
jar_path : 本意是准备项目打包后的 jar 位置,其实这里是 Jenkins 工作空间
-
spring_profile:这个是读取配置文件前缀,比如 dev,test,prod
-
jar_name:jar 包名称
-
project_name:项目名称
路径原因:
刚才的原因是jenkins在打包时会往自己的工作空间里放一份打出来的jar包,如图:
如果jenkins部署在/root目录下,那么工作空间就是:/root/.jenkins/workspace
配置Build
- 增加构建步骤
在输入框输入脚本
mvn clean install -Dmaven.test.skip=true
echo $spring_profile $jar_path $jar_name
cd /usr/local/shell/
./stop.sh $jar_name
echo "Execute shell Finish"
./startup.sh $spring_profile $jar_path $jar_name $project_name
这里可以看到在/usr/local/shell目录下(没有目录则新建),需要新建两个脚本,stop.sh和startup.sh。
startup.sh内容:
spring_profile=${1}
jar_path=${2}
jar_name=${3}
project_name=${4}
cd ${jar_path}/${}/target/
echo ${jar_path}/${project_name}/target/
echo nohup java -jar ${jar_name} &
BUILD_ID=dontKillMe nohup java {jar_name} --spring.profiles.active=${spring_profile} &
stop.sh内容:
jar_name=${1}
echo "Stopping" ${jar_name}
pid=`ps -ef | grep ${jar_name} | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
echo "kill -9 的pid:" $pid
kill -9 $pid
fi
点击保存确定后,回到页面点击开始按钮
点击开始构建
查看日志
最后一步可能出现问题, 说是mvn命令找不到,稍微变通一下,注意maven的版本名以及mvn命令的位置,解决方法控制台输入命令:
ln -s /usr/local/apache-maven-3.6.3/bin/mvn /usr/bin/mvn
一键部署成功。