温馨提示×

centos gitlab怎样集成ci

小樊
39
2026-09-06 00:28:26
栏目: 智能运维

CentOS 上部署的 GitLab 中集成 CI(Continuous Integration),核心是通过 GitLab Runner + .gitlab-ci.yml 来实现。下面按“从零到可用”的顺序说明。


一、整体原理(先搞清楚)

  • GitLab(CentOS 上):管理代码、触发 CI
  • GitLab Runner:真正执行 CI 任务的程序
  • .gitlab-ci.yml:定义 CI 流程(构建、测试、部署)

关系:

代码 push
   ↓
GitLab 触发 Pipeline
   ↓
Runner 拉代码 → 执行 job

二、安装 GitLab Runner(CentOS)

1. 添加官方仓库

curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash

2. 安装 Runner

sudo yum install gitlab-runner -y

3. 验证

gitlab-runner --version

三、注册 Runner 到 GitLab

1. 在 GitLab 中获取信息

进入:

GitLab → 项目 → Settings → CI/CD → Runners

你会看到:

  • Runner URL
  • Registration Token

2. 注册 Runner

sudo gitlab-runner register

按提示输入:

  • GitLab URL
  • Token
  • Runner 描述
  • Tags(可选,如 centosbuild
  • Executor(推荐):
    • shell(简单)
    • docker(推荐,隔离好)

示例(shell):

Executor: shell

四、配置 CI 文件(.gitlab-ci.yml)

在项目根目录新建:

stages:
  - build
  - test

build_job:
  stage: build
  script:
    - echo "Building..."
    - make || true

test_job:
  stage: test
  script:
    - echo "Testing..."
    - ./run_tests.sh || true

提交后:

git add .gitlab-ci.yml
git commit -m "add ci"
git push

GitLab 会自动触发 Pipeline。


五、Runner 执行环境说明(CentOS 重点)

1. 使用 shell executor

  • Runner 直接在 CentOS 上执行
  • 需要提前安装依赖(如 gcc, maven, node

示例:

sudo yum install -y gcc make

2. 使用 docker executor(推荐)

修改 /etc/gitlab-runner/config.toml

[[runners]]
  executor = "docker"
  [runners.docker]
    image = "centos:7"

六、常见问题(CentOS 环境)

1. Runner 不触发?

  • 检查 Runner 是否 online
  • 是否匹配 tag
  • .gitlab-ci.yml 是否语法正确

2. 权限问题

Runner 默认用户是 gitlab-runner

sudo usermod -aG docker gitlab-runner
sudo systemctl restart gitlab-runner

3. 防火墙

GitLab 和 Runner 在同一台 CentOS 一般没问题
若分离:

firewall-cmd --add-port=443/tcp --permanent
firewall-cmd --reload

七、典型 CI 场景示例

Java 项目(CentOS)

stages:
  - build

build:
  stage: build
  script:
    - yum install -y maven
    - mvn clean package

前端项目

build:
  script:
    - npm install
    - npm run build

八、总结步骤(速查)

  1. CentOS 安装 GitLab Runner
  2. 注册 Runner 到 GitLab
  3. 项目根目录加 .gitlab-ci.yml
  4. push 代码 → 自动 CI

如果你愿意,我可以:

  • 给你一个 Java / Python / Node 的完整 CI 示例
  • 帮你配置 CentOS + Docker Runner
  • 或解决你当前 Runner 不触发 / 报错 的具体问题

你可以直接说你的 项目类型 + CentOS 版本

0