gitlab_cicd使用
一、gitlab_cicd使用
1.1 环境准备
- gitlab平台
- gitlab-runner服务端
- 流水线部署服务器(
也可以为gitlab-runner服务器)
1.2 gitlab-runner安装
如果需要使用Gitlab来进行自动化部署,则你需要安装最少一个Gitlab Runner
1.2.1 下载安装
使用国内镜像源进行下载
# 清华大学镜像站点,选择对应的服务器架构进行安装https://mirrors.tuna.tsinghua.edu.cn/gitlab-runner/
# 安装依赖,Gitlab Runner的依赖只有一个那就是gitapt install git
# 下载完成后进行安装dpkg -i gitlab-runner_15.10.0_amd64.deb安装完成后如下图所示

1.2.2 修改gitlab runner 运行用户
为了避免gitlab-runner使用命令或其他目录的权限问题,需要将运行gitlab-runner的用户设置为root
# 查看当前gitlab-runner的执行用户ps aux | grep gitlab-runner
# 卸载掉gitlab-runner的默认用户gitlab-runner uninstall
# 将gitlab-runner的用户设置为rootgitlab-runner install --working-directory /home/gitlab-runner --user root
# 重启gitlab-runnersystemctl restart gitlab-runner
1.3 注册gitlab runner
gitlab cicd的注册方式分为项目runner和共享runner
项目runner:给具体项目使用的runner共享runner:在群组中进行设置,给群组中的项目使用
1.3.1 注册项目gitlab runner
1.3.1.1 获取地址和令牌
进入项目,然后选择项目设置中的cicd

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

1.3.1.2 runner服务器注册
在runner服务器执行注册命令,然后按照提示填写对应的内容
gitlab-runner register填写好注册地址、注册token、runner描述、runner标签、runner执行器

注册成功后的信息保存在/etc/gitlab-runner/config.toml
# 查看已注册的runnergitlab-runner list
# 指定配置文件注册gitlab-runner register --config /custom/path/config.toml注册完成后回到gitlab页面可以看到已经绑定成功

可对注册的runner进行编辑、暂停、移除等操作
编辑时也可以将
项目runner接触锁定,给到其他项目image-20260424114450218
1.3.2 注册群组共享gitlab runner
前提条件:用户要是该群组的所有者才能进行注册操作
进入群组,然后选择cicd

这里可以看到之前添加的项目runner,以为该项目在该群组下
现在注册一个群组runner,还是使用同一台runner服务器
步骤与之前一样,获取到注册令牌后即可


创建成功后回到gitlab平台,可以看到已经创建成功了一个群组平台
**注意:**群组中的项目使用
群组runner时,需要在编辑流水线文件时,携带上群组runner的标签如果流水线文件不带标签,那么也可以编辑
runner,勾选运行未标记的作业即可image-20260424114841193

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 test1.4.1 具体示例
环境:项目中存在一个网页文件index.html
实现效果:当仓库发生提交修改时,触发流水线,使用docker拉取nginx镜像并将index.html部署到nginx中
1.4.1.1 编辑流水线
进入项目,然后选择cicd中的编辑器

.gitlab-ci.yml文件:
# 流水线阶段stages: - deploy
# 自动部署静态网页到 Dockerdeploy_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 查看流水线

因为文件只有一个阶段deploy叫deploy_static_web,因此流水线只有一个

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

1.4.1.3 在本地仓库提交触发
[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可以看到已经触发构建成功了

访问该网页

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


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


赣公网安备36072602000131号