centos gitlab持续集成流程
导读:CentOS 上搭建 GitLab CI/CD 流程 一 架构与准备 组件分工:GitLab 负责任务调度与界面展示,GitLab Runner 负责任务执行(可独立部署在另一台 CentOS 机器),流水线由项目根目录的 .gitlab...
CentOS 上搭建 GitLab CI/CD 流程
一 架构与准备
- 组件分工:GitLab 负责任务调度与界面展示,GitLab Runner 负责任务执行(可独立部署在另一台 CentOS 机器),流水线由项目根目录的 .gitlab-ci.yml 定义。Runner 支持多种执行器(如 shell、docker),可按需选择。Runner 默认以 gitlab-runner 用户运行,使用 shell 执行器时该用户对目标环境需具备相应权限。若使用 docker 执行器,需将 gitlab-runner 加入 docker 组并配置镜像与缓存策略。以上要点涵盖安装 Runner、注册到项目或共享 Runner、以及执行器选择与权限配置等核心步骤。
二 安装与注册 Runner
- 安装 Runner(CentOS)
- 添加仓库并安装:
- curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash
- sudo yum install -y gitlab-runner
- 作为服务运行(推荐):
- sudo systemctl enable --now gitlab-runner
- 添加仓库并安装:
- 注册 Runner
- 获取项目级或共享 Runner 的 URL 与 Registration Token(路径:项目 Settings → CI/CD → Runners)。
- 交互注册:
- sudo gitlab-runner register
- 按提示填写:GitLab 实例 URL、项目 Token、Runner 描述、标签(如:linux,shell)、是否运行未打标签任务(run_untagged)、执行器(如 shell 或 docker)。
- 非交互注册(示例):
- gitlab-runner register --non-interactive
–url http://your-gitlab-domain.com/
–registration-token PROJECT_TOKEN
–name centos7-runner
–tag-list linux,shell
–run-untagged=true
–executor shell
- gitlab-runner register --non-interactive
- 验证与常用命令
- 查看状态:sudo gitlab-runner status
- 列出 Runner:gitlab-runner list
- 在线校验:gitlab-runner verify
- 服务管理:sudo gitlab-runner start|stop|restart
- 使用 Docker 执行器时的要点
- 将 Runner 加入 docker 组:sudo usermod -aG docker gitlab-runner
- 注册时选择 executor=docker,并指定镜像(如:docker:latest 或 node:14),必要时开启特权模式与缓存。以上步骤覆盖在 CentOS 上安装 Runner、注册到项目、以及使用 shell/docker 执行器的关键操作。
三 定义流水线 .gitlab-ci.yml
- 最小可用示例(按阶段组织任务)
- stages:
- build
- test
- deploy
- variables:
- NODE_ENV: production
- cache:
- key: ${ CI_COMMIT_REF_SLUG} # 按分支缓存依赖
- paths:
- node_modules/
- build_job:
- stage: build
- tags:
- linux
- script:
- echo “Building…”
- npm ci --quiet
- npm run build --if-present
- test_job:
- stage: test
- tags:
- linux
- script:
- echo “Testing…”
- npm test – --ci || true
- deploy_job:
- stage: deploy
- tags:
- linux
- script:
- echo “Deploying…”
- rsync -av dist/ user@prod-server:/var/www/myapp/
- only:
- main
- stages:
- 关键说明
- 通过 stages 定义执行顺序;tags 用于匹配具备相应标签的 Runner;only/except 控制分支触发;cache 提升重复构建效率;variables 定义可复用变量。
- 若 Runner 使用 docker 执行器,可直接在 job 中指定镜像与服务容器(如 services: postgres:13),实现环境一致性。以上示例与用法适用于常见前端/后端项目在 CentOS 上的流水线定义。
四 触发与监控及常见问题
- 触发与监控
- 推送代码至目标分支(如 main)将自动触发流水线;也可在 CI/CD → Pipelines 页面点击 Run pipeline 手动触发。执行状态(Pending/Running/Passed/Failed)与日志可在 Jobs 详情中查看与下载。
- 常见问题与排查
- 任务未匹配 Runner:检查 tags 是否一致,或在 Runner 设置中开启 Run untagged jobs。
- 权限不足:使用 shell 执行器时,确保 gitlab-runner 用户对代码目录、部署目标具备读写/执行权限;使用 docker 执行器时,确保已加入 docker 组并重启 Runner 服务。
- Windows 换行符导致脚本执行失败:在 CI 中加入 sed -i ‘s/\r$//’ script.sh 或使用 dos2unix 转换后再执行。
- Runner 通信异常:查看服务状态与日志(sudo gitlab-runner status、journalctl -u gitlab-runner),确认 URL/Token 正确、网络可达、以及防火墙放行必要端口(如 80/443/22)。以上为在 CentOS 上常见问题的快速定位与修复思路。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos gitlab持续集成流程
本文地址: https://pptw.com/jishu/785663.html
