iT邦幫忙

2021 iThome 鐵人賽

DAY 12
1
IT管理

突破困境:企業開源虛擬化管理平台系列 第 12

Proxmox VE 虛擬機 Cloud-Init 應用

https://ithelp.ithome.com.tw/upload/images/20210927/20118848pMxOjAQNPb.png

在 Proxmox VE 管理介面可以方便的建立客體虛擬機、硬體配置,以及開啟主控台安裝系統與客體內的設定,不過有關帳號密碼、網路 IP 及 DNS 等設定就不能在管理介面上方便的配置,有沒有更容易可以讓我在 Proxmox VE 管理介面上一次搞定的方法?

當然是有,而且非常容易使用!


準備 Cloud-Init 客體支援

目前 Cloud-Init 支援大部份的 Linux 作業系統發行版本,較新的發行版本已有內建,可在安裝有 Ubuntu 的客體機內使用以下指令進行檢查:

dpkg -l | grep cloud-init

https://ithelp.ithome.com.tw/upload/images/20210927/201188485S1bfZVYzh.png
檢查是否已安裝 Cloud-Init 套件

若沒有內建的亦可很容易的安裝起來,以 Ubuntu Linux 為例:

apt install cloud-init

 

目前 Cloud-Init 官網上列出有支援的作業系統與發行版本如下:

  • Ubuntu
  • Alpine Linux
  • Arch Linux
  • CentOS
  • RockyLinux
  • RHEL
  • CloudLinux
  • FreeBSD
  • NetBSD
  • OpenBSD
  • Fedora
  • Gentoo
  • openSUSE
  • Debian
  • ...等等
補充:
Windows 作業系統也有公司開發 Cloud-Init 的相關套件,如有興趣可以至文末參考資料下載。
技巧:
也可以直接下載預先配置好的 Linux 發行版 Cloud Image,匯入 Proxmox VE 客體機後直接開機就可以套用 Cloud-Init 進行初始化,連安裝作業系統的工作都省去。由於牽涉到 Proxmox VE 的 CLI 命令列指令,將於日後篇幅提及。

新增 Cloud-Init 虛擬裝置

接下來要為客體機增加一個 Cloud-Init 磁碟機,請選取客體機後,切換至 硬體 頁籤,按下 增加 按鈕,選取 CloudInit 磁碟機

https://ithelp.ithome.com.tw/upload/images/20210927/20118848Q6weMvPUzX.png
準備新增 Cloud-Init 磁碟機

進入 Cloud-Init 選項視窗後,只需在 儲存 下拉清單中指定 Cloud-Init 磁碟機要存放的儲存集區,再按下 建立 即可。

https://ithelp.ithome.com.tw/upload/images/20210927/201188485pfjmQFgVE.png
新增 Cloud-Init 磁碟機選項視窗

建立完成以後,硬體清單中即會增加一筆 CloudInit 磁碟機 (ide0) 項目。

https://ithelp.ithome.com.tw/upload/images/20210927/201188483HxP3Z3Ids.png
新增 Cloud-Init 磁碟機完成

除了磁碟機外,還需要增加一個序列埠裝置,以讓 Cloud-Init 可以正確連動。請按下 增加 按鈕,選取 序列埠 項目。

https://ithelp.ithome.com.tw/upload/images/20210927/20118848fA48CtJQnn.png
準備新增序列埠

在彈出的序列埠選項視窗中,直接按下 增加 按鈕。

https://ithelp.ithome.com.tw/upload/images/20210927/20118848KOlYFXfpsV.png
新增序列埠選項視窗

序列埠增加完成後,可以在硬體清單中確認。

最後,我們還要把原本的虛擬光碟機移除,才不會影響到客體機啟動時由 Cloud-Init 磁碟機的讀取設定作業。請選取 CD/DVD 裝置 (ide2),再按下 移除 按鈕,彈出的確認對話框按下 即可移除之。

https://ithelp.ithome.com.tw/upload/images/20210927/20118848lM3rFx5hhO.png
移除虛擬光碟機


使用 Cloud-Init 設定參數

前置作業完成後,可以準備設定 Cloud-Init 的各項參數。切換至 Cloud-Init 頁籤,點選 帳號 兩下準備進入設定。

https://ithelp.ithome.com.tw/upload/images/20210927/20118848L40SOuG7RT.png
準備設定 Cloud-Init 帳號

彈出帳號對話視窗後,請填入要設定的帳號名稱。

https://ithelp.ithome.com.tw/upload/images/20210927/20118848sX7dD5xUFG.png
設定 Cloud-Init 帳號

 

接著再點選 密碼 欄位兩次,進入密碼設定視窗。

https://ithelp.ithome.com.tw/upload/images/20210927/20118848dwDRIVNydZ.png
設定 Cloud-Init 密碼

提醒:
只有直接使用 Cloud Image 映像檔的客體機可以初始化帳號與密碼。

 

當帳號與密碼設定完成後,再按下 DNS 網域名稱 兩下,進入設定對話視窗。若保留預設,則會以節點實體機的 DNS 網域名稱跟伺服器自動帶入。

https://ithelp.ithome.com.tw/upload/images/20210927/20118848Sy2OTS5IV8.png
設定 Cloud-Init DNS 網域名稱及伺服器

 

若有預備好的客戶端 SSH 公開金鑰,也可以在此填入,以用做日後使用免密碼方式遠端連入這台客體機。

https://ithelp.ithome.com.tw/upload/images/20210927/20118848g5Q7el2p7Y.png
設定 Cloud-Init SSH 公開金鑰

 

最後是網路設定,經由 Cloud-Init 功能即可讓我們在 Proxmox VE 介面上方便的為客體虛擬機指定好 IP,免去許多設定的手續。

https://ithelp.ithome.com.tw/upload/images/20210927/20118848TqvGf2OMTW.png
設定 Cloud-Init 網路

 

當全數設定完成後,可以檢視一下 Cloud-Init 清單的內容,確認無誤後請按下 重新產生映像 讓它生效。

https://ithelp.ithome.com.tw/upload/images/20210927/20118848EFkZCKRY2e.png
產生 Cloud-Init 映像檔

 


啟動客體機及失敗狀況處理

做完前置各項設定後,就可以啟動客體機來驗證設定是否正確生效。

https://ithelp.ithome.com.tw/upload/images/20210927/20118848EhJXUG0o2f.png
確認已經由 Cloud-Init 設定好 IP

 

Cloud-Init 失敗狀況處理

如果 Cloud-Init 設定套用仍然無效,請開啟客體機主控台進行以下操作:

# 清除已有的 Cloud-Init 設定
cloud-init clean

# 移除 Cloud-Init 其它設定檔案
rm -rf /etc/cloud
rm -rf /var/lib/cloud/instances 
rm /etc/netplan/00-installer-config.yaml

# 重新啟動
reboot

若 Cloud-Init 相關設定正確無誤,應於重新啟動後生效。


參考資料


上一篇
Proxmox VE 虛擬機複製與範本
下一篇
Proxmox VE 虛擬機防火牆管理 (一)
系列文
突破困境:企業開源虛擬化管理平台30

尚未有邦友留言

立即登入留言