Jenkins
Jenkins是开源CI&CD软件领导者,是Devops神器,本文介绍Jenkins的安装,自动构建,部署SpringBoot项目
Jenkins安装及配置
1.安装
1.1Jenkins官网下载所需版本的war包即可https://jenkins.io/zh/download/(推荐下载LTS即长期支持版本问题会比较少)

1.2我使用的Linux系统,所以把下载好的war包上传到服务器上去,编写一个启动脚本启动Jenkins即可,Jenkins是war包形式可以直接使用java -jar命令执行,使用脚本是为了后续启动停止Jenkins方便操作
- 使用wgett命令下载war包:wget mirrors.jenkins.io/war/2.190.3…
- 启动脚本如下
#!/bin/bash
pid=`ps -ef | grep jenkins.war | grep -v 'grep'| awk '{print $2}'| wc -l`
if [ "$1" = "start" ];then
if [ $pid -gt 0 ];then
echo 'jenkins is running...'
else
java -jar jenkins.war --httpPort=8888 >/dev/null 2>&1 &
fi
elif [ "$1" = "stop" ];then
exec ps -ef | grep jenkins | grep -v grep | awk '{print $2}'| xargs kill -9
echo 'jenkins is stop..'
else
echo "Please input like this:"./jenkins.sh start" or "./jenkins stop""
fi
- 启动和停止命令(Jenkins安装目录下执行)
./jenkins.sh stop
./jenkins.sh start
2.配置
2.1启动Jenkins后会提示需要密码,根据页面提示使用cat命令到指定路径下获取密码即可

- 安装插件:通过下载HPI文件安装插件(此方法是针对插件下载慢的方式,插件下载慢可以参考该博客https://www.cnblogs.com/hellxz/p/jenkins_install_plugins_faster.html,设置后即可在Jenkins插件管理下载安装,无需下载HPI文件)
(1)下载所需要安装合适版本插件的HPI,网址:updates.jenkins-ci.org/download/pl…


- Git plugin:支持Git的插件
- Maven Integration plugin:构建Maven项目所需要的插件,安装后在创建新项目时可以选择构建Maven项目
- publish over SSH:SSH连接服务器,让项目可以发布在其他服务器上
2.3Jenkins全局配置:系统管理 -> 全局工具配置(需要安装Maven、JDK、Git,未安装需要在服务器上安装)
-
Maven全局配置:可以修改settings.xml将远程仓库成阿里云速度会快点,如果自己公司有中央仓库也可以做修改,此处时指定

-
JDK

- Git:Name随意写、Path就是服务器安装的路径

-
Maven

-
配置SSH Server:系统管理 -> 系统配置 -> Publish over SSH




- 勾选丢弃旧的构建,选择是否备份被替换的旧包。我这里选择备份最近的10个

- 源码管理:选择Git填写仓库地址,并添加访问账号和密码或者秘钥

- 添加访问凭据:点击添加,添加访问认证(我是用的UserName+Password模式也可以选择其他方式)

- 构建环境:构建环境中勾选“Add timestamps to the Console Output”,代码构建的过程中会将日志打印出来
,并填写Maven打包命令

-
Post Steps:选择Run only if build succeeds,打包成功后执行

- 点击Add post-build step,选择 Send files or execute commands over SSH:构建成功后的操作,通过SSH传输文件,并执行相应脚本或者命令

- SSH Publishers配置

Source files:选择源文件所在地址,就是项目打包后的jar包地址(根据实际情况而定) XX/target/xxx.jar 项目jar包名
Remove prefix:XX/target/,去除掉Source files后的xxx.jar即可
Remote directory:/apps/proj-packages/vevor-amazon-cloud/amazon-admin/ Jar包在应用服务器上的存放地址(自行创建即可)
Exec command:/apps/proj-packages/vevor-amazon-cloud/amazon-admin/startup.sh 应用服务器对应的执行脚本(也可以写Linux命令)
- 启动脚本:下面脚本的意思是先杀死已有项目进程,备份旧Jar,获取新Jar包并启动(网上很多,可以自行搜索)
DATE=$(date +%Y%m%d)
export JAVA_HOME PATH CLASSPATH
JAVA_HOME=/usr/local/java/jdk1.8.0_171
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
DIR=/apps/proj-packages/vevor-amazon-cloud/amazon-admin
JARFILE=amazon-admin.jar
if [ ! -d $DIR/backup ];then
mkdir -p $DIR/backup
fi
cd $DIR
ps -ef | grep $JARFILE | grep -v grep | awk '{print $2}' | xargs kill -9
mv $JARFILE backup/$JARFILE$DATE
mv -f /root/.jenkins/workspace/Cloud-Amazon-Admin/amazon-admin/target/$JARFILE .
java -jar $JARFILE --spring.profiles.active=prod > out.log &
if [ $? = 0 ];then
sleep 30
tail -n 50 out.log
fi
cd backup/
ls -lt|awk 'NR>5{print $NF}'|xargs rm -rf
- 点击立即构建或者Build Now:项目构建部署

