vault backup: 2026-04-22 22:02:30

This commit is contained in:
2026-04-22 22:02:30 +08:00
parent 6697251e2c
commit 98f29c8160

View File

@@ -313,3 +313,185 @@ if __name__ == "__main__":
D:\UnrealHorde\ 目录虽然存在但是空的(已被回收站中有删除痕迹),实际部署工作都在 C:\Users\loujiajie\horde-deploy\
完成。
# 当前状态以及后续部署
> 更新日期2026-04-22
## 架构概览
```
┌─────────────────────────────────────────────────────────────────────┐
│ Horde Server (Linux Docker) │
│ 10.219.36.57 │
│ ┌───────────┐ ┌──────────────────┐ ┌───────┐ ┌──────────────┐ │
│ │ MongoDB │ │ Horde Server │ │ Redis │ │ Nginx │ │
│ │ :27017 │ │ :5001→5000 │ │ :6379 │ │ :5000(未用) │ │
│ │ (7.0.5) │ │ :5002 (gRPC) │ │(6.2) │ │ │ │
│ └───────────┘ └──────────────────┘ └───────┘ └──────────────┘ │
│ Docker Compose: /home/netease/docker/UnrealHorde/ │
│ 数据目录: ./data/server.json, ./data/globals.json │
└─────────────────────────────────────────────────────────────────────┘
│ :5001 HTTP API │ :5002 gRPC
▼ ▼
┌──────────────────┐ ┌──────────────────────┐
│ Agent 1 (本机) │ │ Agent 2 (远程) │
│ HIH-D-X41334 │ │ HIH-D-X13864 │
│ 10.219.103.35 │ │ 10.219.32.45 │
│ Ryzen 9 9900X │ │ Ryzen 9 9900X │
│ 64GB RAM │ │ 62GB RAM │
│ Windows 11 │ │ Windows 11 │
│ UBA 发起方 │ │ UBA 远程 Worker │
│ 端口: 1345(入站) │ │ 端口: 7000-7002(入站)│
└──────────────────┘ └──────────────────────┘
```
## 当前已完成配置
### Horde Server (v5.7.0-46863086)
- **部署方式**: Docker Compose (horde-server + mongodb + redis + nginx)
- **访问地址**: http://10.219.36.57:5001 (Dashboard + API)
- **gRPC 端口**: 5002 (Agent 通信)
- **认证方式**: Anonymous免登录已移除 OIDC
- **管理员**: loujiajie
- **遥测**: MongoDB 存储1天保留
### Horde Agent
| 属性 | Agent 1 (本机) | Agent 2 (远程) |
|------|---------------|---------------|
| ID | HIH-D-X41334 | HIH-D-X13864 |
| IP | 10.219.103.35 | 10.219.32.45 |
| CPU | AMD Ryzen 9 9900X (12C/24T) | AMD Ryzen 9 9900X (12C/24T) |
| RAM | 64GB | 62GB |
| GPU | RTX 5070 | RTX 5070 |
| 安装路径 | `C:\Program Files\Epic Games\Horde\Agent\` | 同左 |
| Server URL | 注册表配置,非 JSON | 同左 |
| Pool | Win-UE5 | Win-UE5 |
| 注册方式 | enrollment token | 同左 |
### UBA 远程分布式编译
- **状态**: 已验证可用
- **效果**: 91 个任务分发到远程机器,编译耗时 58.94s vs 本机 70.74s(提升约 17%
- **防火墙端口要求(双向)**:
- 发起方 (本机): **1345-1400 入站** — UBA SessionServer 监听,远程 UbaClient 连回
- 远程 Worker: **7000 入站** (Compute)、**7001 入站** (UbaAgent Listen)、**7002 入站** (Proxy)
- **远程机器依赖**: 已安装 MSVC Build Tools (14.44.35207) + Windows SDK
### 已加载的 Server 插件
| 插件 | 状态 | 说明 |
|------|------|------|
| tools | 已加载 | 工具分发Agent、UGS 安装包等) |
| build | 已加载 | CI/CD 构建(未配置 project/stream |
| storage | 已加载 | 内容存储(默认文件系统后端) |
| compute | 已加载 | 远程计算/UBA已在使用 |
| symbols | 已加载 | 符号服务器(未配置) |
| secrets | 已加载 | 密钥管理(未配置) |
| ddc | 已加载 | Derived Data Cache未配置 |
| analytics | 已加载 | 编辑器遥测分析(未配置) |
## 配置文件位置
### 服务器端 (10.219.36.57)
- Docker Compose: `/home/netease/docker/UnrealHorde/docker-compose.yml`
- Server 配置: `/home/netease/docker/UnrealHorde/data/server.json`(重启生效)
- Global 配置: `/home/netease/docker/UnrealHorde/data/globals.json`(热重载)
- Nginx 配置: `/home/netease/docker/UnrealHorde/nginx/nginx.conf`(当前未做反向代理)
### Agent 端 (Windows)
- 安装目录: `C:\Program Files\Epic Games\Horde\Agent\`
- Server URL: **通过注册表配置**,非 appsettings.json
- 路径: `HKLM\SOFTWARE\Epic Games\Horde\AgentSettings``server`
- Agent 日志: `%ProgramData%\Epic Games\Horde\Agent\Logs\`
## 后续可部署功能
### 优先级 1: Perforce CI/CD 集成(如果需要自动化构建)
**价值**: 每次 P4 提交自动触发编译+测试、Preflight 预提交检测、UGS 预编译 Editor 分发
**前置条件**: 需要 Perforce Server公司已有 `ssl:inner02-commit.perforce.nie.netease.com:1667`
**配置方式**: 修改 `globals.json`
```json
{
"plugins": {
"build": {
"perforceClusters": [{
"name": "Default",
"servers": [{ "serverAndPort": "ssl:inner02-commit.perforce.nie.netease.com:1667" }],
"credentials": [{ "userName": "horde-svc", "password": "xxx" }]
}],
"projects": [{
"id": "farming-game",
"path": "farming-game.project.json"
}]
}
}
}
```
还需要编写 `project.json``stream.json` 定义构建任务(可参考 `/app/Defaults/ue5.project.json` 模板)。
**注意**: Horde 仅支持 Perforce Streams不支持传统分支。
### 优先级 2: Editor Telemetry / Analytics零外部依赖
**价值**: 可视化团队编译时间、Shader 编译、Editor 启动时间等指标
**UE 项目端**`Config/DefaultEngine.ini` 添加:
```ini
[StudioTelemetry.Provider.HordeAnalytics]
ProviderModule=AnalyticsET
APIKeyET=HordeAnalytics.Dev
APIServerET=http://10.219.36.57:5001/
APIEndpointET=api/v1/telemetry/engine
UsageType=EditorAndClient
```
**Horde 端**`globals.json` 添加:
```json
{
"plugins": {
"analytics": {
"stores": [{
"id": "engine",
"include": ["$(HordeDir)/Defaults/default-metrics.telemetry.json"]
}]
}
}
}
```
### 优先级 3: DDC 共享缓存(多人协作时有价值)
**价值**: 避免每台机器重复编译 Shader、重复 Cook Asset
**两种方案**:
1. **使用 Horde 内置 DDC 端点** — Horde Server DDC 插件已加载,配置 UE 指向即可
2. **部署独立 Zen DDC Server** — 更适合大规模团队,独立服务
**评估**: 当前 2 台机器做 C++ 编译为主DDC 主要优化 Shader/Asset 场景。团队扩大后优先考虑。
### 优先级 4: UGS (UnrealGameSync)
**价值**: 美术无需本地编译 Editor直接从 Horde 下载预编译二进制
**前置条件**: 必须先配好 Perforce CI/CD 集成(需要 Incremental Build 任务产出 PCB
**安装**: Horde Dashboard → Tools → Downloads 下载 UGS 安装包,安装时选 "Horde" 并填写 Server URL
### 优先级 5: 其他(按需)
| 功能 | 何时需要 | 配置复杂度 |
|------|---------|-----------|
| **Symbol Server** | 需要分析 crash dump 时 | 低 — globals.json 加 symbols store |
| **Secrets 管理** | 启用 CI/CD 需要存凭据时 | 低 — globals.json 加 secrets 条目 |
| **Storage 外部后端** | 构建产物/日志量大时 | 中 — 可配 S3/Azure/NFS 替代本地磁盘 |
| **Compute 网络优化** | 多网段 Agent 时 | 低 — globals.json 按 CIDR 配置网络 |
| **HTTPS + OIDC** | 需要安全认证时 | 高 — 需配 nginx 反向代理 + SSL + OIDC redirect_uri 注册 |
## 已知问题
1. **Nginx 未配置**: 当前 nginx 容器使用默认配置,未做反向代理。如需 HTTPS 需重新配置。
2. **MapViewOfFile 分页错误**: 本机编译时偶发 9-38 次 paging error可能需增大 page file。
3. **Agent HIH-D-X13864 (远程) 经常 Offline**: 该 Agent 状态不稳定,可能需要检查 HordeAgent 服务自动重启。
4. **OIDC 已移除**: 当前 Anonymous 模式无访问控制,内网使用可接受,外网暴露需重新配置认证。