docs: update README with Rust GUI info

This commit is contained in:
xiaji
2026-04-10 22:47:40 +08:00
parent 7f6c8bff83
commit 6b0da4e264

114
README.md
View File

@@ -1,87 +1,93 @@
# Proxmox VM 任务控制器 # Proxmox VM 控制工具
一个Python脚本用于自动化控制Proxmox虚拟机执行任务。小主机平时待机监听接受命令后启动VM执行任务完成后关闭VM 一个用于控制 Proxmox 虚拟机的工具集,包含 Python 任务控制器和 Rust GUI 应用程序
## 功能特点 ## 项目结构
- **待机监听**:持续监控命令目录,平时保持低功耗状态 - **Python 任务控制器** - `proxmox_task_controller.py` / `proxmox_task_runner.py`
- **自动启停**:按需启动/关闭Proxmox虚拟机 - 待机监听:持续监控命令目录,平时保持低功耗状态
- **任务执行**通过SSH在VM内执行命令 - 自动启停:按需启动/关闭 Proxmox 虚拟机
- **状态汇报**:实时记录任务执行状态和结果 - 任务执行:通过 SSH 在 VM 内执行命令
- **错误处理**:完善的错误处理和超时机制
- **Rust GUI 应用** - `src/` (基于 egui)
- 图形界面:简单易用的 VM 控制面板
- API 调用:通过 Proxmox REST API 控制虚拟机
- 中文界面:支持中文字体显示
## 快速开始 ## 快速开始
### 环境要求 ### Rust GUI 应用
#### 环境要求
- Rust 1.70+
- MSYS2 + MinGW (x86_64-pc-windows-gnu)
#### 编译
```bash
# Debug
cargo build --target x86_64-pc-windows-gnu
# Release
cargo build --release --target x86_64-pc-windows-gnu
```
#### 配置
编辑 `.env` 文件:
```
PROXMOX_HOST=your-proxmox-host
PROXMOX_USER=root@pam
PROXMOX_TOKEN=your-api-token
VM_ID=100
NODE=proxmox
```
#### 运行
```bash
./target/x86_64-pc-windows-gnu/release/proxmox-vm-gui.exe
```
### Python 任务控制器
#### 环境要求
- Python 3.8+ - Python 3.8+
- Proxmox VE 6.x+ - Proxmox VE 6.x+
- SSH访问权限
### 安装配置 #### 安装
1. 克隆仓库
```bash ```bash
git clone http://124.223.26.33:3000/xiaji/proxmox-task.git pip install -r proxmox_task/requirements.txt
cd proxmox-task
``` ```
2. 设置环境变量 #### 配置
```bash ```bash
export PROXMOX_HOST="your-proxmox-host" export PROXMOX_HOST="your-proxmox-host"
export PROXMOX_USER="root@pam" export PROXMOX_USER="root@pam"
export PROXMOX_TOKEN="your-api-token" export PROXMOX_TOKEN="your-api-token"
export VM_ID="100" export VM_ID="100"
export SSH_USER="ubuntu"
export SSH_KEY_PATH="/path/to/ssh/key"
``` ```
3. 运行脚本 #### 运行
```bash ```bash
python3 proxmox_task_controller.py python3 proxmox_task_controller.py
``` ```
### 使用示例
1. 创建任务命令文件 `/var/task-commands/task-001.json`:
```json
{
"task_id": "task-001",
"command": "cd /opt/myapp && python3 run_task.py"
}
```
2. 查看状态文件 `/var/task-status/task-001.json`:
```json
{
"task_id": "task-001",
"status": "success",
"message": "任务执行成功",
"output": "Task completed successfully...",
"timestamp": 1234567890
}
```
## 配置选项 ## 配置选项
| 变量名 | 说明 | 默认值 | | 变量名 | 说明 | 默认值 |
|--------|------|--------| |--------|------|--------|
| PROXMOX_HOST | Proxmox主机地址 | localhost | | PROXMOX_HOST | Proxmox 主机地址 | localhost |
| PROXMOX_USER | API用户 | root@pam | | PROXMOX_USER | API 用户 | root@pam |
| PROXMOX_TOKEN | API Token | (必需) | | PROXMOX_TOKEN | API Token | (必需) |
| VM_ID | 虚拟机ID | 100 | | VM_ID | 虚拟机 ID | 100 |
| SSH_USER | SSH用户名 | ubuntu | | NODE | 节点名称 | proxmox |
| SSH_KEY_PATH | SSH私钥路径 | ~/.ssh/id_rsa |
| COMMAND_DIR | 命令目录 | /var/task-commands |
| STATUS_DIR | 状态目录 | /var/task-status |
| CHECK_INTERVAL | 检查间隔(秒) | 10 |
## 安全建议
- 使用Proxmox API Token而非密码
- 限制API Token权限
- 使用SSH密钥认证
- 在受信任网络中运行
## 许可证 ## 许可证