MySQL, Oracle, Linux, 软件架构及大数据技术知识分享平台

网站首页 > 精选文章 / 正文

从零实现DevOps(四):Jenkins+GitLab自动化部署SpringBoot项目

2025-02-21 13:33 huorong 精选文章 1 ℃ 0 评论

#头条创作挑战赛#

前置文章:

创建虚拟机:VMware创建Centos7虚拟机并设置静态IP(桥接模式)

Centos7优化:Centos7-测试环境服务器优化流程

第一篇文章实现方式:Jenkins本地环境+Jar包模式

从前三篇文章中,我们已经实现了gitlab、jenkins项目的安装与基础配置,并且给Centos7操作系统搭配了jdk、maven等环境变量。从这边文章起,“从零实现DevOps”系列,将正式开始利用Jenkins+Gitlab的完美结合,一步步实现全栈项目的持续集成和持续部署(CI/CD),以后也会引入Docker+Dockerfile+docker-compose的方式去实现快速部署。那么,第一篇文章先以传统的SpringBoot项目开刀,在Jenkins本地环境中用jar包的方式简单实现一下,开始吧!!!

一、Jenkins插件和全局环境配置

1、Jenkins设置中文(部分版本不生效,跳过此步骤也可以)

  1. 点击Jenkins首页中的Manage Jenkins,进入系统设置
  2. 点击Plugins,进入插件中心
  1. 选择Available Plugins,搜索Locale,勾选后,点击Install without restart(安装无需重启)
  1. 等待安装完毕后返回首页
  1. 再次点击Manage Jenkins,点击System,进入系统配置
  2. 往下拉,找到Locale,输入框中输入“zh_CN”,勾选下边的按钮(忽略浏览器首选项并向所有用户强制使用此语言),点击保存返回首页
  1. 地址栏后边加上“/restart”后刷新网址,重启Jenkins
  1. 等待重启后成功

2、Jenkins安装Maven、GitLab等插件

  1. 与安装中文插件同理,依次搜索安装MavenGitLab插件
  1. 为了万无一失,全部安装后,再次重启一下Jenkins

3、配置GitLab系统凭据

