GitLab Runner CI/CD 中用户模式和系统模式之间的区别
Posted
技术标签:
【中文标题】GitLab Runner CI/CD 中用户模式和系统模式之间的区别【英文标题】:difference between user-mode and system-mode in GitLab Runner CI/CD 【发布时间】:2019-02-12 07:38:23 【问题描述】:在系统模式下配置 GitLab 运行器时,服务没有启动,但在用户模式下,服务运行良好。
在 GitLab 运行器文档中,他们没有简要介绍目的 https://docs.gitlab.com/runner/commands/#super-user-permission
我理解的唯一区别是路径:
用户模式 = /Users/ayufan/.gitlab-runner/config.toml
系统模式 = /etc/gitlab-runner/config.toml
谁能解释一下系统模式如何影响结果。
更新: 我没有从 gitlab 论坛得到答案,但我在这里阅读了一些笔记https://medium.com/static-object/how-to-set-up-gitlab-ci-for-ios-in-a-few-relatively-simple-steps-56a0d88d0272,我了解到这是他们中的大多数人面临的问题。
【问题讨论】:
你的问题值得问,我已经投了票,我已经回答了,并解释了系统模式和用户模式的区别,你可以标记为接受以联系其他人吗? 【参考方案1】:用户模式与系统模式
在user mode
中,您注册的跑步者将仅适用于当前用户。如果您从其他用户登录,则运行器将无法用于您的管道,如果您尝试运行管道,它将是 stuck
,因为没有可用的运行器工作。
在system mode
中,无论您从哪个用户登录,只要机器处于开启状态,您注册的跑步者就可以跑步和工作。
在系统模式下工作
要在system mode
中注册跑步者,您只需在register
命令前加上sudo
,如下所示:
sudo gitlab-runner register
验证哪些跑步者在system mode
工作:
sudo gitlab-runner verify
【讨论】:
虽然这个答案大部分是正确的,但我想补充两点:1. 在用户模式下,作业必须使用 gitlab-runner run 手动运行 2. 由于系统模式以 root 权限运行,恶意gitlab-ci.yml 代码可能会损害您的系统。值得一提,查看docs.gitlab.com/runner/security以上是关于GitLab Runner CI/CD 中用户模式和系统模式之间的区别的主要内容,如果未能解决你的问题,请参考以下文章