Jenkins持续集成-快速上手
- 注:Jenkins一般不单独使用,而是需要依赖代码仓库,构建工具等。
搭配组合:Git+Gitee(GitHub、GitLab)+Maven+Jenkins
前置准备
常见安装方式:
- war包
- Docker容器实例(推荐,方便快捷)
一、Docker安装Jenkins教程
由于Jenkins需要依赖Git、Maven环境,因此需要现在服务器上安装好这两、然后将其挂载到容器内部即可。
(因为容器内部是没有Git、Maven,我们通过外部挂载形式,使其有这些依赖环境。)
git安装
yum install -y git
maven安装
官网下载linux版的maven,配置镜像、上传linux服务器解压即可。
宝塔先安装Docker,安装完成后、直接运行如下命令(如果镜像不存在、会自动拉取然后运行起来):
#Jenkins默认端口:8080 ,剩下的都是冗余端口====可自定义。
docker run -d -p 8080:8080
-p 8090:8090
-p 9090:9090
-p 50000:50000
-v /usr/local/apache-maven-3.8.6:/usr/local/maven
-v /usr/bin/git:/usr/local/git
-v /etc/localtime:/etc/localtime
--name Jenkins
jenkins/jenkins
进入容器实例内部:docker exec -it Jenkins /bin/bash
二、进入Jenkins安装插件
#maven集成插件
Maven Integration plugin
#实现远程触发器授权(非登录状态触发)
Build Authorization Token Root Plugin
#发布生产服务器插件
Publish Over SSH
三、清理脚本
前置脚本
#!/bin/bash
appname=$1
rm -rf "${appname}*.jar"
#获取传入的参数
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
后置脚本(部署脚本)
#!/bin/bash
appname=$1
deploy_port=$2
echo "部署项目:${appname}*.jar ,端口:${deploy_port}"
nohup java -jar -Dserver.port=${deploy_port} /root/${appname}*.jar >test.log 2>&1 &
四、运行脚本
nohup java -jar -Dserver.port=9876 /root/test-jenkins-0.0.1-SNAPSHOT.jar >test.log 2>&1 &
五、pipline流水线(核心)
略。