核心概念
本服務將可預期的 Proxmox 指令與 VM 操作的即時進度串流結合。
VM 身分與 IP 配置
佈建請求可提供 id;若省略,安裝流程會配置可用 VMID。Service 會從 GATEWAY 取前三個 IPv4 octet,將 VMID 作為最後一個 octet,並配置 /24 位址。請確認設定的 VMID 範圍與網路規劃相容。
資源正規化
建立前,服務會套用預設值與限制:
| 資源 | 預設值/最小值 | 限制控制 |
|---|---|---|
| CPU | 預設 2;驗證時最小 1 | VM_MAX_CPU |
| RAM | 預設 2048 MB;最小 512 MB | VM_MAX_RAM |
| Disk | 預設 16G;最小 16G | VM_MAX_DISK |
initConfig 也會依 OS(debian、ubuntu 或 rockylinux)設定預設 SSH 使用者,並在提供的名稱後附加 VM ID。
Cloud image 與 cloud-init
安裝流程會解析所請求發行版與版本的 OS image、驗證 URL,並僅在本機尚未快取時下載。接著建立 VM、匯入映像磁碟,並在首次開機前套用 cloud-init 與開機設定。
SSH 就緒與初始化
VM 啟動後,服務會輪詢 SSH 就緒狀態。連線成功後,會透過 SSH 執行 OS 專屬初始化、重啟 VM,並再次檢查連線。就緒檢查失敗會經由 SSE 串流回報。
SSE 進度
安裝、啟動、重啟及節點遷移均為長時間操作。其 handler 會設定 text/event-stream;Service.SSE 寫出以下形式:
data: {"step":"<stage>","status":"processing|success|error","message":"<detail>"}
用戶端應保持連線並依序呈現事件;本機檢視可使用 curl -N。
CPU 相容性
GetClusterCPUType 會查詢 Proxmox 節點 CPU flags,計算叢集共通的最低 x86-64 level,並快取到 .go_qemu_cpu_type,避免後續佈建重複掃描叢集。
生命週期操作
API 支援啟動、強制停止、ACPI 關機、重啟、刪除、CPU/記憶體/磁碟調整及節點遷移。操作會先找出 VM 所在節點,再使用本機或 SSH 派送的 qm 指令。