centos8安装gitlab runner

2021-04-16  本文已影响0人  小黑佬

添加官方仓库
Add the GitLab official repository to your servers package manager.

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

Install the GitLab Runner service.

sudo yum install gitlab-runner

Test that the GitLab Runner is running

sudo service gitlab-runner status

在 GNU/Linux 系统上注册 Runner:

<pre>$ gitlab-runner register</pre>

# 输入 GitLab 实例 URL::[查看地址setting 》CI/CD 》 Runners settings ]

<pre>Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com )
https://gitlab.oneitfarm.com/</pre>

# 输入获取到的用于注册 Runner 的 token:[查看地址setting 》CI/CD 》 Runners settings ]

<pre>Please enter the gitlab-ci token for this runner
xxx</pre>

# 输入该 Runner 的描述,稍后也可通过 GitLab's UI 修改:

<pre>Please enter the gitlab-ci description for this runner
[hostame] xxx</pre>

# [给该 Runner 指派 tags](https://docs.gitlab.com.cn/ce/ci/runners/#using-tags), 稍后也可以在 GitLab's UI 修改: 【tags需要定义,不同的job可以通过tag跑不同的runner】

<pre>Please enter the gitlab-ci tags for this runner (comma separated):
IDG-mamidian</pre>

#选择 Runner 是否接收[未指定 tags](https://docs.gitlab.com.cn/ce/ci/runners/#using-tags) 的任务(默认值:false), 稍后可以在 GitLab's UI 修改:

<pre>Whether to run untagged jobs [true/false]:
[false]: false</pre>

# 选择是否为当前项目锁定该 Runner, 之后也可以在 GitLab's UI 修改。 该功能通常用于被指定为某个项目的 Runner (默认值:true):

<pre>Whether to lock Runner to current project [true/false]:
[true]: true</pre>

# 选择 [Runner executor](https://docs.gitlab.com.cn/runner/executors/README.html):

<pre>Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:
shell</pre>

# 如果你选择 Docker 作为你的 executor,注册程序会让你设置一个默认的镜像, 作用于 .gitlab-ci.yml 中未指定镜像的项目:

<pre>Please enter the Docker image (eg. ruby:2.1):
alpine:latest</pre>

# 注册成功后可在项目页面 》settings 》CI/CD 》Runner setting下看到相关配置,并可一修改runner配置

注意:Tags必填且要唯一

注意,如果是特定项目给个人使用就用Specific Runners ,只有管理员才可以创建共享runner。

GitLab CI 中的基本概念

Runner

配合 GitLab 执行 CI 任务,是实际执行 CI 任务的进程,并将执行结果返回给 GitLab。一般一个项目分配一个 Runner,但也可以多个项目共享一个 Runner。
Executor

执行器,有多种选择,如:docker、shell 等,决定 Runner 以什么环境执行作业,一个 Runner 对应一个 Executor。
Pipline

流水线,流水线代表项目 CI/CD 的整个流程,分为多个阶段(在 .gitlab-ci.yml 中自己规定)。
Stage

阶段,一个 Pipline 对应多个阶段。
Job

CI/CD 中最小的执行单元,一个 Stage 对应多个 Jobs。

实例:

# 流水线分为测试阶段和构建阶段
stages:
  - test
  - build

# 测试作业
test_job:
  stage: test
  image: golang:1.14.2
  tags:
    - demo-project-runner
  services:
    # 执行测试时依赖 MySQL 服务
    - name: mysql:8.0.17
      # golang 容器中可与 mysql 容器通信的别名(内部会 DNS 解析)
      alias: mysql
      command: ['--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci']
  # 指定作业级变量,会作为环境变量传入 golang 和 mysql 容器
  variables:
    MYSQL_HOST: mysql
    MYSQL_ROOT_PASSWORD: root
    MYSQL_DATABASE: test
  # 执行脚本前的工作,设置 goproxy 加快依赖下载速度
  before_script:
    - go env -w GO111MODULE=on
    - go env -w GOPROXY=https://goproxy.cn,direct
  # 执行代码检查和单元测试
  script:
    - go vet ./...
    - go test -v -race ./...

# 构建作业
build_job:
  stage: build
  image: docker:latest
  
  # services:
  #  - docker:dind
  # variables:
  #   DOCKER_DRIVER: overlay2
  #   DOCKER_TLS_CERTDIR: ''
  
  script:
    # 可将一些变量放在 GitLab 项目设置里,防止密码被包含在代码中
    - docker build -t goapp:latest .
    - docker login -u $DOCKER_REGISTRY_USERNAME -p $DOCKER_REGISTRY_PASSWORD $DOCKER_REGISTRY_ADDR
    - docker tag goapp:latest ${DOCKER_REGISTRY_ADDR}/xvrzhao/goapp:latest
    - docker push ${DOCKER_REGISTRY_ADDR}/xvrzhao/goapp:latest
  tags:
    - demo-project-runner
  # 指定 master 分支的提交才会触发该作业
  only:
    - master

参考:
通过 GitLab Runner 实现 CI/CD 工作流(上)

GitLab CI/CD自动化部署(持续集成)

GitLab内置了 CI CD 工具,强大啊!!

上一篇下一篇

猜你喜欢

热点阅读