GitLab CI/CD自动化部署实践

先说说环境准备。我们项目是标准的SpringBoot后端,服务器用的CentOS 7。要在GitLab里跑CI/CD,得先准备好GitLab Runner。这里有个坑,Runner最好单独准备一台服务器,别跟应用服务器混用。我选了shell执行器,虽然安全性不如Docker,但部署起来简单,适合初学者。

接下来是重头戏------编写.gitlab-ci.yml配置文件。这个文件决定了整个流水线怎么跑,我把它放在项目根目录下。先定义三个阶段:

编译阶段用的是Maven,这里要注意缓存配置,不然每次都要重新下载依赖,慢得要死:

最关键的是部署阶段。我们公司服务器需要通过跳板机连接,所以得先用ssh-agent配置密钥转发:

这里有几个实用技巧:StrictHostKeyChecking=no是为了避免第一次连接时的确认提示;密钥文件要提前存到GitLab的CI/CD变量里,变量名设为SSH_PRIVATE_KEY;重启脚本要提前放在服务器上,内容大致是备份旧jar包、kill旧进程、启动新进程。

部署过程中踩过不少坑。有一次Runner一直连不上服务器,排查半天发现是防火墙没开22端口。还有次脚本执行到一半卡住了,原来是因为后台进程没正确关闭,导致端口占用。后来在重启脚本里加了端口检测逻辑:

现在我们的流程已经稳定运行一个月了,每次推送代码都能自动完成编译部署。虽然前期配置花了些时间,但长期来看效率提升非常明显。特别是紧急修复时,改完代码直接push,五分钟后就能上线,再也不用半夜爬起来部署了。

接下来打算继续优化,比如加入自动化测试阶段,在部署前先跑单元测试;还要设置不同环境,开发分支自动部署到测试环境,主干分支才上生产环境。CI/CD这东西,用好了真能解放生产力,建议大家都试试。

相关推荐
Bigger1 天前
从零搭建 AI 代码审查服务:一份前端也能看懂的 Python 学习笔记
前端·ci/cd·ai编程
宋均浩6 天前
# Docker 镜像瘦身实战:从 1.2G 到 80MB 的五个优化步骤
ci/cd·docker
宋均浩11 天前
# GitHub Actions 实战:从零搭建 CI/CD 流水线的 5 个核心配置
ci/cd
shushangyun_13 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉13 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
dayuOK630713 天前
写作卡壳怎么办?我的“5分钟启动法”
人工智能·职场和发展·自动化·新媒体运营·媒体
志栋智能13 天前
超自动化巡检:如何选择适合你的起点?
运维·自动化
HackTwoHub13 天前
Sqli-Scanner SQL注入SKILL自动化挖掘SQL注入,零依赖自动化SQL注入挖掘,赏金猎人
数据库·人工智能·sql·web安全·网络安全·自动化·系统安全
csdndeyeye13 天前
拆解AI投简历插件:塔塔网申的技术逻辑和实测数据
人工智能·自动化·秋招·ai投简历插件·ai找工作·求职助手·应届生就业
小白学大数据13 天前
Python + 大模型行业资讯自动化摘要流水线完整工程实现方案
开发语言·python·自动化