gitlab runner tag
2022-01-04 本文已影响0人
book_02
为了防止某个平台编译机挂掉,导致该平台版本出不了,于是想多部署几台 runner ,使得其中某台runner 挂掉时,另外一台runner还可以工作,不影响出版本。
想到通过tag的方式来实现,配置的时候发现有两个地方可以添加tag:
- 注册runner时,给runner添加tag。不同的runner设置相同的tag
- 在写 .gitlab-ci.yml 时,使用tag关键字来制定
测试之后发现,其中第1种方式可以达到编译机容灾的目的。
1. 给runner添加tag
- 多个runner可以使用同一个tag
- 一个runner可以配置多个tag
所以使用时把多个runner配置有相同的tag可达到编译机容灾的目的。
注册时通过设置 --tag-list
选项来配置tag:(下面是以docker来运行gitlab runner)
docker run --rm -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner register \
--non-interactive \
--executor "docker" \
--docker-image alpine:latest \
--url "http://10.168.1.108:8929" \
--registration-token "aQqLxxoTVCdyin73x86t" \
--description "gitlab-runner" \
--tag-list "docker,localMachine" \
--run-untagged="true" \
--locked="false" \
--access-level="not_protected"
可以在gitlab的ci界面看到runner的tag信息如下:
多个runner之间怎么运行代码,可能需要配置负载均衡的策略。
2. .gitlab-ci.yml的tag
.gitlab-ci.yml的tag另有用途:
yml的多tag是"与"的关系,指定任务在同时有这些tag的runner上运行
官方说明如下: (https://docs.gitlab.com/ee/ci/yaml/)
3. 其他参考
GitLab Runner Tags – Complete Guide for Complex Scenarios
https://www.bitslovers.com/gitlab-runner-tags/