如何安装和注册 GitLab Runner

如何安装和注册 GitLab Runner

GitLab Runner 是一个用于运行 GitLab CI/CD (Continuous Integration/Continuous Deployment) 作业。它是一个与 GitLab 配合使用的应用程序,可以在本地或云中运行。Runner 可以执行不同类型的作业,例如编译代码、运行测试、部署应用程序等。它支持多种执行器,包括 Shell、Docker、Kubernetes 等,以便灵活地运行作业。

1. GitLab Runner 的安装

在开始安装 GitLab Runner 之前,首先需要确认你的服务器上已经安装了 Git 和 Docker(如果你打算使用 Docker executor)。下面将展示在不同操作系统上安装 GitLab Runner 的方法。

1.1 在 Linux 上安装 GitLab Runner

  1. 打开终端,下载 GitLab Runner 的二进制文件:

    bash 复制代码
    curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
  2. 为二进制文件添加执行权限:

    bash 复制代码
    chmod +x /usr/local/bin/gitlab-runner
  3. 安装并启动 GitLab Runner 服务:

    bash 复制代码
    gitlab-runner install
    gitlab-runner start

1.2 在 macOS 上安装 GitLab Runner

  1. 使用 Homebrew 安装 GitLab Runner:

    bash 复制代码
    brew install gitlab-runner
  2. 安装后,启动 GitLab Runner:

    bash 复制代码
    gitlab-runner start

1.3 在 Windows 上安装 GitLab Runner

  1. 下载 Windows 版本的 GitLab Runner 安装包,网址:GitLab Runner 下载

  2. 将下载的文件重命名为 gitlab-runner.exe,并将其移动到一个可执行路径中,例如 C:\GitLab-Runner

  3. 在命令提示符中安装 GitLab Runner 服务:

    bash 复制代码
    gitlab-runner.exe install
    gitlab-runner.exe start

1.4 在 Ubuntu 上安装 GitLab Runner

  1. 添加 GitLab Runner 官方仓库

首先,添加 GitLab Runner 的官方仓库并导入 GPG 密钥。

bash 复制代码
# 安装必要的依赖
sudo apt-get install -y curl

# 添加 GitLab 官方 GPG 密钥
curl -fsSL https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
  1. 安装 GitLab Runner

现在使用 apt 包管理器来安装 GitLab Runner。

bash 复制代码
sudo apt-get install gitlab-runner
  1. 启动 GitLab Runner

在 Ubuntu 系统上,GitLab Runner 会作为系统服务运行。可以使用以下命令启动并启用 GitLab Runner 服务,以便在系统启动时自动运行:

bash 复制代码
sudo systemctl start gitlab-runner
sudo systemctl enable gitlab-runner

2. 注册 GitLab Runner

安装完 GitLab Runner 后,需要将其注册到你的 GitLab 实例中,这样它才能运行特定项目的任务。

2.1 获取注册令牌

  1. 登录到你的 GitLab 实例。
  2. 导航到你想要注册 Runner 的项目。
  3. 进入 Settings -> CI / CD,在 Runners 部分找到 Set up a specific Runner manually
  4. 复制项目的注册令牌。

2.2 运行注册命令

在你的服务器上运行以下命令开始注册:

bash 复制代码
gitlab-runner register

然后按照提示完成注册:

  1. 输入 GitLab 实例的 URL,例如 https://gitlab.com/
  2. 输入上一步获取的注册令牌。
  3. 输入描述信息和标记(tags),用于标识 Runner,多个标签用逗号分隔。
  4. 选择 Runner 执行器(executor),例如 dockershellvirtualbox 等。通常推荐选择 docker 以便于隔离和管理。

2.3 配置 Runner

完成注册后,可以通过编辑 config.toml 文件进一步配置 Runner。此文件通常位于 Runner 安装路径下的 ~/.gitlab-runner/ 目录中。根据安装环境的不同,该文件可能也位于 /etc/gitlab-runner/ 目录中。config.toml 文件用于定义 Runner 的行为和特性,如使用的执行器、环境变量、缓存设置等。

可以使用以下配置示例对 config.toml 进行修改:

toml 复制代码
[[runners]]
  name = "my-runner"
  url = "https://gitlab.com/"
  token = "xxxxxxxxxxxxxxxxxxxx"
  executor = "docker"
  [runners.custom_build_dir]
  [runners.docker]
    tls_verify = false
    image = "alpine:latest"
    privileged = true
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    volumes = ["/cache"]
    shm_size = 0
  [runners.cache]

3. 启动并验证 Runner

注册完成后,GitLab Runner 服务会自动运行。你可以通过以下命令查看其状态:

bash 复制代码
gitlab-runner status

如果一切正常,GitLab 中的项目设置页面会显示新的 Runner 已注册并可以使用。

配置runner以root用户运行

在某些场景下,您可能希望以 root 用户身份运行 GitLab Runner,以便拥有更高的权限来执行 CI/CD 作业。

1. 编辑配置文件

GitLab Runner 注册完成后,默认的配置文件位于 /etc/gitlab-runner/config.toml。使用文本编辑器打开该文件:

bash 复制代码
sudo nano /etc/gitlab-runner/config.toml

[[runners]] 配置块中,添加或修改 user 选项为 root

toml 复制代码
[[runners]]
  name = "my-runner"
  url = "https://gitlab.com/"
  token = "YOUR_RUNNER_TOKEN"
  executor = "shell"
  user = "root"
  [runners.custom_build_dir]
  [runners.cache]

2. 重启 GitLab Runner

保存配置文件后,需要重启 GitLab Runner 以使更改生效:

bash 复制代码
sudo gitlab-runner stop
sudo gitlab-runner start

或者使用系统服务管理工具:

bash 复制代码
sudo systemctl daemon-reload
sudo systemctl restart gitlab-runner

参考链接

相关推荐
切糕师学AI1 天前
GitLab 是什么?
gitlab
明月心9523 天前
git remote add 用法
gitlab
only_Klein3 天前
jenkins流水线报错:Connection reset by peer
ci/cd·kubernetes·gitlab·jenkins·ssl
梁萌4 天前
docker部署gitlab和gitlab runner
docker·eureka·gitlab
johnnyAndCode4 天前
Idea 设置GitLab时使用账密,而不是token的配置方法
gitlab·idea
天外飞雨4 天前
Gitlab使用
gitlab
BUTCHER55 天前
GitLab SSH 密钥配置
运维·ssh·gitlab
明月心9525 天前
GitLab使用
gitlab
明月心9526 天前
gitlab pull requets
gitlab
BUTCHER56 天前
GitLab基本设置
gitlab