# Proxmox任务控制器 一个用于监控命令文件、启动Proxmox虚拟机、执行任务、汇报结果并关闭虚拟机的Python脚本。 ## 功能特性 - 监控指定目录中的JSON命令文件 - 通过Proxmox API启动和关闭虚拟机 - 在虚拟机内执行指定命令(支持QEMU Guest Agent) - 汇报执行结果到结果目录 - 支持凭证传递(用于需要认证的命令) - 日志记录到文件和控制台 ## 使用方法 ### 1. 配置环境变量 ```bash export PROXMOX_HOST="https://your-proxmox-host:8006" export PROXMOX_TOKEN_ID="your-token-id@pam" export PROXMOX_TOKEN_SECRET="your-token-secret" export PROXMOX_VERIFY_SSL="false" # 如果使用自签名证书 ``` ### 2. 准备命令文件 在 `/var/task-commands/` 目录中放置JSON格式的命令文件: ```json { "node": "pve-node-1", "vmid": 100, "command": "ls -la /tmp && echo 'Hello World'", "task_id": "my-task-001", "username": "root", "password": "your-vm-password", "keep_running": false } ``` ### 3. 运行控制器 ```bash python3 controller.py ``` ### 4. 查看结果 任务执行结果将保存为JSON文件在 `/var/task-results/` 目录中。 ## 部署建议 1. 将脚本部署到小主机上 2. 确保小主机能够访问Proxmox服务器的API端口(默认8006) 3. 为小主机创建系统服务以实现开机自启动 4. 定期清理旧的结果文件 5. 考虑使用更安全的凭证管理方式(如HashiCorp Vault或AWS Secrets Manager) ## 注意事项 - 确保目标虚拟机已安装并运行QEMU Guest Agent(为了使用agent/exec API) - 或者修改脚本使用SSH方式在VM内执行命令 - 生产环境中应使用更安全的方式处理凭证 - 建议在测试环境中先验证功能