gitlab_cicd使用

1223 字
6 分钟
gitlab_cicd使用

一、gitlab_cicd使用#

1.1 环境准备#

  • gitlab平台
  • gitlab-runner服务端
  • 流水线部署服务器(也可以为gitlab-runner服务器

1.2 gitlab-runner安装#

如果需要使用Gitlab来进行自动化部署,则你需要安装最少一个Gitlab Runner

1.2.1 下载安装#

使用国内镜像源进行下载

Terminal window
# 清华大学镜像站点,选择对应的服务器架构进行安装
https://mirrors.tuna.tsinghua.edu.cn/gitlab-runner/
# 安装依赖,Gitlab Runner的依赖只有一个那就是git
apt install git
# 下载完成后进行安装
dpkg -i gitlab-runner_15.10.0_amd64.deb

安装完成后如下图所示

image-20260423172753004
image-20260423172753004

1.2.2 修改gitlab runner 运行用户#

为了避免gitlab-runner使用命令或其他目录的权限问题,需要将运行gitlab-runner的用户设置为root

Terminal window
# 查看当前gitlab-runner的执行用户
ps aux | grep gitlab-runner
# 卸载掉gitlab-runner的默认用户
gitlab-runner uninstall
# 将gitlab-runner的用户设置为root
gitlab-runner install --working-directory /home/gitlab-runner --user root
# 重启gitlab-runner
systemctl restart gitlab-runner

image-20260423173340232
image-20260423173340232

1.3 注册gitlab runner#

gitlab cicd的注册方式分为项目runner共享runner

  • 项目runner:给具体项目使用的runner
  • 共享runner:在群组中进行设置,给群组中的项目使用

1.3.1 注册项目gitlab runner#

1.3.1.1 获取地址和令牌#

进入项目,然后选择项目设置中的cicd

image-20260424101347683
image-20260424101347683

找到项目runner的注册地址和注册令牌

image-20260424101742736
image-20260424101742736

1.3.1.2 runner服务器注册#

在runner服务器执行注册命令,然后按照提示填写对应的内容

Terminal window
gitlab-runner register

填写好注册地址、注册token、runner描述、runner标签、runner执行器

image-20260424111936337
image-20260424111936337

注册成功后的信息保存在/etc/gitlab-runner/config.toml

Terminal window
# 查看已注册的runner
gitlab-runner list
# 指定配置文件注册
gitlab-runner register --config /custom/path/config.toml

注册完成后回到gitlab页面可以看到已经绑定成功

image-20260424112331055
image-20260424112331055

可对注册的runner进行编辑、暂停、移除等操作

编辑时也可以将项目runner接触锁定,给到其他项目

image-20260424114450218
image-20260424114450218

1.3.2 注册群组共享gitlab runner#

前提条件:用户要是该群组的所有者才能进行注册操作

进入群组,然后选择cicd

image-20260424112751707
image-20260424112751707

这里可以看到之前添加的项目runner,以为该项目在该群组下

现在注册一个群组runner,还是使用同一台runner服务器

步骤与之前一样,获取到注册令牌后即可

image-20260424112829654
image-20260424112829654

image-20260424113501135
image-20260424113501135

创建成功后回到gitlab平台,可以看到已经创建成功了一个群组平台

**注意:**群组中的项目使用群组runner时,需要在编辑流水线文件时,携带上群组runner标签

如果流水线文件不带标签,那么也可以编辑runner,勾选运行未标记的作业即可

image-20260424114841193
image-20260424114841193

image-20260424113606039
image-20260424113606039

1.4 编写流水线文件#

编辑.gitlab-ci.yml 文件用来调用已注册的 Runner

假设注册 Runner 时设置的标签是 group-runner,对应的配置文件模板应如下所示:

# .gitlab-ci.yml 文件示例
stages:
- build
- test
# 定义一个构建任务
build_job:
stage: build
tags:
- group-runner # 指定使用带有 'group-runner' 标签的 Runner
script:
- echo "正在使用群组共享的 Runner 进行构建..."
# 这里放置你的构建命令,例如 mvn clean package
# 定义一个测试任务
test_job:
stage: test
tags:
- group-runner # 同样指定使用该 Runner
script:
- echo "正在使用群组共享的 Runner 进行测试..."
# 这里放置你的测试命令,例如 npm test

1.4.1 具体示例#

环境:项目中存在一个网页文件index.html

实现效果:当仓库发生提交修改时,触发流水线,使用docker拉取nginx镜像并将index.html部署到nginx中

1.4.1.1 编辑流水线#

进入项目,然后选择cicd中的编辑器

image-20260424134536785
image-20260424134536785

.gitlab-ci.yml文件:

# 流水线阶段
stages:
- deploy
# 自动部署静态网页到 Docker
deploy_static_web:
stage: deploy
# --------------------------
# 关键:匹配你的共享Runner标签
# --------------------------
tags:
- xiaodouban_tags
script:
# 显示当前目录(排查用)
- pwd
- ls
# 停止旧容器(不报错)
- docker stop my-web-server || true
- docker rm my-web-server || true
# 启动新容器,挂载当前仓库的 index.html
# 直接用宿主机 docker 运行
- docker run -d --name my-web-server --net=host -v $PWD/index.html:/usr/share/nginx/html/index.html --restart always nginx:alpine
- echo "=================================================="
- echo "✅ 自动部署成功!"
- echo "🌍 访问地址:http://10.22.51.91"
- echo "=================================================="
# 只在 main 分支自动触发
only:
- main

然后提交更改,会自动触发流水线一次

1.4.1.2 查看流水线#

image-20260424140326755
image-20260424140326755

因为文件只有一个阶段deploydeploy_static_web,因此流水线只有一个

image-20260424140419054
image-20260424140419054

点击进去可以查看具体的运行流程

image-20260424140644019
image-20260424140644019

1.4.1.3 在本地仓库提交触发#

Terminal window
[root@localhost /root/web_test]# vim index.html
[root@localhost /root/web_test]# git add .
[root@localhost /root/web_test]# git commit -m "第三次更新网页文件"
[main c9975d6] 第三次更新网页文件
1 file changed, 1 insertion(+)
[root@localhost /root/web_test]# git push

可以看到已经触发构建成功了

image-20260424142148229
image-20260424142148229

访问该网页

image-20260424142243537
image-20260424142243537

1.4.2 计划#

类似于定时任务,可自定义时间段触发流水线

image-20260428130959393
image-20260428130959393

image-20260428131043078
image-20260428131043078

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

gitlab_cicd使用
https://2233941.xyz/posts/gitlab_cicd使用/
作者
lumifly
发布于
2026-07-13
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
lumifly
不逐世间万丈星河,自守一隅细碎明光
✨ 今日一言
" 加载中... "
——
公告
欢迎来到我的博客!这是一则示例公告。
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
本年还剩 -- --%
本月还剩 -- --%
本周还剩 -- --%
距离--
--
--
天气预报
站点统计
文章
24
分类
1
标签
15
总字数
136,852
运行时长
0
最后活动
0 天前
站点信息
构建平台
Local
博客版本
Firefly v6.12.1
文章许可
CC BY-NC-SA 4.0

文章目录