首页主机资讯centos gitlab持续集成流程

centos gitlab持续集成流程

时间2026-01-19 11:53:03发布访客分类主机资讯浏览260
导读: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 的 URLRegistration Token(路径:项目 Settings → CI/CD → Runners)。
    • 交互注册:
      • sudo gitlab-runner register
      • 按提示填写:GitLab 实例 URL、项目 Token、Runner 描述、标签(如:linux,shell)、是否运行未打标签任务(run_untagged)、执行器(如 shelldocker)。
    • 非交互注册(示例):
      • 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
  • 验证与常用命令
    • 查看状态: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 定义执行顺序;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
centos gitlab自定义脚本编写 centos gitlab使用心得分享

游客 回复需填写必要信息