This commit is contained in:
+40
-12
@@ -376,10 +376,8 @@ uv run --package device-host-agent device-host-agent setup
|
||||
|
||||
`HOST_AGENT_CONTROL_PLANE_URL` 默认已固定为 `https://amcp.home.jerryyan.top`;
|
||||
仅在连接其他云端环境(如本地/测试用的 `cloud-api`)时才需要覆盖该变量。未设置
|
||||
`HOST_AGENT_ENROLLMENT_TOKEN` 时,Host Agent 会直接向云端发起零 token 自助注册
|
||||
(需要云端 `CLOUD_SELF_SERVICE_ENROLLMENT_ENABLED=true`);若仍持有云端管理员
|
||||
签发的一次性 enrollment token,也可以继续设置 `HOST_AGENT_ENROLLMENT_TOKEN`
|
||||
走原有的 token 注册路径:
|
||||
缓存身份不存在时,Host Agent 会直接向云端注册,由云端返回 `host_id`;后续运行
|
||||
使用本地持久化的随机 Host secret。无需配置静态 Host 或 enrollment token:
|
||||
|
||||
```bash
|
||||
export HOST_AGENT_IDENTITY_PATH="tasks/host_identity.json"
|
||||
@@ -394,17 +392,47 @@ uv run --package device-host-agent device-host-agent
|
||||
|
||||
首次启动顺序为:持久化候选 Host secret、向云端换取 `host_id`、为每个本地设备
|
||||
换取 `device_id`、保存映射、连接 WDA、发送 heartbeat、开始 long-poll 领取任务。
|
||||
Host Agent 不监听入站端口。若使用了一次性 enrollment token,成功后可以将其从
|
||||
边缘环境移除;但必须保留并保护 `tasks/host_identity.json` 和
|
||||
Host Agent 不监听入站端口。必须保留并保护 `tasks/host_identity.json` 和
|
||||
`tasks/device_config.sqlite3`;前者等同于 Host bearer credential。
|
||||
|
||||
零 token 自助注册意味着任何能访问该云端地址的设备都能自行注册成为 Host,没有
|
||||
审批环节,也没有限流保护;这一取舍依赖网络边界(防火墙/反向代理)而非应用层
|
||||
限制,仅应在受控网络中开启 `CLOUD_SELF_SERVICE_ENROLLMENT_ENABLED`。
|
||||
直接注册意味着任何能访问该云端地址的设备都能自行注册成为 Host,没有审批环节,
|
||||
也没有限流保护;这一取舍依赖网络边界(防火墙/反向代理)而非应用层限制。
|
||||
|
||||
需要回滚到静态模式时,停止 Host Agent,由云端管理员配置匹配的静态 Host
|
||||
credential,然后显式设置 `HOST_AGENT_HOST_ID` 与 `HOST_AGENT_TOKEN`。这两个变量
|
||||
同时存在时优先于 enrollment state。
|
||||
### 启用本地 Web Console(可选)
|
||||
|
||||
Host Agent 内置一个默认关闭的本地 Web Console,用于在这台 Mac 上直接查看和管理
|
||||
正在运行的 Host,无需 SSH 进去读原始状态文件。启用时追加环境变量后再启动:
|
||||
|
||||
```bash
|
||||
export HOST_AGENT_CONSOLE_ENABLED="true"
|
||||
|
||||
uv run --package device-host-agent device-host-agent
|
||||
```
|
||||
|
||||
不要修改 `HOST_AGENT_CONSOLE_BIND_HOST`,保持默认回环地址 `127.0.0.1`;Console
|
||||
启动后在同一台 Mac 上打开:
|
||||
|
||||
```
|
||||
http://127.0.0.1:8765
|
||||
```
|
||||
|
||||
`8765` 是 `HOST_AGENT_CONSOLE_PORT` 的默认值(见
|
||||
`apps/device-host-agent/host_agent/config.py`)。登录使用与
|
||||
`uv run --package device-host-agent device-host-agent setup` 创建的同一个本地账号,
|
||||
没有单独的 Console 账号体系。
|
||||
|
||||
登录后可以看到:
|
||||
|
||||
- 状态仪表盘:最近一次 heartbeat 结果与时间、enrollment/identity 状态、本地登记
|
||||
设备及其连接状态、当前 assignment 执行进度。
|
||||
- 本地设备管理:新增、编辑、删除登记在这台 Host 上的设备,改动会立即在运行中的
|
||||
`DeviceManager` 上生效,无需重启 Host Agent。
|
||||
- 修改密码:更新本地操作账号密码,需要先输入当前密码。
|
||||
- 最近历史:近期 assignment 与 heartbeat 的执行记录。
|
||||
|
||||
完整的 `HOST_AGENT_CONSOLE_*` 环境变量列表(端口、非回环 bind 的显式 opt-in、
|
||||
session TTL、历史记录条数上限等)参见 `docs/CLOUD_DEPLOYMENT.md`;生产/远程场景下
|
||||
应优先使用 SSH 端口转发访问该 Console,而不是直接把它暴露到非回环地址。
|
||||
|
||||
## 10. 多设备与端口
|
||||
|
||||
|
||||
Reference in New Issue
Block a user