vault backup: 2025-12-24 22:21:10
This commit is contained in:
@@ -21,21 +21,26 @@ rating: ⭐
|
|||||||
- 视频
|
- 视频
|
||||||
- [Horde and Unreal Build Accelerator: Operating at Epic Scale](https://youtu.be/ZUlwqNbYWBQ?si=DgFvrvepK67v-iTi)
|
- [Horde and Unreal Build Accelerator: Operating at Epic Scale](https://youtu.be/ZUlwqNbYWBQ?si=DgFvrvepK67v-iTi)
|
||||||
|
|
||||||
## 代理客户端下载地址
|
## 下载地址
|
||||||
- https://github.com/EpicGames/UnrealEngine/releases/download/5.5.0-release/UnrealHordeServer.msi
|
- 官方下载地址
|
||||||
|
- 服务端:https://github.com/EpicGames/UnrealEngine/releases/download/5.5.0-release/UnrealHordeServer.msi
|
||||||
# Internals
|
- 也可以从Horde服务器下载地址
|
||||||
## Server
|
- http://10.219.103.35:13340/tools
|
||||||
Horde 默认配置为支持本地开发。您可以通过打开`Engine/Source/Programs/Horde/Horde.sln`并将 Horde.Server 设置为默认项目来启动它。默认情况下,您可以通过 访问服务器`http://localhost:5000/account`。
|
|
||||||
|
|
||||||
## Docker
|
|
||||||
Horde 包含`Dockerfile`用于创建 Docker 映像的 。但是,它在虚幻引擎源代码树中的位置要求事先暂存文件,以减少复制到构建映像中的数据大小。
|
|
||||||
|
|
||||||
执行这些操作的 BuildGraph 脚本包含在 中`Engine\Source\Programs\Horde\HordeBuild.xml`,可按如下方式运行:
|
|
||||||
```
|
|
||||||
RunUAT.bat Engine/Source/Programs/Horde/HordeBuild.xml -Target="Build HordeServer"
|
|
||||||
```
|
|
||||||
|
|
||||||
|
# 大致步骤
|
||||||
|
1. 使用docker部署服务。
|
||||||
|
2. 服务器配置。
|
||||||
|
1. 默认端口Http 13340、Http 2 13342。
|
||||||
|
1. 默认情况下,Horde配置为使用端口5000通过未加密的HTTP提供数据。在默认情况下,代理通过端口5002使用未加密的HTTP/2上的gRPC与Horde服务器通信。这些设置在服务器启动时显示在控制台上。
|
||||||
|
2. [相关配置](https://dev.epicgames.com/documentation/zh-cn/unreal-engine/horde-orientation-for-unreal-engine?application_version=5.5)
|
||||||
|
- [服务器配置](https://dev.epicgames.com/documentation/zh-cn/unreal-engine/horde-settings-for-unreal-engine?application_version=5.5#%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%AE%BE%E7%BD%AE)将配置该服务器与其他服务器的通信,定义静态参数等。它由与该服务器一同部署的 `Server.json` 文件驱动。
|
||||||
|
- [完整配置参数清单](https://dev.epicgames.com/documentation/zh-cn/unreal-engine/horde-settings-for-unreal-engine?application_version=5.5#%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%AE%BE%E7%BD%AE)
|
||||||
|
- [全局配置](https://dev.epicgames.com/documentation/zh-cn/unreal-engine/horde-schema-for-unreal-engine?application_version=5.5#globals)在部署后控制所有面向用户的元素,该配置存于名为 `Globals.json` 的文件中。设置好部署参数后,大多数配置都在此处完成。
|
||||||
|
3. [验证相关配置](https://dev.epicgames.com/documentation/zh-cn/unreal-engine/horde-authentication-tutorial-for-unreal-engine?application_version=5.5)
|
||||||
|
1. [[#OIDC身份验证]]
|
||||||
|
3. 代理机配置。详见 http://10.219.103.35:13340/docs/Landing.md
|
||||||
|
1. 配置文件位置:安装目录\Agent\Defaults\agent.json
|
||||||
|
2.
|
||||||
# 部署笔记
|
# 部署笔记
|
||||||
## Epic Games的Horde部署
|
## Epic Games的Horde部署
|
||||||
Epic Games内部部署的Horde托管在AWS上,包括以下部分:
|
Epic Games内部部署的Horde托管在AWS上,包括以下部分:
|
||||||
@@ -51,7 +56,8 @@ Epic Games内部部署的Horde托管在AWS上,包括以下部分:
|
|||||||
- 数百个EC2实例,运行包含Horde代理的AMI。
|
- 数百个EC2实例,运行包含Horde代理的AMI。
|
||||||
- 约100台机器,本地托管,用于提供对移动设备、主机以及非托管平台(例如Mac设备)的访问。
|
- 约100台机器,本地托管,用于提供对移动设备、主机以及非托管平台(例如Mac设备)的访问。
|
||||||
|
|
||||||
## 流程
|
## 部署流程
|
||||||
|
- [Horde服务器](https://dev.epicgames.com/documentation/zh-cn/unreal-engine/horde-server-for-unreal-engine?application_version=5.5)
|
||||||
### Windows
|
### Windows
|
||||||
相关服务安装都集成在安装包里。
|
相关服务安装都集成在安装包里。
|
||||||
|
|
||||||
@@ -61,7 +67,12 @@ Epic Games内部部署的Horde托管在AWS上,包括以下部分:
|
|||||||
docker login ghcr.io
|
docker login ghcr.io
|
||||||
```
|
```
|
||||||
|
|
||||||
***注意这里需要用Token,不然容易登录失败***
|
***注意这里需要用Token,不然容易登录失败,Token需要开启Package Read 权限***
|
||||||
|
```c++
|
||||||
|
# Github
|
||||||
|
docker login ghcr.io -u 378100977@qq.com -p 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
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
下载镜像:
|
下载镜像:
|
||||||
```shell
|
```shell
|
||||||
@@ -80,3 +91,70 @@ docker pull ghcr.io/epicgames/horde-server:latest
|
|||||||
docker compose up
|
docker compose up
|
||||||
```
|
```
|
||||||
如需更多指导,请参阅YAML文件中的注释。
|
如需更多指导,请参阅YAML文件中的注释。
|
||||||
|
|
||||||
|
## Https配置流程
|
||||||
|
要通过HTTPS协议提供数据,请在[Server.json](https://dev.epicgames.com/documentation/zh-cn/unreal-engine/horde-settings-for-unreal-engine?application_version=5.5#%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%AE%BE%E7%BD%AE)中设置 `HttpsPort` 属性。
|
||||||
|
通过在同一文件中设置默认证书,为[Kestrel](https://learn.microsoft.com/zh-cn/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-8.0)(NET Core web服务器)配置证书。
|
||||||
|
跨平台:
|
||||||
|
```json
|
||||||
|
"Kestrel": {
|
||||||
|
"Certificates": {
|
||||||
|
"Default": {
|
||||||
|
"Path": "C:\\cert\\test.pfx",
|
||||||
|
"Password": "my-password"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
## 验证配置流程
|
||||||
|
如果你现在没有与OIDC兼容的身份提供商,Horde将提供自有身份提供商 - 本指南将介绍该提供商。
|
||||||
|
|
||||||
|
### 先决条件
|
||||||
|
- Horde服务器安装(参阅[Horde安装教程](https://dev.epicgames.com/documentation/zh-cn/unreal-engine/horde-installation-tutorial-for-unreal-engine?application_version=5.5))。
|
||||||
|
- 具有有效证书,并且在你的服务器上启用[HTTPS支持](https://dev.epicgames.com/documentation/zh-cn/unreal-engine/horde-server-for-unreal-engine?application_version=5.5#https)。
|
||||||
|
|
||||||
|
### 步骤
|
||||||
|
1. 在你的[server.json](https://dev.epicgames.com/documentation/zh-cn/unreal-engine/horde-orientation-for-unreal-engine?application_version=5.5)文件中将 `AuthMode` 属性设置为 `Horde` ,然后重新启动服务器。
|
||||||
|
2. 第一次启动服务器时,系统会提示你输入管理员密码。
|
||||||
|
3. 登录后, `服务器(Server)` 菜单中会有一个 `账户(Accounts)` 菜单项。从此处,你可以管理允许登录到服务器的用户,以及他们拥有的[声明](https://dev.epicgames.com/documentation/zh-cn/unreal-engine/horde-glossary-for-unreal-engine?application_version=5.5#%E6%8E%88%E6%9D%83)。Horde的账户系统会将 `http://epicgames.com/ue/horde/group` 声明用于用户所属组,并且操作面板将建议并自动填写在部署的配置文件中找到的组。
|
||||||
|
|
||||||
|
服务器的 `default.globals.json` 文件中定义了两个标准组,默认情况下包含于标准 `globals.json` 文件中:`查看` 和 `运行` 。
|
||||||
|
```cpp
|
||||||
|
"acl": {
|
||||||
|
"entries": [
|
||||||
|
{
|
||||||
|
"claim": {
|
||||||
|
"type": "http://epicgames.com/ue/horde/group",
|
||||||
|
"value": "View"
|
||||||
|
},
|
||||||
|
"profiles": [
|
||||||
|
"default-read"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"claim": {
|
||||||
|
"type": "http://epicgames.com/ue/horde/group",
|
||||||
|
"value": "Run"
|
||||||
|
},
|
||||||
|
"profiles": [
|
||||||
|
"default-run"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
`default-read` 和 `default-run` 配置文件在代码( `AclConfig.cs` )中定义。你可以在每个[AclConfig](https://dev.epicgames.com/documentation/zh-cn/unreal-engine/horde-schema-for-unreal-engine?application_version=5.5#aclconfig)对象的 `profiles` 元素中定义自己的配置文件。
|
||||||
|
|
||||||
|
### OIDC身份验证
|
||||||
|
要配置外部OIDC提供程序,需要在[Server.json](https://dev.epicgames.com/documentation/zh-cn/unreal-engine/horde-settings-for-unreal-engine?application_version=5.5#%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%AE%BE%E7%BD%AE)中进行以下设置:
|
||||||
|
- `AuthMethod` :将其设置为`OpenIdConnect` 。
|
||||||
|
- `OidcAuthority` :OIDC授权的URL。你可以在浏览器中访问 `{{Url}}/.well-known/openid-configuration` ,检查此处指定的URL是否正确,该地址应返回OIDC发现文档。
|
||||||
|
- `OidcClientId` :向OIDC提供程序标识应用程序(Horde)。它由OIDC提供程序生成。
|
||||||
|
- `OidcClientSecret` :OIDC提供程序提供的一个机密值,用于识别请求授权的应用程序。
|
||||||
|
|
||||||
|
此外,还可以指定以下设置:
|
||||||
|
- `OidcRequestedScopes` :指定向OIDC提供程序请求的权限范围。权限范围决定了Horde向OIDC提供程序请求的访问权限,以及将返回的且可用于在Horde ACL中进行检查的声明。这些值的含义取决于你的OIDC 提供程序配置。
|
||||||
|
- `OidcClaimNameMapping` :指定在尝试显示用户真实姓名时按偏好顺序检查的声明的列表。
|
||||||
|
- `OidcClaimEmailMapping` :指定在尝试显示用户邮件地址时按偏好顺序检查的声明的列表。
|
||||||
|
- `OidcClaimHordePerforceUserMapping` :指定在尝试确定用户的Perforce用户名时按偏好顺序检查的声明的列表。
|
||||||
Reference in New Issue
Block a user