From 6b0da4e264cfe85a58a8e7f9436a47e908dffbef Mon Sep 17 00:00:00 2001 From: xiaji Date: Fri, 10 Apr 2026 22:47:40 +0800 Subject: [PATCH] docs: update README with Rust GUI info --- README.md | 114 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 60 insertions(+), 54 deletions(-) diff --git a/README.md b/README.md index d151269..3e167ef 100644 --- a/README.md +++ b/README.md @@ -1,87 +1,93 @@ -# Proxmox VM 任务控制器 +# Proxmox VM 控制工具 -一个Python脚本,用于自动化控制Proxmox虚拟机执行任务。小主机平时待机监听,接受命令后启动VM执行任务,完成后关闭VM。 +一个用于控制 Proxmox 虚拟机的工具集,包含 Python 任务控制器和 Rust GUI 应用程序。 -## 功能特点 +## 项目结构 -- **待机监听**:持续监控命令目录,平时保持低功耗状态 -- **自动启停**:按需启动/关闭Proxmox虚拟机 -- **任务执行**:通过SSH在VM内执行命令 -- **状态汇报**:实时记录任务执行状态和结果 -- **错误处理**:完善的错误处理和超时机制 +- **Python 任务控制器** - `proxmox_task_controller.py` / `proxmox_task_runner.py` + - 待机监听:持续监控命令目录,平时保持低功耗状态 + - 自动启停:按需启动/关闭 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+ - Proxmox VE 6.x+ -- SSH访问权限 -### 安装配置 +#### 安装 -1. 克隆仓库 ```bash -git clone http://124.223.26.33:3000/xiaji/proxmox-task.git -cd proxmox-task +pip install -r proxmox_task/requirements.txt ``` -2. 设置环境变量 +#### 配置 + ```bash export PROXMOX_HOST="your-proxmox-host" export PROXMOX_USER="root@pam" export PROXMOX_TOKEN="your-api-token" export VM_ID="100" -export SSH_USER="ubuntu" -export SSH_KEY_PATH="/path/to/ssh/key" ``` -3. 运行脚本 +#### 运行 + ```bash 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_USER | API用户 | root@pam | +| PROXMOX_HOST | Proxmox 主机地址 | localhost | +| PROXMOX_USER | API 用户 | root@pam | | PROXMOX_TOKEN | API Token | (必需) | -| VM_ID | 虚拟机ID | 100 | -| SSH_USER | SSH用户名 | ubuntu | -| 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密钥认证 -- 在受信任网络中运行 +| VM_ID | 虚拟机 ID | 100 | +| NODE | 节点名称 | proxmox | ## 许可证