diff --git a/07-Other/AI/AI Agent/WY/团队服务器.md b/07-Other/AI/AI Agent/WY/团队服务器.md index 1223f14..4834474 100644 --- a/07-Other/AI/AI Agent/WY/团队服务器.md +++ b/07-Other/AI/AI Agent/WY/团队服务器.md @@ -312,4 +312,186 @@ if __name__ == "__main__": - Claude 会话记录在 C:\Users\loujiajie\.claude\projects\C--Users-loujiajie\ 下 D:\UnrealHorde\ 目录虽然存在但是空的(已被回收站中有删除痕迹),实际部署工作都在 C:\Users\loujiajie\horde-deploy\ - 完成。 \ No newline at end of file + 完成。 + +# 当前状态以及后续部署 + +> 更新日期: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 模式无访问控制,内网使用可接受,外网暴露需重新配置认证。 \ No newline at end of file