关于极狐GitLab Runner

极狐GitLab Runner 是极狐GitLab 的重要组件,是实现 CI/CD 的“瑞士军刀”,具有安装简单、使用灵活的特点,支持多种 CPU 架构、多种 Linux 发行版以及 多种 OS。

Runner 的安装

Runner 的安装非常简单,只要找到对应操作系统的安装包进行安装即可。本文以 ubuntu 20.04 为例来说明。

可以在极狐GitLab Runner 官网下载最新版本,也可以在这儿下载其他版本。可以用下面命令下载针对 ubuntu 20.04 的安装包:

$ curl -LJO "https://gitlab-runner-downloads.s3.amazonaws.com/latest/deb/gitlab-runner_amd64.deb"
$ ls -ltr
-rw-rw-r-- 1 root root  438976174 Nov 24 13:58 gitlab-runner_amd64.deb

接着用如下命令进行安装即可:

$ dpkg -i gitlab-runner_amd64.deb

可以通过 --help--version 来查看安装是否成功:

$ gitlab-runner --version
Version:      14.5.0
Git revision: f0a95a76
Git branch:   14-5-stable
GO version:   go1.13.8
Built:        2021-11-21T16:54:22+0000
OS/Arch:      linux/amd64

Runner 的注册

Runner 安装完毕,在真正使用之前需要先进行注册。注册的目的是让 Runner 和极狐GitLab 实例建立链接通道,当极狐GitLab 实例中的项目有 CI/CD Pipeline 需要执行的时候,就会通过这个注册的 Runner 来执行。极狐GitLab Runner 的注册很简单,通过 gitlab-runner register 命令即可,根据不同阶段的输出输入极狐GitLab 实例的 URLToken等,这些内容可以通过项目的 Setting –> CI/CD –> Runner 选项来获取,如下图所示:

runner-info

上述极狐GitLab 实例的的地址是 https://jh-xiaomage.gitlab.cn(通过 Omnibus 安装的,安装过程可以参考博客文章使用 Omnibus 安装极狐GitLab),tokensoeDCSvexosk2aHL_yJw,接着就可以用 gitlab-runner register 来注册 Runner 了。

注册之前,可以先检查一下,是否已经安装了 Runner

$ gitlab-runner list
Runtime platform                                    arch=amd64 os=linux pid=880297 revision=f0a95a76 version=14.5.0
Listing configured runners                          ConfigFile=/etc/gitlab-runner/config.toml

可以看到,当前没有可使用的 Runner,接下来开始注册

$ gitlab-runner register
Runtime platform                                    arch=amd64 os=linux pid=884619 revision=f0a95a76 version=14.5.0
Running in system-mode.

Enter the GitLab instance URL (for example, https://gitlab.com/):
https://jh-xiaomage.gitlab.cn
Enter the registration token:
soeDCSvexosk2aHL_yJw
Enter a description for the runner:
[VM-0-6-ubuntu]: ubuntu-runner
Enter tags for the runner (comma-separated):
ubuntu,runner
Registering runner... succeeded                     runner=soeDCSve
Enter an executor: docker, parallels, shell, ssh, virtualbox, custom, docker-ssh, docker+machine, docker-ssh+machine, kubernetes:
shell
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!

可以查看当前 Runner 的状态:

$ gitlab-runner status
Runtime platform                                    arch=amd64 os=linux pid=901121 revision=f0a95a76 version=14.5.0
gitlab-runner: Service is running

现在就可以在极狐GitLab 实例的 Runner 界面上看到,新增了一个 Runner 且处于 active 状态:

runner-start

Runner 的使用

Runner 主要用来完成 CI/CD Pipeline 的执行。可以在做 Demo 的 Project 中添加 .gitlab-ci.yml 文件,来构建一个 CI/CD Pipeline,Project 代码目录如下:

$ tree
.
├── devops.go
├── Dockerfile
└── README.md

devops.go 文件的内容如下:

package main

import (
    "fmt"
    "log"
    "net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello this xiaomage")
}

func main() {
    http.HandleFunc("/jihu", handler)
    log.Fatal(http.ListenAndServe(":9999", nil))
}

Dockerfile 的内容如下:

FROM golang:1.12.9-alpine3.9 as builder

WORKDIR /tmp

COPY devops.go /tmp

RUN go build devops.go

FROM alpine:latest

WORKDIR /usr/src/app/

COPY --from=builder /tmp/devops /usr/src/app/

CMD ["./devops"]

.gitlab-ci.yml 文件的内容如下:

stages:
  - build

build:
  image: docker:latest
  stage: build
  services:
    - docker:20.10.7-dind
  script:
    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
    - docker build -t $CI_REGISTRY_IMAGE:1.0.0 .
    - docker push $CI_REGISTRY_IMAGE:1.0.0

接着触发 CI/CD,查看 Pipeline 构建结果

pipeline-build

查看 Pipeline 构建日志

pipeline-log

可以从红色方框看到,此次 CI/CD Pipeline 的构建使用了新安装的 Runner。

至此,已经完成了极狐GitLab Runner 在 Ubuntu 上的安装和使用。当然,极狐GitLab Runner 还可以在其他操作系统上安装使用,也可以用容器的方式使用。我们将在后续的文章中陆续介绍。

60天免费试用极狐GitLab专业版

极狐GitLab不仅是源代码管理或CI/CD工具,它是一个覆盖完整软件开发生命周期和DevOps的开放式一体化平台。

企业版试用
售前咨询
联系电话
在线支持
预约演示