Gitlab Runner的安装与注册
Gitlab Runner的安装与注册
1.访问项目的gitlab页面获取token
Settings
->CI/CD
->Runners
获取到当前项目的key,如下图所示:
此时我们就可以拿到对应的token了
2. 安装gitlab runner
建议是安装到CentOS服务器上
- 添加源
1
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash
- 通过包管理工具安装默认会安装最新的版本,如果需要安装特定版本则可以通过以下命令实现
1
sudo yum install gitlab-runner
1
2yum list gitlab-runner --showduplicates | sort -r
sudo yum install gitlab-runner-10.0.0-1
3. 注册gitlab runner
1 | sudo gitlab-runner register |
需要输入项目所在的gitlab地址,类似于https://gitlab.xxx.com
回车过后需要输入项目的token,也就是我们在第一步中获取到的
后面会要求输入一些描述,紧接着是tag
,这个可以用于.gitlab-ci.yml
文件中指定具体的runner
,可以认为tag
就是这个当前注册runner的身份ID。最后是选择执行器,初级选手,只会使用shell
,其他相关的请看EXECUTORS执行器简单介绍
另,一台服务器可以注册多个gitlab runner
EXECUTORS执行器简单介绍
执行者 | 描述 |
---|---|
shell | 在本地运行构建,默认 |
docker | 使用Docker容器运行构建 - 这需要在Runner运行的系统上安装[runners.docker]和Docker Engine |
docker-ssh | 运行生成使用泊坞容器,但用SSH连接到它-这需要的存在[runners.docker],[runners.ssh]以及码头工人引擎的亚军运行的系统上安装。注意:这将在本地计算机上运行docker容器,它只是更改命令在该容器内运行的方式。如果要在外部计算机上运行docker命令,则应更改host该runners.docker部分中的参数。 |
ssh | 使用SSH远程运行构建 - 这需要存在 [runners.ssh] |
parallels | 使用Parallels VM运行构建,但使用SSH连接到它 - 这需要存在[runners.parallels]和[runners.ssh] |
virtualbox | 使用VirtualBox VM运行构建,但使用SSH连接到它 - 这需要存在[runners.virtualbox]和[runners.ssh] |
docker+machine | 喜欢docker,但使用自动缩放的Docker机器 - 这需要存在[runners.docker]和[runners.machine] |
docker-ssh+machine | 喜欢docker-ssh,但使用自动缩放的Docker机器 - 这需要存在[runners.docker]和[runners.machine] |
kubernetes | 使用Kubernetes Pods运行构建 - 这需要存在 [runners.kubernetes] |
shell执行器补充
shell执行器是根据当前gitlab runner所安装的操作系统来决定的
shell | 描述 |
---|---|
bash | 生成Bash(Bourne-shell)脚本。在Bash上下文中执行的所有命令(所有Unix系统的默认值) |
sh | 生成Sh(Bourne-shell)脚本。Sh上下文中执行的所有命令(适用bash于所有Unix系统的后备) |
cmd | 生成Windows批处理脚本。所有命令都在批处理上下文中执行(Windows的默认值) |
powershell | 生成Windows PowerShell脚本。所有命令都在PowerShell上下文中执行 |
.gitlab-ci.yml基本语法
以下内容暂时只针对shell执行器
config.toml基本配置
官方文档介绍:https://docs.gitlab.com/runner/configuration/advanced-configuration.html
全局配置
关键字 | 描述 |
---|---|
concurrent |
限制全局可以同时运行的作业数。使用所有已定义的运行者的作业的最大上限。0并不是指无限制,如果服务器性能还不错,可以尝试给个5 |
log_level |
日志级别(选项:调试,信息,警告,错误,致命,恐慌)。请注意,此设置的优先级低于命令行参数设置的级别--debug ,-l 或--log-level |
log_format |
日志格式(选项:runner,text,json)。请注意,此设置的优先级低于命令行参数设置的格式--log-format |
check_interval |
定义新作业检查之间的间隔长度(以秒为单位)。默认值为3; 如果设置为0或更低,将使用默认值。 |
sentry_dsn |
启用跟踪哨兵的所有系统级错误 |
listen_address |
地址(<host>:<port> ),Prometheus指标HTTP服务器应该在其上监听 |
[session_server]
介绍
此项配置应在[[runners]]
外部指定,主要包含以下参数
设置 | 描述 |
---|---|
listen_address |
用于会话服务器的内部URL。 |
advertise_address |
Runner将向GitLab公开的URL,用于访问会话服务器。listen_address 如果没有定义,则回退到。 |
session_timeout |
作业完成后会话可以保持活动状态的多长时间(这将阻止作业完成),默认为1800(30分钟)。 |
其中
listen_address
和advertise_address
需要以host:port
形式提供,其中host
可以是IP地址,也可以是域名。
示例:
1 | [session_server] |
[[runners]]
介绍
一个config.toml
文件允许存在多个[[runners]]
,也就对应了上文中提到的一个服务器允许注册多个gitlab runner
相关配置参数介绍如下表所示:
设置 | 描述 |
---|---|
name |
Runner的描述,只是提供信息 |
url |
GitLab URL |
token |
Runner的特殊令牌(不要与注册令牌混淆) |
tls-ca-file |
包含证书的文件,用于在使用HTTPS时验证对等方 |
tls-cert-file |
包含证书的文件,以便在使用HTTPS时与对等方进行身份验证 |
tls-key-file |
包含私钥的文件,用于在使用HTTPS时与对等方进行身份验证 |
limit |
限制此令牌可同时处理的作业数。0(默认)仅表示不限制 |
executor |
选择应如何构建项目 |
shell |
用于生成脚本的shell的名称。默认值取决于平台。 |
builds_dir |
构建将存储在所选执行程序的上下文中的目录(本地,Docker,SSH) |
cache_dir |
构建缓存的目录将存储在所选执行程序(本地,Docker,SSH)的上下文中。如果使用docker执行程序,则此目录需要包含在其volumes参数中。 |
environment |
附加或覆盖环境变量 |
request_concurrency |
限制GitLab新作业的并发请求数(默认值为1) |
output_limit |
设置最大构建日志大小(以KB为单位),默认设置为4096(4MB) |
pre_clone_script |
在克隆Git存储库之前要在Runner上执行的命令。例如,这可以用于首先调整Git客户端配置。要插入多个命令,请使用(三引号)多行字符串或“\ n”字符。 |
pre_build_script |
在克隆Git存储库之后但在执行构建之前要在Runner上执行的命令。要插入多个命令,请使用(三引号)多行字符串或“\ n”字符。 |
post_build_script |
在执行构建之后但在执行之前要在Runner上执行的命令after_script。要插入多个命令,请使用(三引号)多行字符串或“\ n”字符。 |
clone_url |
覆盖GitLab实例的URL。如果Runner无法连接到GitLab上的GitLab暴露自己,则使用。 |
debug_trace_disabled |
禁用该CI_DEBUG_TRACE功能。设置为true时,即使用户CI_DEBUG_TRACE将设置为调试跟踪,也将保持禁用状态true。 |
示例:
1 | [[runners]] |