proxmox-ops 是一个面向运维场景的 Proxmox VE 管理技能,通过 Proxmox VE 的 REST API 对虚拟机和 LXC 容器进行监控、控制、配置与故障排查。
用途 该技能用于以运维为中心地管理 Proxmox VE:监控集群与节点、控制虚拟机与 LXC 容器、创建快照、扩容磁盘、查看存储与备份、跟踪异步任务,并在需要时进行配置(创建、克隆、删除等)。
主要能力
- 集群与节点:查看集群状态,列出节点及其 CPU/内存使用情况。
- 虚拟机与容器:集群范围或按节点列出 VM 与 LXC,查看状态。
- 控制操作:启动、强制停止、优雅关机、重启 VM/LXC。
- 快照:列出、创建(默认仅磁盘、安全)、回滚、删除快照。
- 磁盘扩容:获取磁盘配置,按绝对大小扩容,并给出虚拟机内部的分区、LVM、文件系统调整步骤。
- Guest Agent:通过 qemu-guest-agent 获取虚拟机网络接口与 IPv4 地址。
- 存储与备份:列出存储及其使用率,列出备份,启动备份任务。
- 任务:查看最近任务与任务日志,异步操作返回 UPID 用于跟踪。
- 配置:创建 VM、创建 LXC、克隆、转换为模板、删除等操作参考 references/provisioning.md。
使用方式 首次配置:创建凭证文件 ~/.proxmox-credentials,写入 PROXMOX_HOST、PROXMOX_TOKEN_ID、PROXMOX_TOKEN_SECRET,并设置权限 chmod 600。也可直接设置同名环境变量,适用于 CI/智能体场景;辅助脚本会先检查环境变量,再回退到读取凭证文件。
在 Proxmox 中创建 API Token:Datacenter → Permissions → API Tokens → Add。建议最小权限,例如只读监控用 PVEAuditor,虚拟机控制用 PVEVMAdmin;仅在工作流需要完整 API 访问时才关闭 Privilege Separation。
认证头写法:source ~/.proxmox-credentials 后,AUTH="Authorization: PVEAPIToken=$PROXMOX_TOKEN_ID=$PROXMOX_TOKEN_SECRET"。
辅助脚本 scripts/pve.sh 可从 VMID 自动发现节点,多数操作无需指定节点,支持 status、vms、lxc、start、stop、shutdown、reboot、snap、snapshots、tasks、storage 等子命令。
工作流:加载凭证 → 判断操作类型(只读直接执行;可逆操作执行并记录 UPID;破坏性操作先与用户确认)→ 通过 curl + API Token 调用 Proxmox API → 用 jq 解析 JSON → 跟踪异步任务。
适用场景 适合需要以脚本或智能体方式批量管理 Proxmox VE 的运维人员,例如日常巡检、批量启停、变更前快照、磁盘扩容、备份与任务排查等。
限制与注意事项
- 凭证文件由用户自行创建,技能不会自动生成;必须为 600 权限,泄露后应立即轮换 Token。
- 默认使用 -k/--insecure 关闭 TLS 校验,因为 Proxmox VE 默认使用自签名证书;若部署了受信任 CA 证书,应移除 -k。
- 建议使用最小权限 Token,多数操作不需要全权限 Token。
- 所有 API 调用仅指向 PROXMOX_HOST,无外部端点;在智能体环境中应限制网络访问仅到 Proxmox 主机。
- API Token 的 POST/PUT/DELETE 不需要 CSRF Token。
- 电源与删除操作具有破坏性,需先与用户确认;不得在响应中暴露凭证。
- 快照的 vmstate 参数:除非确需保留运行进程状态,否则不要包含 vmstate=1,因为它会冻结虚拟机并造成大量 I/O,可能影响同节点其他客户机;变更前备份应省略 vmstate(默认仅磁盘,无 I/O 峰值)。
- 磁盘扩容需使用绝对大小(如 20G),相对大小(如 +10G)无法通过正则校验。
- 应始终通过 Guest Agent 查询当前 IP,不要硬编码 IP。
- 命令中的 {node}、{vmid}、{storage}、{snapname} 需替换为实际值;VM 使用 qemu,容器使用 lxc。