# Proxmox 虚拟机任务控制器 一个Python脚本系统,用于自动化控制Proxmox虚拟机执行任务。小主机平时待机监听,接收命令后启动VM执行任务,完成后自动关闭VM。 ## 功能特性 - 📡 **命令监听**:监控指定目录的JSON命令文件 - 🖥️ **VM管理**:通过Proxmox API启动/关闭虚拟机 - 🔧 **任务执行**:通过SSH在VM内执行自定义命令 - 📊 **状态汇报**:实时汇报任务执行状态 - 🔒 **安全认证**:支持API Token和SSH密钥认证 - 📝 **日志记录**:完整的操作日志和错误追踪 ## 快速开始 ### 1. 安装依赖 ```bash pip install requests paramiko python-dotenv ``` ### 2. 配置环境 复制环境模板并填写配置: ```bash cp .env.template .env # 编辑 .env 文件,填写Proxmox和VM信息 ``` 配置说明: - `PROXMOX_HOST`: Proxmox服务器地址 - `PROXMOX_API_TOKEN`: Proxmox API Token - `VM_ID`: 目标虚拟机ID - `VM_SSH_*`: 虚拟机SSH连接信息 - `COMMAND_DIR`: 命令监听目录 ### 3. 运行脚本 ```bash python3 proxmox_task_controller.py ``` ### 4. 作为系统服务(推荐) ```bash # 复制文件到系统目录 sudo cp proxmox_task_controller.py /opt/proxmox-task/ sudo cp .env /opt/proxmox-task/ sudo cp proxmox-task.service /etc/systemd/system/ # 启用并启动服务 sudo systemctl enable proxmox-task sudo systemctl start proxmox-task ``` ## 使用示例 ### 创建任务命令 在 `COMMAND_DIR` 目录(默认 `/var/task-commands`)创建JSON文件: ```json { "task_id": "backup-2024-01-15", "command": "cd /opt/backup && ./run_backup.sh" } ``` 文件名建议使用唯一标识,如 `task-backup-2024-01-15.json`。 ### 查看日志 ```bash # 实时日志 tail -f /var/log/proxmox_task_controller.log # 系统服务日志 journalctl -u proxmox-task -f ``` ## 系统要求 - Python 3.8+ - Proxmox VE 6.0+ - 网络访问权限 - SSH密钥认证配置 ## 安全建议 - 使用API Token而非密码 - 限制Proxmox API访问IP - 使用专用SSH密钥 - 定期更新依赖库 ## 故障排查 1. **Proxmox连接失败**:检查API Token和主机地址 2. **SSH连接失败**:验证密钥路径和VM SSH配置 3. **命令执行超时**:调整命令超时时间 4. **VM启动慢**:增加等待就绪时间 ## 许可证 MIT License