更改Gitlab CI Runner用户

Pum*_*eed 31 gitlab gitlab-ci gitlab-ci-runner

目前,当我在GitlabCI中开始构建时,它在gitlab-runner用户下运行.我想将其改为公司的内部用户.我没有找到/etc/gitlab-runner/config.toml的任何参数来解决这个问题.

我目前的配置:

concurrent = 1
[[runners]]
  name = "deploy"
  url = ""
  token = ""
  executor = "shell"
Run Code Online (Sandbox Code Playgroud)

Tho*_*aux 53

跑步ps aux你可以看到:

/usr/bin/gitlab-ci-multi-runner run --working-directory /home/gitlab-runner --config /etc/gitlab-runner/config.toml --service gitlab-runner --syslog --user gitlab-runner
Run Code Online (Sandbox Code Playgroud)

服务正在运行时带有选项--user.

所以让我们改变这一点,这取决于什么发行版.你正在运行它.如果是systemd,则有一个文件:

/etc/systemd/system/gitlab-runner.service:

[Service]
StartLimitInterval=5
StartLimitBurst=10
ExecStart=/usr/bin/gitlab-ci-multi-runner "run" "--working-directory" "/home/gitlab-runner" "--config" "/etc/gitlab-runner/config.toml" "--se
Run Code Online (Sandbox Code Playgroud)

宾果,我们现在改变这个文件:

gitlab-runner uninstall

gitlab-runner install --working-directory /home/ubuntu --user ubuntu
Run Code Online (Sandbox Code Playgroud)

重新启动机器或重新加载服务(即systemctl daemon-reload),等等!

  • 这将返回 - `FATAL: 已提供标志但未定义:-user` (3认同)
  • @letsc`sudo gitlab-runner install`时不会报告这个'-user'错误 (2认同)

Jan*_*uka 11

注册后gitlab-runner(是的,它将安装在用户gitlab-runner和工作目录下/home/gitlab-runner),您可以执行以下命令来更改运行者的用户

gitlab-runner uninstall
Run Code Online (Sandbox Code Playgroud)
gitlab-runner install --working-directory <existing-path> --user <any-existing-user>

# eg: gitlab-runner install --working-directory /home/ec2-user --user ec2-user
Run Code Online (Sandbox Code Playgroud)

然后重新启动服务

service gitlab-runner restart
Run Code Online (Sandbox Code Playgroud)

注意:您不需要/etc/systemd/system/gitlab-runner.service对此进行编辑,因为一旦服务按上述方式重新启动,它就会更新

要检查配置是否反映,请运行

ps aux | grep gitlab
Run Code Online (Sandbox Code Playgroud)


rpt*_*t57 6

请注意,使用特定用户(--user)进行安装时,每次更新时,它将恢复为原始的systemd脚本,因此,将恢复为使用gitlab-runner用户。

为了使用户能够在更新之间进行更改,可以使用systemd覆盖(centos7)使用以下步骤(假设服务位于/etc/systemd/system/gitlab-runner.service):

  1. 创建一个/etc/systemd/system/gitlab-runner.service.d目录。
  2. 创建一个/etc/systemd/system/gitlab-runner.service.d/exec_start.conf包含以下内容的文件:

    [Service]
    ExecStart=
    ExecStart=/usr/lib/gitlab-runner/gitlab-runner "run" "--working-directory" "/home/ubuntu" "--config" "/etc/gitlab-runner/config.toml" "--service" "gitlab-runner" "--syslog" "--user" "ubuntu"
    
    Run Code Online (Sandbox Code Playgroud)
  3. 执行 systemctl daemon-reload


现在要检查它是否正常工作,您可以执行以下操作:

  1. 重新安装GitLab Runner软件包gitlab-runner uninstall,然后gitlab-runner install

  2. 检查ps aux | grep gitlab并确认正在使用正确的用户

来源:https : //gitlab.com/gitlab-org/gitlab-runner/issues/3675