news 2026/7/1 19:30:18

[实战] 阿里云 Linux 3 安装 GitLab Runner 全踩坑记录:解决 Repo 404 及 SSH 模式报错,最终 Shell 模式完美运行

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[实战] 阿里云 Linux 3 安装 GitLab Runner 全踩坑记录:解决 Repo 404 及 SSH 模式报错,最终 Shell 模式完美运行

前言

最近在阿里云服务器(Alibaba Cloud Linux 3)上部署 GitLab Runner,本以为是很简单的yum installregister,结果踩了一路的坑:从 yum 源 404,到新版 Token 注册参数报错,再到 SSH 模式的各种权限和握手失败。

折腾了一圈发现,对于GitLab 和 Runner 在同一台机器的场景,Shell 模式才是最香的。本文记录了完整的解决过程,希望能帮大家避坑。

环境信息

  • 操作系统:Alibaba Cloud Linux 3 (兼容 CentOS 8 / RHEL 8)

  • GitLab 版本:较新版本(使用glrt-开头的新架构 Token)

  • 部署架构:GitLab 和 Runner 部署在同一台服务器上


坑位一:安装时 Yum 源 404 报错

问题描述

在执行官方提供的安装脚本时:

Bash

curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh" | sudo bash

报错提示:

Unable to download repo config...

curl: (22) The requested URL returned error: 404

原因分析

官方脚本无法识别alinux(Alibaba Cloud Linux) 这个发行版 ID,导致拼接下载链接时出错。由于该系统完全兼容 CentOS 8,我们可以强制指定系统版本。

✅ 解决方案

在运行脚本前,强制指定os=eldist=8

Bash

# 强制指定为 RHEL/CentOS 8 环境 curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh" | sudo os=el dist=8 bash # 然后正常安装 sudo yum install gitlab-runner -y

坑位二:SSH Executor 的无尽报错

问题尝试

最初我选择了ssh模式,希望 Runner 通过 SSH 登录本机执行任务。结果配置了一大堆 Key 路径后,报错连连:

  1. 权限错误open /root/.ssh/id_rsa: no such file or directory(gitlab-runner 用户无权访问 root 目录)。

  2. 握手失败ssh: handshake failed: knownhosts: key is unknown(本机连本机也被拦截)。

💡 避坑建议

如果你的 Runner 就跑在目标服务器本机,千万不要用 SSH 模式!不仅配置繁琐,而且效率低。

直接用 Shell 模式,Runner 直接调用系统命令,简单粗暴且稳定。


坑位三:注册时的参数报错 (FATAL: Runner configuration...)

问题描述

使用新版 Token (glrt-xxxxx) 注册时,我想直接在命令行指定 tag 和配置:

Bash

gitlab-runner register --token "glrt-..." --tag-list "build" --run-untagged="true" ...

结果直接报错:

FATAL: Runner configuration other than name and executor configuration is reserved...

原因分析

GitLab 新版架构中,使用 Authentication Token (glrt-) 注册时,禁止在命令行设置 tag、locked、access-level 等参数。这些配置必须注册完成后在 GitLab 网页端设置。

✅ 最终完美的注册命令 (Shell 模式)

Bash

gitlab-runner register \ --non-interactive \ --url "http://你的gitlabIP:端口" \ --token "glrt-你的Token" \ --executor "shell" \ --description "shell-runner-final"

后续关键配置(不做跑不起来)

注册成功后,还没完!因为刚才命令行里不能传参,默认配置可能导致作业一直 Pending。

1. 开启“运行无标签作业”
  1. 进入 GitLab 项目 ->Settings->CI/CD->Runners

  2. 点击 Runner 旁边的编辑(铅笔图标)

  3. 勾选"Run untagged jobs"

  4. 保存。

2. 正确启动服务

不要使用 gitlab-runner run(这是前台运行,关窗口就断了)。

生产环境请使用:

Bash

# 启动后台服务 gitlab-runner start # 确认状态为 Service is running gitlab-runner status

验证效果

在项目根目录新建.gitlab-ci.yml进行测试:

YAML

stages: - test test-job: stage: test script: - echo "Shell Runner 部署成功!" - whoami - date

提交代码后,查看流水线日志,成功输出!

总结

  1. 系统兼容:阿里 Linux 3 安装时需欺骗脚本os=el dist=8

  2. 模式选择:本机部署首选Shell模式,避开 SSH 的坑。

  3. 新版语法:新 Token 注册时,命令行只管注册,配置去网页端点。

  4. 服务管理:用start而不是run

希望这篇记录能帮到大家,少走弯路!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/1 13:22:37

沙虫病毒与供应链安全:软件供应链成为网络安全的阿喀琉斯之踵

无论是React2Shell、沙虫病毒(Shai-Hulud)还是XZ Utils漏洞,软件供应链安全正面临多重风险威胁。现代应用程序由众多组件构成,每个组件连同其开发环境都可能成为攻击入口。无论企业是自主开发代码还是依赖第三方供应商&#xff0c…

作者头像 李华
网站建设 2026/7/1 17:03:03

水厂安全监测管理系统:御控物联网方案

在城市化快速发展的今天,供水安全已成为城市生命线的核心保障。然而传统水厂监测依赖人工巡检、数据分散、响应滞后等痛点长期存在。御控物联网水厂安全远程监测系统,正以数字化、智能化技术重塑供水安全监测新范式。深度痛点:传统水厂安全监…

作者头像 李华
网站建设 2026/7/1 13:19:37

51单片机(1)

一、嵌入式与 51 单片机基础认知(一)嵌入式系统概念嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪的专用计算机系统。它广泛应用于智能家居、工业控制、智能穿戴等众多领域,核心特点是针对性强、资源利用…

作者头像 李华
网站建设 2026/7/1 13:19:37

程序员如何转行大模型?一份详尽的学习路线与实战指南,一份详细攻略_转行大模型学习路线

本文为程序员提供大模型领域转行攻略,涵盖明确方向、掌握基础知识、深入学习Transformer架构、预训练微调技术、实践项目、参与开源社区等关键环节。同时提供七个阶段学习路径和免费资源,帮助小白从零开始系统学习大模型技术,构建个人品牌&am…

作者头像 李华
网站建设 2026/7/1 13:32:04

CST电动汽车EMC仿真(三)——初探轴电压

轴电流是影响电机寿命的重要因素之一。正常情况下,轴承的内圈和外圈之间的润滑油膜可以起到绝缘的作用,轴电流接近为零;当轴承内、外圈之间的轴电压增加到一定数值时,尤其在电机启动时,润滑油膜还未稳定形成&#xff0…

作者头像 李华
网站建设 2026/7/1 13:19:54

突破低光照检测瓶颈:PE-YOLO核心技术解析与实战应用

购买即可解锁300+YOLO优化文章,并且还有海量深度学习复现项目,价格仅需两杯奶茶的钱,别人有的本专栏也有!@[TOC] 攻克低照度目标检测难题:PE-YOLO的核心原理与实战指南 在计算机视觉的实际部署中,理想光照条件是一种奢侈。安防监控、自动驾驶夜间感知、医学影像分析、地…

作者头像 李华