【汇总】解决GitLab-Runner执行脚本命令无权限

前言

GitLab 是用于协作处理代码的开源软件。

使用细粒度访问控制管理 git 存储库,确保代码安全。

执行代码审查并增强与合并请求的协作。

问题发现

.gitlab-ci.yml配置项目部署脚本时,发现没有权限执行。

build: 
  script:
    - mvn clean install
    - pwd
    - scp target/maven-test-1.0-SNAPSHOT.jar /home/maven-test/test.jar
    
  tags:
    - test
  only:
    - master

在这里插入图片描述

将网上一些解决方案,特此记录。

问题解决

我们可以看到gitlab-runner文件所属的用户是gitlab-runner,运行时gitlab-runner用户只能再gitlab-runner文件里操作,所以没有权限操作root的文件,知道了原因后问题也就好解决了。

在这里插入图片描述

方法一:修改用户权限

修改用户权限有很多方法,这里介绍网上看到两种常见的。

编辑vim /etc/sudoers文件,文件中找到root ALL=(ALL) ALL配置,在下面新增一行用户权限(允许gitlab-runner用户不用输入密码可执行任意路径下的任意命令 ):

gitlab-runner ALL=(ALL)   NOPASSWD: ALL

在这里插入图片描述
保存退出后,在命令中增加sudo命令

build: 
  script:
    - mvn clean install
    - pwd
    - sudo scp target/maven-test-1.0-SNAPSHOT.jar /home/maven-test/test.jar
    
  tags:
    - test
  only:
    - master

在这里插入图片描述
可看到执行成功。

方法二:重新安装将用户更改为root

先卸载gitlab-runner。

./gitlab-runner uninstall

然后再重新安装,并且设置用户为root。

./gitlab-runner install --user=root --working-directory=/home/gitlab-runner

执行启动。

./gitlab-runner start

执行ps aux|grep gitlab-runner命令,查看当前启动的用户角色。

在这里插入图片描述
可以把主目录的文件权限也改成root。

chown -R root:root gitlab-runner/

在这里插入图片描述

然后重新执行.gitlab-ci.yml文件。
在这里插入图片描述

可看到执行成功。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值