可能是因为版本问题,我点击系统级的Credentials时,并没有添加凭据的地方,所以,我选择在添加Gitlab地址的地方添加令牌!!!

  1. 点击Manage Jenkins,点击System,进入系统配置
  2. 往下拉,找到GitLab,其他不需要填写,点击添加,再点击弹出的Jenkins图标 ,进行配置凭据
  1. 配置Credentials(ID和描述可填可不填,知道即可),点击添加即可,返回首页(弹框点击

Username with password:最简单的凭证类型,字面理解即可掌握精髓,就是保存用 户名和密码。

  1. 返回首页,在系统的Credentials中,查看配置的凭据
  1. 红框的就是你刚才添加的凭据,还可以点进去进行修改账号密码操作

点击Change Password可以修改密码

4、配置Maven环境变量

  1. 点击Manage Jenkins,再点击Tools(有些版本的jenkins也叫Global Config),进入全局工具环境配置
  2. 往下拉找到Maven,点击新增Maven
  3. 取消勾选Install automatically,用我们自己的Maven版本
  1. 新增Maven内容,Name随便取,MAVEN_HOME用的是自己配置的maven路径

可以在服务器上用(mvn -v)命令查看!!!

  1. 点击保存返回首页!!!

二、创建并配置Jenkin流水线(重点来了)

1、创建Job

  1. 点击左侧新建ItemCreate a job,创建一个流水线
  1. 输入任务名称,选择第一个“Freestype project”,点击确定即可

2、源码管理(配置Gitlab地址和分支)

  1. 进入Gitlab,找到自己的项目,复制你的项目git地址
  1. 配置页面,往下拉,找到源码管理,将git地址复制进Repository URL,并选择Credentials(在一、3中配置的,也可以在这里添加并选择)
  1. 文中提示报错“Failed to connect to repository : Error performing git command: git ls-remote -h http://192.168.1.11/root/test_project.git HEAD”,是因为服务器未安装git导致,用yum安装一下
yum install git
  1. 安装成功后,再次把git地址粘贴进Repository URL,就不会出现刚才的错误了
  1. 继续往下拉,在“指定分支”处,配置你想要自动部署的分支
  1. 觉得手欠的可以先应用一下,再继续进行,防止误关闭页面!!!

3、构建触发器(配置GitLab的Webhooks与Jenkins挂钩)

  1. 继续往下拉页面,找到“构建触发器”,勾选“Build when a change is pushed to GitLab

触发策略由自己决定

  • Push Events:提交Push代码触发
  • Opened Merge Request Events:合并分支触发
  1. 配置GitLab的Webhooks,搭建钩子,触发部署事件(重中之重
  2. 打开Gitlab需要部署的项目,左侧点击设置,然后点击Webhooks
  1. Webhooks中:URL是“Build when a change is pushed to GitLab”后边的那个地址,粘贴进去
  1. 回到jenkins,往下拉,点击高级,找到“Secret token”,点击“Generate”,生成令牌,并把这个令牌粘贴进Gitlab-Webhooks的“Secret 令牌”中
  1. 在Webhoos配置中,勾选推送事件合并请求事件,并点击“添加webhooks

推送事件中,你可以配置所有分支或者指定的分支,一般来说,部署哪个分支选择哪个即可。所以,我选择的“通配符样式”,并指定的“dev”分支(dev

  1. 点击保存时,Gitlab有可能会报错“Url is blocked: Requests to the local network are not allowed”,这是因为你没有开启Webhooks的出站请求!

解决方法:

(1)进入管理员设置

(2)点击设置,进入网络设置

(3)找到出站请求,点击展开,勾选“允许来自webhooks和集成对本地网络的请求”,保存更改即可

(4)重新配置webhook,即可成功。成功效果如图:

  1. 再次提醒,Jenkins最好点击一次应用,防止丢失!!!

小贴士

其实,在此步骤完成后,你可以将jenkins保存一下,回到首页。并且在刚才配置的Gitlab-webhooks中,点击测试的推送事件,尝试一下,项目能不能成功打包!!!

回到Jenkins,可以发现已经成功构建一次

然后去你服务器的“/root/.jenkins/workspace”中,去看看有没有项目代码,target文件夹中有没有jar包~~~

可以发现,我的Gitlab项目已经上传成功,并且打包成功!!!

如果你有兴趣,也可以看看构建的控制台输出,里边也有打包的输入内容,神奇吧~~~

4、构建环境(Build)

勾选“Add timestamps to the Console Output”,方便打印控制台日志!!!

5、Build Steps(Maven打包项目)

  1. 点击增加构建步骤,选择“Invoke top-level Maven targets
  2. Maven版本选择在(一、4)中配置的maven版本,“目标”是我们打包命令
clean package -Dmaven.test.skip=true -U

6、增加构建步骤(杀死已有进程+启动jar包)

  1. 编写jar包启动脚本
cd /data/java

touch start.sh

vim start.sh

脚本内容如下,需要根据个人情况改三个地方

第4行:Java环境变量配置位置(一般是:source /etc/profile 或 source ~/.bash_profile

第6行:jar包位置

第8行:jar包名称

#!/bin/bash
#cp /dev/null /nohup.out
# 重新加载环境变量
source ~/.bash_profile
# 跳转到Jar地址
cd /data/java
# 设置Jar包名称变量
APP_NAME=jimapaotui-2.0.jar
# 杀死原有进程号
ID=`ps -ef | grep $APP_NAME | awk '{print $2}'`
echo "------start---------"
for id in $ID
do
        kill -9 $id
        echo "killed $id"
done
# 防止杀死进程
BUILD_ID=dontKillMe
# 启动Jar包
nohup java -jar $APP_NAME > nohup.out 2>&1 &
echo "------end---------"

为start.sh增加执行权限

sudo chmod +x start.sh
  1. 点击“增加构建步骤”。选择”Execute shell”,并添加如下的命令
#!/bin/bash
# 复制jar包到脚本中指定的位置
cp ./target/jimapaotui-2.0.jar /data/java
# 执行启动脚本
sh /data/java/start.sh

如图:

至此,流水线配置已全部完毕,接下来,进行测试流程!!!

四、测试功能

从刚才指定的dev分支提交一次代码

Jenkin已经开始构建了

构建成功

去服务器上看看jar包是否上传,是否执行成功

# 切换到jar包目录
cd /data/java

# 查看jar包运行进程
ps -ef | grep ***.jar

五、总结

至此,Jenkins结合GitLab实现本地代码自动化部署的功能已经实现,下一期我们会实现远程服务器部署Jar包项目的实例!!!

Tags:gitlab怎么设置中文

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言