jenkins+gitlab自动化部署springboot项目
1,前置条件
需要最少两台服务器,一台部署gitlab代码仓库,另外一台部署jenlins进行项目测试而且需要安装jdk,maven,git环境
安装idk
// 上传压缩包,解压
tar -axvf /opt/software/jdk-8u271-linux-x64.tar.gz -C /opt/module
// 添加环境变量
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_271
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
// 测试
java -version
安装git
yum -y install git
也可以下载压缩包安装
默认安装位置为
/usr/bin/git
安装maven
// 上传压缩包,解压
tar -axvf /opt/software/apache-maven-3.6.3-bin.tar.gz -C /opt/module
// 修改settings.xml配置文件使用阿里云镜像进行下载/opt/module/apache-maven-3.6.3/conf/settings.xml文件在下
// 配置环境变量
#MAVEN_HOME
export MAVEN_HOME=/opt/module/apache-maven-3.6.3
export PATH=$PATH:$MAVEN_HOME/bin
source /etc/peofile
// 测试
mvn -v
我的所有安装地址(后面有用)
java /opt/module/jdk1.8.0_271
maven /opt/module/apache-maven-3.6.3
git /usr/bin/git
2,运行jenkins
// 上传war包,并且运行,需要进入war包所在目录
nohup java -jar jenkins.war >jenkins.log 2>&1 &
次指令会运行jenkins,运行之后会使当前窗口无法操作请不要ctr+c不然后结束进程,正确做法关闭当前shell窗口在开一个.可查看jenkins.log文件查看启动状态.记得打开8080,50000端口
3,使用jenkins
1,直接访问ip+8080端口会进入到jenkins运行出页面,
2,第一次会需要从/root/.jenkins/secrets/initialAdminPassword中查看密码,直接复制密码粘贴即可
3,插件直接使用社区推荐等他安装完毕即可
4,配置maven和jdk,依次点击 Manager Jenkins ->Global Tool Configuration 详细配置如下
以上地址皆为自己服务器或者虚拟机上的软件安装目录,如果没有会进行提示
5,安装maven插件,依次点击 Manager Jenkins -> Manager Plugin,搜索此插件进行安装
4,创建一条item
1,点击新建item
2,配置gitlab
添加一个可以访问到此仓库的账号
选择需要部署的分支
3,安装publish over ssh插件
具体步骤请参考安装maven插件
4,配置本机ssh server
依次点击 Manager Jenkins -> Configure System 拉到最下面修改如图
5,配置构建前处理事件(杀死上一次构建运行的项目进程,防止端口占用)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1NIOpeDo-1660209084051)(…/AppData/Roaming/Typora/typora-user-images/image-20220811161100512.png)]
选择刚才配置的ssh server用户
preclear.sh.可自定义
#!/bin/bash
#删除历史数据
rm -rf xxoo
appname=$1
#获取传入的参数
echo "arg:$1"
#获取正在运行的jar包pid
pid=`ps -ef | grep $1 | grep 'java -jar' | awk '{printf $2}'`
echo $pid
#如果pid为空,提示一下,否则,执行kill命令
if [ -z $pid ];
#使用-z 做空值判断
then
echo "$appname not started"
else
kill -9 $pid
echo "$appname stoping...."
check=`ps -ef | grep -w $pid | grep java`
if [ -z $check ];
then
echo "$appname pid:$pid is stop"
else
echo "$appname stop failed"
fi
fi
6,选择pom.xm文件地址(根据pom.xml文件在仓库中的地址来写)
7,配置构建后处理事件(jenkins收到变动打包+运行jar)
5,gitlab提交代码,自动部署
1,下载插件
2,配置项目出发器
因为安装了插件所以当访问网址的时候就会出发重新构建
地址为: ip+8080(自定义端口请自行改变)/buildByToken/build?job=java-test(item名,当前流水线名称)&token=test(前面设置的)
我的地址 http://192.168.20.102:8080/buildByToken/build?job=java-test&token=test
3,gitlab配置
4,绑定gitlab wehooks
感谢你的观看,配置完成之后你就可以乱杀了