GitLab CI CD runners 配置

GitLab CI CD runners 配置

Posted by WTJ on January 4, 2019

目录

您可以更改 GitLab Runner 和registered runners的行为。

为此,您需要修改一个名为 的文件config.toml,该文件使用TOML格式。

当您更改大多数选项时,GitLab Runner 不需要重新启动。这包括部分中的[ [ runners ] ]参数和全局部分中的大多数参数,除了listen_address. 如果跑步者已经注册,则无需再次注册。

GitLab Runner 每 3 秒检查一次配置修改,并在必要时重新加载。GitLab Runner 还会重新加载配置以响应SIGHUP信号。

您可以config.toml在以下位置找到该文件:

  • /etc/gitlab-runner/当 GitLab Runner 以 root 身份执行时在 *nix 系统上(这也是服务配置的路径)
  • ~/.gitlab-runner/当 GitLab Runner 以非 root 身份执行时,在 *nix 系统上
  • ./在其他系统上
环境 描述
name 跑步者的描述。仅供参考。
url GitLab 实例 URL。
token runner的认证token,在runner注册时获取。不一样的注册令牌。
tls-ca-file 使用 HTTPS 时,包含用于验证对等方的证书的文件。请参阅自签名证书或自定义证书颁发机构文档。
tls-cert-file 使用 HTTPS 时,包含与对等方进行身份验证的证书的文件。
tls-key-file 使用 HTT

如果您使用的是 GitLab Runner Docker 映像,则必须8093通过添加命令-p 8093:8093来公开端口。docker run

该 [ [ runners ] ]部分 每个 [ [ runners ] ]部分定义一个跑步者。

环境 描述 name 跑步者的描述。仅供参考。 url GitLab 实例 URL。 token runner的认证token,在runner注册时获取。不一样的注册令牌。 tls-ca-file 使用 HTTPS 时,包含用于验证对等方的证书的文件。请参阅自签名证书或自定义证书颁发机构文档。 tls-cert-file 使用 HTTPS 时,包含与对等方进行身份验证的证书的文件。 tls-key-file 使用 HTT

全局部分

这些设置是全局的。它们适用于所有跑步者。

环境 描述
concurrent 限制在所有注册的跑步者中可以同时运行的作业数量。每个 [ [ runners ] ]部分都可以定义自己的限制,但该值会为所有这些值的组合设置最大值。例如,值10表示不超过 10 个作业可以同时运行。0禁止。如果您使用此值,则运行程序进程将退出并出现严重错误。查看此设置如何与 Docker Machine 执行器(用于自动缩放)一起使用。
log_level 定义日志级别。选项有debug、info、warn、error、fatal和panic。此设置的优先级低于命令行参数–debug、-l或设置的级别–log-level。
log_format 指定日志格式。选项有runner、text和json。此设置的优先级低于命令行参数设置的格式–log-format。默认值为runner。
check_interval 定义新作业检查之间的间隔长度(以秒为单位)。默认值为3。如果设置为0或更低,则使用默认值。
sentry_dsn 启用对 Sentry 的所有系统级错误的跟踪。
listen_address :定义Prometheus 指标 HTTP 服务器应该监听的地址 ( )。

配置示例:

concurrent = 4
log_level = "warning"

log_format示例(截断)

runner

Runtime platform                                    arch=amd64 os=darwin pid=37300 revision=HEAD version=development version
Starting multi-runner from /etc/gitlab-runner/config.toml...  builds=0
WARNING: Running in user-mode.
WARNING: Use sudo for system-mode:
WARNING: $ sudo gitlab-runner...

Configuration loaded                                builds=0
listen_address not defined, metrics & debug endpoints disabled  builds=0
[session_server].listen_address not defined, session endpoints disabled  builds=0

text

INFO[0000] Runtime platform                              arch=amd64 os=darwin pid=37773 revision=HEAD version="development version"
INFO[0000] Starting multi-runner from /etc/gitlab-runner/config.toml...  builds=0
WARN[0000] Running in user-mode.
WARN[0000] Use sudo for system-mode:
WARN[0000] $ sudo gitlab-runner...
INFO[0000]
INFO[0000] Configuration loaded                          builds=0
INFO[0000] listen_address not defined, metrics & debug endpoints disabled  builds=0
INFO[0000] [session_server].listen_address not defined, session endpoints disabled  builds=0

