惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

SecWiki News
SecWiki News
I
InfoQ
The Cloudflare Blog
人人都是产品经理
人人都是产品经理
博客园 - Franky
T
Tailwind CSS Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
量子位
博客园_首页
罗磊的独立博客
V
V2EX
李成银的技术随笔
大猫的无限游戏
大猫的无限游戏
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
True Tiger Recordings
Vercel News
Vercel News
Cyberwarzone
Cyberwarzone
Cisco Talos Blog
Cisco Talos Blog
F
Fox-IT International blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
M
Microsoft Research Blog - Microsoft Research
Know Your Adversary
Know Your Adversary
爱范儿
爱范儿
The Register - Security
The Register - Security
G
Google Developers Blog
The Hacker News
The Hacker News
Malwarebytes
Malwarebytes
S
Securelist
博客园 - 三生石上(FineUI控件)
Jina AI
Jina AI
T
Threat Research - Cisco Blogs
T
The Exploit Database - CXSecurity.com
S
SegmentFault 最新的问题
博客园 - 叶小钗
F
Fortinet All Blogs
Apple Machine Learning Research
Apple Machine Learning Research
宝玉的分享
宝玉的分享
博客园 - 聂微东
T
Threatpost
博客园 - 【当耐特】
D
Docker
P
Privacy & Cybersecurity Law Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
G
GRAHAM CLULEY
V
Visual Studio Blog
C
Cisco Blogs
IT之家
IT之家
S
Security Archives - TechRepublic
Latest news
Latest news
阮一峰的网络日志
阮一峰的网络日志

陈少文的网站

容器化部署 Hermes Agent 部署 JuiceFS CSI Driver 使用 A2A Gateway 打通多 OpenClaw Loggie 部署与配置 OpenClaw 运维 - 让飞轮转起来 你也可以这样落地 AI Agent - SOPS 篇 AGFS 文件系统性能测试 面向 AI Agent 的文件系统 - AGFS OpenViking 使用与 OpenClaw 集成 如何远程给OpenClaw发送消息 容器化部署 OpenClaw 使用 Skills 和 MCP 扩展 OpenClaw OpenClaw 安装与配置 LVM 日常运维 MinIO 基础设施选型与优化 容器部署 ClickHouse 容器化部署 Redis 容器部署中间件 容器部署多节点 FoundationDB 及运维 使用 HAProxy 代理 MinIO 及性能测试 多机多盘 MinIO 集群在不同纠删码配置下的性能测试 多机多盘 minio 集群不同纠删码配置在 IPoIB 下的性能测试 MinIO 多节点多盘部署与运维 Cursor 之下,何以立足 你也可以这样落地 AI Agent - MCP 篇 阿里云 eRDMA 测试及 PD 分离应用部署 你也可以这样落地 AI Agent - 运维事件篇 常见的几种 LLM Agent 架构 你也可以这样落地 AI Agent - 案例篇 ext4、xfs、zfs、btrfs 在 RAID6 下的性能测试 RAID 下 ZFS 运维操作 RAID 下 XFS 运维操作 RAID 下 Btrfs 运维操作 xfs 在各种 RAID 下的性能测试 RAID 存储技术 使用 LLaMA-Factory 微调 Qwen3 模型 vLLM 部署 PD 分离应用 使用 lmcache 能显著改善模型推理的 TTFT 什么是 Prefix Cache NVIDIA RTX 5090 推理测试 什么是模型量化 Kubernetes 基础环境要求 如何升级 Kubernetes 节点的 cgroup 版本 在服务器上使用 claude-code 常用 NPU 运维及故障处理 NVIDIA DCGM 使用指南 如何清理僵尸进程 使用 VLLM Benchmark 进行模型性能测试 眼看他拔地起,眼看他化作泥 - KubeSphere 在 Kubernetes 集群部署 Dragonfly history 命令使用 AI 相关论文 在服务器上使用 Gemini CLI Ascend DMI 工具使用指南 Kubernetes 下开源的 GPU 虚拟化项目 FoundationDB 数据备份与恢复 认知觉醒 给 Node Exporter 添加抓取凭证 部署 smokeping-prober 探测网络质量 Opscli 支持 MCP 提供 Cline\Cursor 集成 kube-proxy 异常导致节点上的 Pod 无法访问 Service 为什么 NFS Over RDMA 比 NFS 的 FIO 大块读性能好很多 3FS 关键技术和设计 DeepSeek 3FS 运维指南 容器化部署 DeepSeek 3FS 存储系统 3FS 的一些性能测试 在 Kubernetes 中使用 Fluid 挂载 3FS 存储及性能测试 NFS Over RDMA kubectl logs 无法查看 Pod 日志报错 NotFound 使用 Dante 提供 SOCKS5 转发 使用 Calico 限制 Pod 的带宽 分布式计算框架 Ray 以 Qwen 为例,学习大模型的结构 NVIDIA 环境变量配置 Ascend 环境变量配置 Fluid 下的 Juicefs 企业版维护 使用 vLLM 进行模型推理 使用 Nerdctl 构建多架构镜像 使用 vLLM 应用验证推理节点 AI 应用开发技术栈 在 Kubernetes 部署 Jumpserver 跳板机 使用 Ops 项目查看并监控集群事件 使用 Fluid 和 S3FS 对接 S3 存储及性能测试 使用 Fluid 对接 S3 存储及性能测试 使用 TensorBoard 可视化 PyTorch 训练过程 使用 PyTorch 在 MNIST 数据集训练模型 Ubuntu 切换指定版本的内核 MPI 通信原语及 Python 编程使用 Ops 发布 v1.0.0 版本 常见的几种网络拓扑结构 RDMA 技术 SR-IOV 技术 InfiniBand 网络及常用命令 使用 Fluid 对接 OBS 存储及性能测试 使用 Iceberg 和 Spark 在 Kubernetes 上处理数据 GPU 主机如何开启 GDS 什么是 Token 什么是 FLOPs 什么是 PD 分离 Kubernetes 下的 DLRover 工作流程分析
GitLab CI 配置 Runner
2018-05-08 · via 陈少文的网站

