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 中用户模式和系统模式之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

Gitlab_CI/CD详细过程

Gitlab_CI/CD详细过程

Gitlab_CI/CD详细过程

gitlab-ci-runner安装

Gitlab-CI/CD

Gitlab CI/CD 之 Gitlab Runner Docker Executor 缓存问题