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

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

  • 前言
    • 问题发现
    • 问题解决
      • 方法一:修改用户权限
      • 方法二:重新安装将用户更改为root

前言

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执行脚本命令无权限_第1张图片

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

问题解决

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

在这里插入图片描述

方法一:修改用户权限

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

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

gitlab-runner ALL=(ALL)   NOPASSWD: ALL

【汇总】解决GitLab-Runner执行脚本命令无权限_第2张图片
保存退出后,在命令中增加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

【汇总】解决GitLab-Runner执行脚本命令无权限_第3张图片
可看到执行成功。

方法二:重新安装将用户更改为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-Runner执行脚本命令无权限_第4张图片

然后重新执行.gitlab-ci.yml文件。
【汇总】解决GitLab-Runner执行脚本命令无权限_第5张图片

可看到执行成功。

你可能感兴趣的:(GitLab,专治疑难杂症,gitlab,java,开发语言)