专栏首页Super 前端Gitlab--CI执行用户问题

Gitlab--CI执行用户问题

19年团队使用了 Gitlab-CI,做一些自动构建流程。最近团队小伙伴自己尝试搭建流程,参照了我之前发的文章 – Gitlab–CI。但过程中,遇到了用户执行权限的问题。于是有了下面的内容…

问题描述

按照文章(https://ligang.blog.csdn.net/article/details/89785856)中说明,操作完成发现了权限问题。

问题复盘

首先要明确,CI 默认执行用户为 gitlab-runner

$ ps aux | grep gitlab

/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

文章中包括 gitlab-runner 服务启动在内的,所有操作都是使用 sudo。这也是为什么,文章中,将 gitlab-runner 免密使用sudo命令,并在脚本的命令前加上 sudo 的要求。

# 切换到root账号下
$ su
# 添加sudo文件的写权限
$ chmod u+w /etc/sudoers
# 编辑sudoers文件
$ vi /etc/sudoers
# 添加如下内容 允许用户gitlab-runner执行sudo命令,并且在执行的时候不输入密码
gitlab-runner ALL=(ALL) NOPASSWD: ALL
# 撤销sudo文件写权限
$ chmod u-w /etc/sudoers

官方关于权限的说明,可参照:Super-user permission

上述内容,是团队小伙伴所忽略的。当然,小伙伴提出了另外一种方式,使用 root 执行。

  1. 修改 /etc/systemd/system/gitlab-runner.service [Service] ExecStart=/usr/bin/gitlab-ci-multi-runner "run" "--working-directory" "/工作目录" "--config" "/etc/gitlab-runner/config.toml" "--service" "gitlab-runner" "--syslog" "--user" "root" arameter Default Description –service gitlab-runner Specify service name to use –config See the configuration file Specify a custom configuration file to use –syslog true Specify if the service should integrate with system logging service –working-directory the current directory Specify the root directory where all data will be stored when builds will be run with the shell executor –user root Specify the user which will be used to execute builds –password none Specify the password for the user that will be used to execute the builds
  2. 重新加载配置文件,并启动 systemctl daemon-reload systemctl restart gitlab-runner

综上,欢迎大家积极讨论~~~

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • JavaScript提升(你不知道的JavaScript)

    最近,在读《你不知道的JavaScript(上卷)》这本书,书中详细阐述了JavaScript众多重要但经常被大家忽略的点,在此强烈推荐!!!书中,第4章讲述...

    奋飛
  • transform、transition方法详解及scale、zoom差异性说明

    使用skew方法来实现文字或图像的倾斜处理,在参数中分布指定水平方向上的倾斜角度与垂直方向上的倾斜角度。

    奋飛
  • JavaScript客户端存储

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。

    奋飛
  • sqoop概述

    sqoop,即SQL To Hadop,目的是完成关系型数据库导入导出到Hadoop

    爱学习的孙小白
  • 一些通过SAP ABAP代码审查得出的ABAP编程最佳实践

    1. 这两个IF ELSE分支里检测的条件其实逻辑上来说都是同一类,应该合并到一个IF分支里进行检查:

    Jerry Wang
  • 史上最全Linux提权后获取敏感信息方法

    在本文开始之前,我想指出我不是专家。据我所知,在这个庞大的区域,没有一个“神奇”的答案。下面是一个混合的命令做同样的事情,在不同的地方,或只是一个不同的眼光来看...

    FB客服
  • 这些命令你用过多少?

    在拿到一个 webshell 之后,大家首先会想到去把自己的权限提升到最高,windows 我们会提升到 SYSTEM 权限,而 Linux 我们会提升到 ro...

    信安之路
  • 排障集锦:九九八十一难之第十一难!mysql 主从同步 Last_IO_Error: Got fatal error 1236 from master

    Last_IO_Error: Got fatal error 1236 from master when reading data from binary lo...

    不吃小白菜
  • PAT 1003 Emergency (25分) Dijstra

    As an emergency rescue team leader of a city, you are given a special map of you...

    vivi
  • JS面向对象笔记 转

    0、匿名函数定以后直接调用:(function(numA, numB) { alert(numA + numB); })(3,4);//弹窗7

    双面人

扫码关注云+社区

领取腾讯云代金券