You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitLab非root自托管Runner提示‘No such file or directory’无法克隆项目

GitLab非root自托管Runner无法克隆项目的问题排查与解决

问题背景

以守护进程方式运行GitLab非root自托管Runner(使用systemd管理),Runner已完成注册,但执行任务时无法克隆项目,报错提示目标目录不存在。

相关配置与日志信息

systemd服务配置

$ cat /etc/systemd/system/gitlab-runner-ansible.service
[Unit]
Description=GitLab Runner as ansible
After=syslog.target network.target
ConditionFileIsExecutable=/usr/local/bin/gitlab-runner

[Service]
StartLimitInterval=5
StartLimitBurst=10
ExecStart=/usr/local/bin/gitlab-runner "run" "--working-directory" "/home/ansible" "--config" "/home/ansible/.gitlab-runner/config.toml" "--service" "gitlab-runner-ansible" "--syslog" "--user" "ansible"

Restart=always
RestartSec=120

[Install]
WantedBy=multi-user.target

Runner注册状态

$ gitlab-runner list
Runtime platform                                    arch=amd64 os=linux pid=1206452 revision=de7731dd version=12.1.0
Listing configured runners                          ConfigFile=/home/ansible/.gitlab-runner/config.toml
orc2_production                                     Executor=shell Token=secret-token URL=https://my.gitlab.com/

报错日志

journalctl日志

Apr 19 17:34:28 svko-ilcm03 su[1205544]: (to ansible) root on none
Apr 19 17:34:28 svko-ilcm03 su[1205544]: pam_unix(su:session): session opened for user ansible(uid=1001) by (uid=0)
Apr 19 17:34:28 svko-ilcm03 su[1205544]: pam_unix(su:session): session closed for user ansible
Apr 19 17:34:28 svko-ilcm03 gitlab-runner-ansible[1204663]: WARNING: Job failed: exit status 1                  duration=209.648477ms job=82078 project=2705 runner=Psx6ypMS
Apr 19 17:34:28 svko-ilcm03 gitlab-runner[1204663]: WARNING: Job failed: exit status 1                  duration=209.648477ms job=82078 project=2705 runner=Psx6ypMS
Apr 19 17:34:28 svko-ilcm03 gitlab-runner-ansible[1204663]: ERROR: Failed to process runner                     builds=0 error=exit status 1 executor=shell runner=Psx6ypMS
Apr 19 17:34:28 svko-ilcm03 gitlab-runner[1204663]: ERROR: Failed to process runner                     builds=0 error=exit status 1 executor=shell runner=Psx6ypMS

GitLab网页界面错误

Running with gitlab-runner 12.1.0 (de7731dd)
  on orc2_production Psx6ypMS
Using Shell executor... 00:00
Running on svko-ilcm03... 00:00
bash: line 106: cd: /home/ansible/builds/Psx6ypMS/0/ilcm/orc2: No such file or directory 00:00
ERROR: Job failed: exit status 1

问题原因

核心问题是**ansible用户对/home/ansible目录没有足够的权限**,导致Runner无法在该目录下创建builds子目录及后续项目克隆路径,最终因无法进入目标目录而克隆失败。

解决步骤

  1. 修复目录权限
    执行命令确保ansible用户拥有/home/ansible的完全控制权:

    sudo chown -R ansible:ansible /home/ansible
    sudo chmod -R u+rwx /home/ansible
    
  2. 验证权限有效性
    切换到ansible用户,手动创建测试目录验证权限:

    su - ansible
    mkdir -p /home/ansible/builds/test/0/test/project
    cd /home/ansible/builds/test/0/test/project
    

    若操作无报错,说明权限问题已解决。

  3. 重启Runner服务
    权限修复后,重启服务使配置生效:

    sudo systemctl daemon-reload
    sudo systemctl restart gitlab-runner-ansible.service
    
  4. 测试任务执行
    在GitLab项目中重新触发CI/CD任务,确认Runner可正常克隆项目并执行后续流程。

内容的提问来源于stack exchange,提问作者Raniere Silva

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 11:42:27