- Added run_sso_script.sh for remote script execution with SSH - Added sso_script.py with Django-based SSO management functions - Implemented XDP Ultra redeem code generation functionality - Added batch product binding and update capabilities - Included comprehensive documentation and usage examples - Added automatic cleanup mechanisms for remote temporary files
120 lines
3.5 KiB
Markdown
120 lines
3.5 KiB
Markdown
# SSO 交互式脚本工具
|
||
|
||
这是一个用于远程执行 SSO (Single Sign-On) 相关管理任务的交互式脚本工具集。
|
||
|
||
## 文件说明
|
||
|
||
- `run_sso_script.sh` - 主要执行脚本,负责将 Python 脚本上传到远程服务器并执行
|
||
- `sso_script.py` - Django 交互式管理脚本,提供 SSO 系统的各种管理功能
|
||
|
||
## 功能概述
|
||
|
||
### run_sso_script.sh 功能
|
||
- 自动将本地 Python 脚本上传到远程 Proxmox 容器
|
||
- 建立交互式 SSH 连接执行脚本
|
||
- 自动清理远程临时文件
|
||
- 支持脚本执行过程中的用户交互
|
||
|
||
### sso_script.py 功能
|
||
该脚本提供以下三个主要管理功能:
|
||
|
||
1. **创建 XDP Ultra Redeem Code**
|
||
- 生成指定数量的兑换码
|
||
- 用于 XDP Ultra 产品的许可证激活
|
||
|
||
2. **批次绑定商品**
|
||
- 将序列号批次与商品进行绑定
|
||
- 支持批量操作以提高效率
|
||
|
||
3. **批次更新商品**
|
||
- 更新已绑定序列号的商品信息
|
||
- 支持批量修改商品绑定关系
|
||
|
||
## 使用方法
|
||
|
||
### 环境配置
|
||
在使用前需要确保:
|
||
|
||
1. **远程服务器配置**(在 `run_sso_script.sh` 中配置):
|
||
```bash
|
||
REMOTE_USER="root"
|
||
REMOTE_SERVER="172.24.9.97"
|
||
```
|
||
|
||
2. **本地环境**:
|
||
- 确保可以通过 SSH 连接到远程服务器
|
||
- 远程服务器上存在包含 "celery" 名称的 Proxmox 容器
|
||
|
||
### 执行步骤
|
||
|
||
1. **运行主脚本**:
|
||
```bash
|
||
./run_sso_script.sh
|
||
```
|
||
|
||
2. **选择功能**:
|
||
脚本启动后会显示交互式菜单:
|
||
```
|
||
==================================================
|
||
SSO 交互式脚本
|
||
==================================================
|
||
请选择要执行的功能:
|
||
1. 创建 XDP Ultra Redeem Code
|
||
2. 批次绑定商品
|
||
3. 批次更新商品
|
||
0. 退出
|
||
==================================================
|
||
```
|
||
|
||
3. **按提示输入参数**:
|
||
- **功能1**:输入要生成的兑换码数量
|
||
- **功能2**:输入商品ID、批次ID、开始流水号、结束流水号
|
||
- **功能3**:输入新商品ID、批次ID、开始流水号、结束流水号
|
||
|
||
### 使用示例
|
||
|
||
#### 示例1:创建 50 个 XDP Ultra Redeem Code
|
||
```
|
||
请选择要执行的功能: 1
|
||
请输入要生成的数量: 50
|
||
```
|
||
|
||
#### 示例2:批次绑定商品
|
||
```
|
||
请选择要执行的功能: 2
|
||
请输入商品ID (product_id): 12345
|
||
请输入批次ID (batch_id): 67890
|
||
请输入开始流水号 (start): 1001
|
||
请输入结束流水号 (stop): 1100
|
||
```
|
||
|
||
#### 示例3:批次更新商品
|
||
```
|
||
请选择要执行的功能: 3
|
||
请输入新商品ID (new_product_id): 54321
|
||
请输入批次ID (batch_id): 67890
|
||
请输入开始流水号 (start): 1001
|
||
请输入结束流水号 (stop): 1100
|
||
```
|
||
|
||
## 技术架构
|
||
|
||
- **远程执行**:使用 SSH 和 Proxmox 容器技术
|
||
- **Django 集成**:脚本运行在 Django 环境中,可访问相关数据模型
|
||
- **数据处理**:使用 MongoDB 和 FlexEngine 进行数据操作
|
||
- **许可证管理**:集成许可证颁发和管理系统
|
||
|
||
## 注意事项
|
||
|
||
1. **权限要求**:需要远程服务器的 root 权限
|
||
2. **网络连接**:确保与远程服务器的网络连通性
|
||
3. **数据安全**:操作涉及生产数据,请谨慎使用
|
||
4. **错误处理**:脚本包含基本错误处理,如遇问题请检查输入参数
|
||
5. **清理机制**:脚本会自动清理远程临时文件,无需手动操作
|
||
|
||
## 故障排除
|
||
|
||
- **连接失败**:检查 SSH 配置和网络连接
|
||
- **容器未找到**:确认远程服务器上存在包含 "celery" 名称的容器
|
||
- **权限错误**:确认用户具有必要的系统权限
|
||
- **参数错误**:检查输入的 ID 和数值是否正确 |