vault backup: 2026-04-22 22:02:30
This commit is contained in:
@@ -312,4 +312,186 @@ if __name__ == "__main__":
|
||||
- Claude 会话记录在 C:\Users\loujiajie\.claude\projects\C--Users-loujiajie\ 下
|
||||
|
||||
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 模式无访问控制,内网使用可接受,外网暴露需重新配置认证。
|
||||
Reference in New Issue
Block a user