安装部署参考文档:
https://www.cnblogs.com/adnny/p/13570513.html
https://www.cnblogs.com/xiao987334176/p/11323795.html
https://blog.csdn.net/zhangjunli/article/details/108436980
1、新建任务
2、填写项目名,以java maven项目为例,项目名务必与项目中的包名保持一致
3、任务配置
(1)项目描述一般与gitlab上保持一致
(2)gitlab配置
第一次使用Jenkins需要点添加,添加自己的gitlab账号和密码
指定部署的代码分支
(3)构建触发器
使用第四项
此时复制GitLab webhook URL:
http://192.168.240.25:8088/project/webrtc
到gitlab对应项目下进行GitLab webhook配置
输入URL和Secret Token即可,然后点击add webhook
个人Secret Token生成方法
https://www.cnblogs.com/gongxr/p/9257434.html
(4)构建环境
(5)Post Steps
输入shell脚本执行命令
【本地部署】
sudo ssh root@192.168.240.25 "/usr/share/jenkins/jenkins.sh 9000 webrtc"
jenkins.sh 脚本如下
#!/bin/bash
source /etc/profile
project=$1
echo "项目名称为: " $project
port=$2
echo "端口号${port}"
package=$project-0.0.1-SNAPSHOT.jar
#先获取到运行项目的进程编号
#pid=`ps -ef |grep ${project} |grep -v grep |awk '{print \$2}'`
pid=`netstat -nlp | grep $port |awk '{print $7}' | cut -d"/" -f1`
echo "pid" $pid
if [ ! "${pid}" ];then
echo "没有找到'$project'的进程,无需 kill"
else
echo "kill -9 ${pid}"
kill -9 $pid
echo "找到'$project'的进程${pid},关闭该进程"
fi
cd /var/lib/jenkins/workspace/$project/target/
nohup java -jar $package >> nohup.out 2>&1 &
#newpid=`netstat -nlp | grep $port |awk '{print $7}' | cut -d"/" -f1`
newpid=`ps -ef |grep ${project} |grep -v grep |awk '{print \$2}'`
echo "'$project'启动完毕
根据项目名称、端口号进行修改
【远程部署】
sudo ssh root@192.168.240.25 "/usr/share/jenkins/
jenkins_remote.sh webrtc 9000"
jenkins_remote.sh 脚本如下:(需根据实际情况对 server、project、port 进行修改)
#!/bin/bash
source /etc/profile
server=root@192.168.240.131
echo "远程服务器地址: " $server
project=$1
echo "项目名称为: " $project
port=$2
echo "端口号${port}"
cd /var/lib/jenkins/workspace/$project/target/
package=$project-0.0.1-SNAPSHOT.jar
scp $package $server:/root/project/
ssh ${server} '
#先获取到运行项目的进程编号
pid=$(ps -ef|grep '$project'|grep -v grep|awk "{print \$2}")
if [ ! "${pid}" ];then
echo "没有找到'$project'的进程,无需 kill"
else
echo "kill -9 ${pid}"
kill -9 ${pid}
echo "找到'$project'的进程${pid},关闭该进程"
fi
cd /root/project/
if [ ! -d '$project' ];then
mkdir '$project'
else
echo "文件夹已经存在"
fi
mv -f '$package' '${project}'/
cd '$project'/
chmod 777 '$package'
echo `pwd`
nohup java -jar '$package' >> nohup.out &
newpid=$(ps -ef|grep '$project'|grep -v grep|awk "{print \$2}")
echo "'$project'启动完毕, 进程号${newpid}"
#退出远程连接
exit
'
(6)最后点应用或保存进行保存退出
(7)进行测试,若返回Hook executed successfully:HTTP 200,则表示gitlab代码提交后会自动触发Jenkins相应任务执行。
(8)到Jenkins上查询任务具体执行情况。
点进去可以看具体日志,若没有相应报错信息则表示部署成功,进一步查看swagger-ui是否正常访问。