一、背景

个人的日常开发测试中,我们一般除了会提交代码到git,同时还有部署项目到服务器的需求,为了提高我们的开发效率,实现自动部署很有必要,这样我们就不再需要关心项目部署的问题了,只要专心开发就好。

本次实验由于直接使用云服务器来进行自动部署,考虑到服务器的配置有限,故没有尝试采用docker容器化部署和k8s容器集群管理技术,仅仅是基于Centos7系统,通过Jenkins+码云+SpringBoot实现了乞丐版的单机自动部署,最后实现提交代码则自动完成服务器项目部署的效果。接下来记录下详细的部署过程。

二、环境搭建

1、服务器

本次实验采用的是Centos7系统的云服务器,配置很低1核2G,只能简单搞搞。如果没有云服务器,可以本地虚拟机搭建,配置可配。

2、Jenkins安装

(1)安装JDK

Jenkins需要依赖JDK,所以需要先安装JDK1.8,安装目录为/usr/lib/jvm:

yum install java-1.8.0-openjdk* -y
(2)获取Jenkins安装包

安装包下载地址:

https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/

本次实验使用的Jenkins安装包版本为jenkins-2.319.2-1.1.noarch.rpm,

(3)把安装包上传到服务器并进行安装
rpm -ivh jenkins-2.190.3-1.1.noarch.rpm
(4)修改Jenkins配置
vi /etc/syscofig/jenkins

修改内容如下:

JENKINS_USER="root"
JENKINS_PORT="8888"
(5)启动Jenkins
systemctl start jenkins
(6)打开浏览器访问
http://192.168.66.101:8888

注意:本服务器把防火墙关闭了,如果开启防火墙,需要在防火墙添加端口。

(7)获取并输入admin账户密码
cat /var/lib/jenkins/secrets/initialAdminPassword
(8)跳过插件安装

因为Jenkins插件需要连接默认官网下载,速度非常慢,而且经过会失败,所以我们暂时先跳过插件安装。

(9)添加一个管理员账户,并进入Jenkins后台

账号密码自定义,方便自己登陆使用即可。

注意:过程中可能会出现很多的403,或者请求无响应的问题,重试几次就可以了。

2、Jenkins插件安装

(1)配置国内插件地址

先把Jenkins官方的插件列表下载到本地,接着修改地址文件:

Jenkins->Manage Jenkins->Manage Plugins,点击Available

替换为国内插件地址:

cd /var/lib/jenkins/updates
sed -i 's/http:\/\/updates.jenkinsci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json

最后,Manage Plugins点击Advanced,把Update Site改为国内插件下载地址:

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
(2)需要安装的插件列表(模糊匹配搜索)
  • 汉化插件:Localization: Chinese
  • 用户权限管理插件:Role-based Authorization Strategy
  • 凭证管理插件:Credentials Binding
  • 版本管理插件:Git
  • Maven插件:Maven Integration
  • 流水线插件:Pipeline
  • 码云钩子:Generic Webhook Trigger

注意:安装过程中如果遇到安装失败,同理多试几遍就好了。

3、Maven安装

三、代码概要

准备spirngboot项目代码(略)。

四、配置相关

码云配置参考: https://blog.csdn.net/xlgen157387/article/details/72852428

配置指定分支提交才推送部署参考: https://blog.csdn.net/ziwuzhulin/article/details/79843799