Files
proxmox-task/README.md

105 lines
2.3 KiB
Markdown
Raw Normal View History

# 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