json

{"arch":"amd64","level":"info","msg":"Runtime platform","os":"darwin","pid":38229,"revision":"HEAD","time":"2020-06-05T15:57:35+02:00","version":"development version"}
{"builds":0,"level":"info","msg":"Starting multi-runner from /etc/gitlab-runner/config.toml...","time":"2020-06-05T15:57:35+02:00"}
{"level":"warning","msg":"Running in user-mode.","time":"2020-06-05T15:57:35+02:00"}
{"level":"warning","msg":"Use sudo for system-mode:","time":"2020-06-05T15:57:35+02:00"}
{"level":"warning","msg":"$ sudo gitlab-runner...","time":"2020-06-05T15:57:35+02:00"}
{"level":"info","msg":"","time":"2020-06-05T15:57:35+02:00"}
{"builds":0,"level":"info","msg":"Configuration loaded","time":"2020-06-05T15:57:35+02:00"}
{"builds":0,"level":"info","msg":"listen_address not defined, metrics \u0026 debug endpoints disabled","time":"2020-06-05T15:57:35+02:00"}
{"builds":0,"level":"info","msg":"[session_server].listen_address not defined, session endpoints disabled","time":"2020-06-05T15:57:35+02:00"}

[ [ runners ] ]

每一个 [ [ runners ] ] 部分定义一个跑步者

环境 描述
name 跑步者的描述。仅供参考。
url GitLab 实例 URL。
token runner的认证token,在runner注册时获取。不一样的注册令牌。
tls-ca-file 使用 HTTPS 时,包含用于验证对等方的证书的文件。请参阅自签名证书或自定义证书颁发机构文档。
tls-cert-file 使用 HTTPS 时,包含与对等方进行身份验证的证书的文件。
tls-key-file 使用 HTTPS 时,包含与对等方进行身份验证的私钥的文件。
limit 限制此注册的跑步者可以同时处理多少个作业。0(默认)表示不限制。查看此设置如何与 Docker Machine 执行器(用于自动缩放)一起使用。
executor 选择应该如何构建项目。
shell 生成脚本的 shell 的名称。默认值取决于平台。
builds_dir 构建存储在所选执行程序上下文中的目录的绝对路径。例如,本地、Docker 或 SSH。
cache_dir 构建缓存存储在选定执行程序上下文中的目录的绝对路径。例如,本地、Docker 或 SSH。如果使用docker执行器,则需要在其volumes参数中包含该目录。
environment 追加或覆盖环境变量。
request_concurrency 限制来自 GitLab 的新作业的并发请求数。默认为1。
output_limit 以千字节为单位的最大构建日志大小。默认值为4096(4MB)。
pre_clone_script 克隆 Git 存储库之前要在运行器上执行的命令。例如,首先使用它来调整 Git 客户端配置。要插入多个命令,请使用(三引号)多行字符串或\n字符。
post_clone_script 克隆 Git 存储库和更新子模块后要在运行器上执行的命令。要插入多个命令,请使用(三引号)多行字符串或\n字符。
pre_build_script 在执行构建之前要在运行器上执行的命令。要插入多个命令,请使用(三引号)多行字符串或\n字符。
post_build_script 在执行构建之后但在执行之前要在运行器上执行的命令after_script。要插入多个命令,请使用(三引号)多行字符串或\n字符。
clone_url 覆盖 GitLab 实例的 URL。仅在跑步者无法连接到 GitLab URL 时使用。
debug_trace_disabled 禁用该CI_DEBUG_TRACE功能。当设置为 时true,调试日志(跟踪)保持禁用状态,即使用户CI_DEBUG_TRACE设置为true。
referees 额外的工作监控工作者将他们的结果作为工作工件传递给 GitLab。

例子:

[[runners]]
  name = "ruby-2.7-docker"
  url = "https://CI/"
  token = "TOKEN"
  limit = 0
  executor = "docker"
  builds_dir = ""
  shell = ""
  environment = ["ENV=value", "LC_ALL=en_US.UTF-8"]
  clone_url = "http://gitlab.example.local"

参考: Advanced configuration