本文將會介紹如何在 Proxmox 上使用 cloud-init 產生 VM
前言
使用 Proxmox 也有一段時間了,這套免費的 KVM virtualization platform 真是佛心來的,好用穩定又有 Web GUI,但唯一的缺憾就是要作 Infrastructure as code 真的有點困難,因為他本身並不具備 cloud-init 的功能。
還好這個功能終於在 5.2 的時候被支援了,不過看起來還是很陽春,但基本使用上應該還算足夠。
希望未來會有 scheduler 也被開發出來,不然我都要自己指定 host 來擺 VM….
準備 Template VM
以下將以 ubuntu 16.04 cloud image 做示範來準備 template VM
在準備 template VM 前必須有以下資訊:
VM ID:這個不要跟其他 VM 重複到即可,下面使用
9999
CPU / Memory / Network 相關設定:這個部份就根據自己的環境 & 需求調整
Storage:要選擇一個 Template VM disk 存放的 storage,以下以
rbd_vm
做示範 (官網的文章是直接放到local-lvm
)SSH login key:cloud image 預設無法使用密碼登入,因此必須準備好登入用的 SSH Key(public)
接著執行以下 script 即可:
1 |
|
執行完成後就會有一個 VM ID=9999 的 template VM 產生,從系統上可以看到類似以下資訊:
產生 VM
接著就可以使用這個 template VM 來快速產生 VM 了,以下用個簡單的 script 來完成:
1 |
|
以上的 script 修改一下,放到 loop 中,一下子要產生多個 VM 其實就是一件很簡單的事情了!
其他限制
目前 cloud-init 這個功能無法在 CentOS cloud image 上使用