温馨提示×

linux gitlab怎样集成ci

小樊
41
2026-09-13 15:27:38
栏目: 智能运维

下面以 Linux 服务器上自建 GitLab 为例,系统讲一下 GitLab CI 的集成方式,从原理到实操。


一、GitLab CI 基本原理

GitLab CI 由两部分组成:

  1. GitLab(服务端)
    • 管理代码、触发 Pipeline
  2. GitLab Runner(执行端)
    • 真正执行 CI 任务(Linux / Docker / Shell 等)

流程:

代码 push
  ↓
GitLab 读取 .gitlab-ci.yml
  ↓
分配给 Runner
  ↓
Runner 执行 job

二、安装 GitLab Runner(Linux)

1. 添加官方源(以 CentOS 为例)

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

Ubuntu:

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

2. 安装 Runner

sudo yum install gitlab-runner -y
# Ubuntu
sudo apt install gitlab-runner -y

三、注册 Runner 到 GitLab

1. 获取注册信息

在 GitLab 项目中:

Settings → CI/CD → Runners

你会看到:

  • GitLab URL
  • Registration Token

2. 注册 Runner

sudo gitlab-runner register

按提示输入:

  • GitLab URL
  • Token
  • Runner 名称
  • 执行方式(推荐 shell 或 docker)

示例(shell):

executor: shell

四、编写 .gitlab-ci.yml

在项目根目录创建:

stages:
  - build
  - test

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

test_job:
  stage: test
  script:
    - echo "Testing..."
    - pytest

提交后 GitLab 会自动触发 CI。


五、Runner 执行方式选择

1. Shell(最简单)

executor = shell

适合:

  • 简单构建
  • 服务器已配置好环境

⚠ 注意权限问题(gitlab-runner 用户)


2. Docker(推荐)

executor = docker
default_image = alpine:latest

优点:

  • 环境隔离
  • 可复现

六、常见问题

1. Runner 不在线

sudo gitlab-runner status
sudo gitlab-runner restart

2. 权限不足

sudo usermod -aG docker gitlab-runner

3. 手动触发 CI

CI/CD → Pipelines → Run Pipeline

七、典型使用场景

  • 代码编译
  • 单元测试
  • 自动部署(SSH / Ansible)
  • Docker 镜像构建

如果你愿意,可以告诉我:

  • GitLab 版本
  • Linux 发行版
  • 是否用 Docker
  • 想实现什么 CI 流程(构建 / 测试 / 部署)

我可以给你一份 可直接用的 .gitlab-ci.yml 模板。

0 踩