1. 下载并配置 Runner

1.1 下载 Runner

GitLab-CI 的 Runner 是一个 Go 写的程序包,可以去官网下载到本地。

1
2
yum install -y wget
wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64

增加执行权限

1
chmod +x /usr/local/bin/gitlab-runner

1.2 新增 runner 用户

运行 Runner 时,以 runner:runner 账户运行。

1
2
groupadd -g 1234 runner
useradd runner -u 1234 -g 1234

1.3 修改 pip 源

1
2
3
4
cat /etc/pip.conf
[global]
index-url= http://pypi.doubanio.com/simple/
trusted-host = pypi.doubanio.com

1.4 创建工作目录

1
mkdir -p /data/gitlab-data

2 注册 Runner

在项目的settings/ci_cd 页面,或者管理员的 /admin/runners 页面都可以找到 token。

token 是 Runner 注册的凭证。如果是从项目获取的 token,那么这个 Runner 属于此项目,可以通过配置允许其他项目也可以使用。如果是从管理员页面获取的 token ,那么这个 Runner,所有项目可见,都可以使用。

下面以项目的 Runner 为例:

2.1 获取 token

在项目的 settings/ci_cd 页面

需要获取图中模糊处理的两个参数:

2.2 注册 Runner

运行下面的命令,并按照提示输入相关信息。

1
/usr/local/bin/gitlab-runner register
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):

输入 gitlab 的 url 地址

1
http://gitlab.yourdomain.com/
Please enter the gitlab-ci token for this runner:

输入 token

1
XXXXXXXXXXXXXXXXXXX
Please enter the gitlab-ci description for this runner:

输入 Runner 描述

1
MyShellRunner
Please enter the gitlab-ci tags for this runner (comma separated):

输入 Runner 的标签:

1
shell, linux
Whether to run untagged builds [true/false]:

是否运行在没有 tag 的 build 上面。在配置 gitlab-ci 时,会有很多 job,每个 job 可以通过 tags 属性来选择 Runner。这里为 true 表示如果 job 没有配置 tags,也执行。

1
true
Whether to lock the Runner to current project [true/false]:

是否锁定 Runner 到当前项目

1
false
Please enter the executor: parallels, ssh, virtualbox, docker-ssh+machine, kubernetes, docker, docker-ssh, shell, docker+machine:

选择 executor,这里列出了很多 executor

1
shell
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!

3 运行 Runner

1
/usr/bin/gitlab-runner run --working-directory /data/gitlab-data --config /etc/gitlab-runner/config.toml --service gitlab-runner --user runner >/dev/null 2>&1 &

这里为了不修改 yml 配置,从之前的 Runner 迁移到 新 Runner。直接禁用共享的 Runner,使用 Specific Runner。如果愿意修改 yml,可以通过 tags 参数来控制执行的 Runner。

剩下的就是在新的 Runner 上,配置合适的 CI 环境,比如 node、npm 即可。

查看默认启动配置

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
cat /etc/systemd/system/gitlab-runner.service

[Unit]
Description=GitLab Runner
After=syslog.target network.target
ConditionFileIsExecutable=/usr/bin/gitlab-runner

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

Restart=always
RestartSec=120

[Install]
WantedBy=multi-user.target

还可以通过 systemctl 管理 Runner

1
systemctl restart gitlab-runner

4. 一些问题

4.1 注销 Runner

需要先找到 config.toml 文件中的 token,需要注意的是,这里的 token 和注册时不一样。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
cat /etc/gitlab-runner/config.toml
concurrent = 1
check_interval = 0

[[runners]]
  name = "myshell"
  url = "http://gitlab.yourdomain.com/"
  token = "XXXXXXXXXXxxxxxxxxxxxxx"
  executor = "shell"
  [runners.cache]
1
gitlab-runner unregister --url http://gitlab.yourdomain.com/ --token XXXXXXXXXXxxxxxxxxxxxxx

4.2 SVN Can’t convert string from ‘UTF-8’

解决svn: Can’t convert string from ‘UTF-8’ to native encoding问题

1
2
locale
export LC_ALL=zh_CN.UTF-8

5. 参考