SpringBoot + Jenkins + Git自动化部署
1、Jenkins安装
到Jenkins的官网:http://jenkins.io下载jenkins.war文件
然后将jenkins.war文件上传到Linux服务器,执行jar -jar jenkins.war命令启动Jenkins
在浏览器中输入http://服务器IP:8080访问Jenkins
在页面上如何授权码进入Jenkins,授权码可以在启动Jenkins的命令行中看到,只有第一次进入时需要输入授权码
点击Install suggested plugins,安装Jenkins建议安装的插件,如果部分插件没有安装成功,可以重复多次,直到所有的插件都安装成功
创建用户
再安装几个比较好用的Jenkins插件:Rebuilder、Safe Restart、Publish Over SSH、Maven Integration
依次点击:系统管理 -> 插件管理 -> 可选插件,输入插件名搜索插件
点击直接安装
给刚创建的用户分配权限
依次点击:系统管理 -> 全局安全配置 -> 安全矩阵 -> User or group name
点击User or group name,添加自己的账号(我的是admin账号),给账号分配权限,我是给该账号所有的权限,如果是普通的账号,可以去掉Administrator(第一个,系统管理的权限)
2、Linux服务器设置
①开启ssh远程连接
查看ssh远程连接状态命令:netstat -anp | grep :22
开启ssh远程连接:service sshd start
②关闭防火墙
关闭防火墙命令:service iptables stop
查看防火墙状态:service iptables status
③安装Java jdk
安装Java jdk命令:yun install java
查看是否安装成功:java -version
④安装并配置Git
-
安装Git命令:yum install git
-
查看git是否安装成功:git version
-
将git初始化并生成授权证书
- 设置用户名和邮箱,用户名和邮箱不需要是真实的个人信息
- 生成授权证书,中间直接全部回车就行
- 查看证书是否生成成功
id_rsa是私钥,id_rsa.pub是公钥 - 将git证书配置到GitHub上,保证Linux服务器和GitHub之间可以联通
在GitHub中依次点击:setting -> SSH and GPG keys -> new SSH key,将公钥中的内容复制到SSH key中
- 验证git的配置是否正确
- 设置用户名和邮箱,用户名和邮箱不需要是真实的个人信息
-
安装并配置maven
到maven官网http://maven.apache.org获取apache-maven-3.6.0-bin.zip的下载链接
在Linux服务器下载maven
解压apache-maven-3.6.0-bin.zip
在/etc/profile中配置maven,将maven的安装路径加入到PATH中
重新加载/etc/profile文件,并查看maven是否安装成功
3、将Linux注册到Jenkins上
①新建节点
在Jenkins中依次点击:系统管理 -> 节点管理 -> 新建节点
点击确定按钮,然后配置Jenkins在Linux中的路径、LInux服务器的IP地址、Linux服务器的账号和密码
②启动从节点验证Linux服务器已经成功注册到Jenkins上
点击我们刚添加的节点,然后点击启动代理按钮,连接Linux服务器
如果连接服务器时出现如下错误信息
就将Host Key Verrification Strategy配置成Non Verfifying Verrification Strategy
4、新建Job验证Jenkins任务可以远程运行在Linux服务器上
在Jenkins主页点击【开始创建一个新任务】按钮,然后输入任务名,选择构建一个maven项目,注意:只有安装了Maven Integration插件才有这个选项
点击【确定】按钮
点击【保存】按钮
shell脚本的内容,根据项目的实际需求编写
#!/bin/sh
echo "开始执行shell脚本"
# 在jenkins环境中一定要加这句话,否则这个脚本进程最后会被杀死
export BUILD_ID=dontKillMe
# 指定最后编译好的jar的存放位置
JAR_PATH=/opt/workspace/project-management
# 如果路径不存在,就创建路径
[ ! -e $JAR_PATH ] && mkdir -p $JAR_PATH
# 指定jenkins中存放编译好的jar的位置
JENKINS_JAR_PATH=/root/.jenkins/workspace/project-management/target
# 指定jenkins中存放编译好的jar的名称(这个jar的名字和pom文件配置有关)
JENKINS_JAR_NAME=project-management-0.0.1-SNAPSHOT.jar
# 获取该项目的进程号,用于重新部署项目前杀死进程
PORJECT_MANAGEMENT_PID=`ps -ef | grep project-management`
# 如果该项目正在运行,就杀死项目进程
if [ -n "$PORJECT_MANAGEMENT_PID"]
then
echo "停止服务"
kill -9 $PORJECT_MANAGEMENT_PID
else
echo "服务未启动"
fi
# 进入Jenkins中编译好的jar的位置
cd ${JENKINS_JAR_PATH}
# 将Jenkins中编译好的jar复制到最终存放项目jar的位置
cp $JENKINS_JAR_PATH/$JENKINS_JAR_NAME $JAR_PATH
# 进入到存放项目jar的位置
cd ${JAR_PATH}
# 后台启动项目,并且将控制台日志输出到project-management.log中
nohub java -jar ${JENKINS_JAR_NAME} > project-management.log &
echo "shell脚本执行完毕"
然后点击【立即构建】按钮,构建项目,点击下面的#1就可以看到到项目的详情
可以在 控制台输出中查看到控制台中打印出的内容,可以看到刚才在shell中输入的命令被执行了
至此,我们的spring boot项目就自动部署成功了。
参考:
https://blog.csdn.net/javahongxi/article/details/79501188
https://blog.csdn.net/w105021/article/details/78657382