文件 v0.1.7

快速開始

本頁帶你在 Proxmox VE 主節點上建置 QemuRun-pve,並以一次 API 呼叫建立第一台 VM。

前置需求

項目 要求
執行位置 Proxmox VE 叢集的主節點,以 root 執行(需要 qm、pvesh、pvesm 與 /etc/pve/nodes 讀取權限)
Go 1.25 以上(go.mod),僅自原始碼建置時需要
節點間 SSH 主節點可用金鑰以 root 免密碼 SSH 到其他所有節點
網段 /24,VM 的 IP 末段等於 VMID,因此 VMID 需落在 100–254
儲存池 啟用中、類型為 dir/zfspool/lvmthin/nfs,且可建立 cloudinit 磁碟
對外連線 主節點可下載 Debian、Rocky Linux、Ubuntu 官方 Cloud Image

建置與啟動

服務以工作目錄為基準讀取 .env、sh/ 與 .go_qemu_* 狀態檔,因此直接在 clone 下來的目錄執行。

git clone https://github.com/pardnchiu/QemuRun-pve.git
cd QemuRun-pve
cp .env.example .env
touch .go_qemu_disabled
go build -o QemuRun-pve ./cmd/api
./QemuRun-pve

啟動時會逐行印出已註冊路由,最後輸出 goQemu run at localhost:<PORT>。PORT 或 GATEWAY 未設定時直接結束;其餘變數見 環境變數。

.go_qemu_disabled 即使沒有內容也必須存在,否則 VM 清單與所有需檢查 VM 狀態的端點都會失敗,詳見 狀態檔。

確認服務

curl http://192.168.0.11:8080/api/health
# ok

curl http://192.168.0.11:8080/api/vm/list

建立第一台 VM

-N 關閉 curl 緩衝,才能即時看到 SSE 進度。未帶 id 時自動配置 VMID 與 IP。

curl -N -X POST http://192.168.0.11:8080/api/vm/install \
  -H "Content-Type: application/json" \
  -d '{"os": "debian", "version": "12", "cpu": 2, "ram": 4096, "disk": "32G"}'

串流結尾會列出 VMID、IP 與登入使用者,接著以 event: close 結束:

data: {"step":"VM initialization > finalizing","status":"success","message":"[*] VMID: 120"}

data: {"step":"VM initialization > finalizing","status":"success","message":"[*] IP: 192.168.0.120"}

data: {"step":"VM initialization > finalizing","status":"success","message":"[*] User: debian"}

event: close
data: {}

此時可用主節點的 SSH 金鑰登入:

ssh debian@192.168.0.120

下一步

EN