我最近想将我为自托管 Gitlab 实例设置的 Gitlab 运行器从项目运行器(即仅为项目运行作业)移动到组运行器(因此它也可以为其他项目运行作业)同一组)。我想保留 /etc/gitlab-runner/config.toml
我辛辛苦苦手写的设置。
幸运的是我备份了 config.toml
, 因为 sudo gitlab-runner unregister -t ... -u ...
从 config.toml
中删除了整个配置.
为了获得在组而不是项目下注册的相同配置,我必须:
sudo gitlab-runner register \
--non-interactive \
--url <URL HERE>
--registration-token <TOKEN HERE> \
--executor docker \
--docker-image docker:dind \
--paused
config.toml
这创建并复制了运行者的个人运行者 token 。config.toml
用我想要的配置。config.toml
并插入新的个人运行者 token 。sudo systemctl start gitlab-runner
)。即使完成了所有这些操作,Gitlab 实例仍然会在虚拟配置中以它注册的名称看到运行器,而不是
config.toml
中的名称。 .试用
--config
gitlab-runner register
的选项根本没用;我认为这只是告诉它在哪里保存配置。它仍然提示我使用新设置,而不是从 config.toml
中读取。我指着它。关于运行者注册的 Gitlab 文档都是围绕一个镜头写的
gitlab-runner register
带有大量选项的命令,这些选项基本上在命令行上指定了整个配置。我真的不想翻译我的 config.toml
手动进入命令行,然后转身并重建它(当然,减去任何注释)。我不敢相信这真的是使用新项目/组/Gitlab 实例重新注册运行器或从保存的配置创建运行器副本的正确工作流程。我在这里想念什么?如何从现有的
config.toml
创建新的 Gitlab 运行器文件?
最佳答案
从我可以在 GitLab 文档中找到的内容和他们拥有的一些 Unresolved 问题中,没有一种简单的方法可以做你想做的事。
这是一个描述类似于您想要的内容的问题:
https://gitlab.com/gitlab-org/gitlab-runner/issues/3540
以下是我认为 GitLab 如何注册运行者的目标:
https://gitlab.com/gitlab-org/gitlab-ce/issues/40693
我相信您无法从 .toml 文件中更改的唯一内容是运行者的名称,也可能不是标签。然后名称仅在您注册运行者时创建。我在某处读到了一些可以更改共享运行者标签的内容,但我现在找不到。
这是使注册过程更加自动化的解决方法:
https://gitlab.com/gitlab-org/gitlab-runner/issues/3553#note_108527430
他使用了这个 API:
curl --request POST "https://gitlab.com/api/v4/runners" --form "token=<registration-token>" --form "description=test-1-20150125-test" --form "tag_list=ruby,mysql,tag1,tag2"
然后他得到了以下回复:
{"id":401513,"token":"<runner-token>"}
然后,他可以将 runner-token 注入(inject)到他已经预先制作的 .toml 文件中。
对您来说,可以使用您的组的注册 token ,然后写入运行者的描述/名称和标签。然后,您可以重新使用您的 config.toml 并且只更改 runner-token,它应该可以工作。
关于gitlab - 如何使用预制的 config.toml 注册/重新注册 Gitlab Runner?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54658359/