9082cc5e657611820d0338e79762b2dffed27942
Proxmox 虚拟机任务控制器
一个Python脚本系统,用于自动化控制Proxmox虚拟机执行任务。小主机平时待机监听,接收命令后启动VM执行任务,完成后自动关闭VM。
功能特性
- 📡 命令监听:监控指定目录的JSON命令文件
- 🖥️ VM管理:通过Proxmox API启动/关闭虚拟机
- 🔧 任务执行:通过SSH在VM内执行自定义命令
- 📊 状态汇报:实时汇报任务执行状态
- 🔒 安全认证:支持API Token和SSH密钥认证
- 📝 日志记录:完整的操作日志和错误追踪
快速开始
1. 安装依赖
pip install requests paramiko python-dotenv
2. 配置环境
复制环境模板并填写配置:
cp .env.template .env
# 编辑 .env 文件,填写Proxmox和VM信息
配置说明:
PROXMOX_HOST: Proxmox服务器地址PROXMOX_API_TOKEN: Proxmox API TokenVM_ID: 目标虚拟机IDVM_SSH_*: 虚拟机SSH连接信息COMMAND_DIR: 命令监听目录
3. 运行脚本
python3 proxmox_task_controller.py
4. 作为系统服务(推荐)
# 复制文件到系统目录
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文件:
{
"task_id": "backup-2024-01-15",
"command": "cd /opt/backup && ./run_backup.sh"
}
文件名建议使用唯一标识,如 task-backup-2024-01-15.json。
查看日志
# 实时日志
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密钥
- 定期更新依赖库
故障排查
- Proxmox连接失败:检查API Token和主机地址
- SSH连接失败:验证密钥路径和VM SSH配置
- 命令执行超时:调整命令超时时间
- VM启动慢:增加等待就绪时间
许可证
MIT License
Description
Languages
Rust
60.9%
Python
38%
PowerShell
1.1%