# 打开管理后台

URL: https://docs.ones.cn/deploy/configure/ones-admin/open-ones-admin

本文说明如何在生产环境打开 ONES 管理后台。操作前请先进入操作容器。

## 1. 进入操作容器

在部署机上执行：

```sh
./ones-ai-k8s.sh
```

进入容器后，切到部署目录：

```sh
cd /data/ones/ones-ai-k8s
```

## 2. 修改配置

先备份当前配置：

```sh
cp config/private.yaml config/private.yaml.bak-$(date +%Y%m%d-%H%M%S)
```

编辑 `config/private.yaml` ：

```sh
vi config/private.yaml
```

确认文件中有以下 3 个配置，如果没有、请添加：

```yaml
baseURL: http://<ONES访问地址>
onesAdminBaseURL: http://<管理后台访问地址>
onesInstallerAPINodePort: <管理后台NodePort>
```

示例：

```yaml
baseURL: http://172.16.80.64:30011
onesAdminBaseURL: http://172.16.80.64:30013
onesInstallerAPINodePort: 30013
```

配置要点：

- `baseURL` 是用户访问 ONES 的地址。
- `onesAdminBaseURL` 是用户访问管理后台的地址，不要带 `/ones-admin` 路径。
- `onesInstallerAPINodePort` 是暴露 `installer-api` 的 NodePort，需确认端口未被占用，并已放通防火墙或安全组。
- 管理后台最终访问地址是： `onesAdminBaseURL + /ones-admin/` 。

## 3. 应用配置

在 `/data/ones/ones-ai-k8s` 目录执行：

```sh
make setup-ones
make setup-installer-api
kubectl -n ones-installer rollout restart deploy/installer-api
```

说明：

- `make setup-ones` 用于让 ONES / IDS 侧同步 `baseURL` 和 `onesAdminBaseURL` ，否则 IDS 登录可能报 redirect URI 未配置。
- `make setup-installer-api` 用于创建或更新管理后台入口的 `installer-api` NodePort。
- 重启 `installer-api` 用于确保管理后台自身读取最新配置。
等待命令执行完成后，确认服务已更新：

```sh
kubectl -n ones rollout status deploy/ones-identity-api-deployment
kubectl -n ones rollout status deploy/project-api-deployment
kubectl -n ones rollout status deploy/ones-project-api-deployment
kubectl -n ones-installer rollout status deploy/installer-api
kubectl -n ones-installer get svc installer-api-service-np
```

`installer-api-service-np` 的端口应显示为 `80:<onesInstallerAPINodePort>/TCP` 。

确认 IDS 侧已经识别管理后台地址：

```sh
kubectl -n ones exec deploy/ones-identity-api-deployment -- \
  grep '"ones_admin_base_url"' /usr/local/ones-identity-api/config.json
```

输出中应包含 `onesAdminBaseURL` 对应的地址，例如：

```text
"ones_admin_base_url": "http://172.16.80.64:30013"
```

## 4. 验证访问

用浏览器打开：

```text
http://<管理后台访问地址>/ones-admin/
```

也可以在操作容器中用命令验证：

```sh
curl -sS -o /dev/null -w "%{http_code}\n" http://<管理后台访问地址>/ones-admin/
```

返回 `200` 表示页面可以访问。

如果需要确认后端 API 已启动，可执行：

```sh
curl -sS http://<管理后台访问地址>/ones-admin/api/auth/session
```

未登录时返回 `401` 是正常结果，表示管理后台 API 已经通了。
