Files
proxmox-task/README.md

2.3 KiB
Raw Blame History

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 Token
  • VM_ID: 目标虚拟机ID
  • VM_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密钥
  • 定期更新依赖库

故障排查

  1. Proxmox连接失败检查API Token和主机地址
  2. SSH连接失败验证密钥路径和VM SSH配置
  3. 命令执行超时:调整命令超时时间
  4. VM启动慢:增加等待就绪时间

许可证

MIT License