在公有雲上建置的虛擬機器都會產生專門的主機名跟其內容,在 RHV 中也能透過 Cloud-init 方式再啟動自動部屬虛擬機器,也可以藉由 Template 模板大量部屬機器。
1. RHV 簡介
紅帽虛擬化 (Red Hat Virtualization) 是一個開放、軟體定義、容易使用的基礎架構與集中式管理平台,適用於 Linux 虛擬化的平台,底層基本 KVM 技術架構,可以較低成本建置企業內部的虛擬化平台,並且可以在短時間內完成部屬與啟用。
From www.redhat.com
開源上游版
所有紅帽系列產品都有上開源版,對於 RHV 來說上游就屬於
oVirt 組織 。
2. 創建 Template 模板
透過 ISO 創建虛擬機先決必要條件 :
必須下載 RHV CA 憑證並由瀏覽器認證 (僅需認證一次即可),否則會因憑證導致瀏覽器禁止上傳檔案而失敗。
至登入頁面 https://rhvm.lab.example.com
下載 CA Certificate。
以 FireFox 為例選擇設定並且匯入憑證。
將下載的憑證匯入(檔案如未找到請選擇所有檔案格式)。
信任此 CA 來辨識網站。
網頁連線就會顯示安全性連線。
安全連線
2.1. 上傳 Fedora qcow2 至 RHV
Fedora 37 Cloud Base Images下載連結請點我 。
cloud-init 套件
如果想要使用已經存在的 RHEL 系列可以使用 yum -y install cloud-init
安裝,就可以自行客製所需的機器模板。
使用 admin 登入 https://rhvm.lab.example.com
頁面後選擇 Storage -> Disks -> Upload 。
點擊 Fedora qcow2 作為上傳 Image 後點擊 OK 上傳。
upload qcow2
重要
如果執行 Test Connection 出現下列失敗,表示未進行 CA 憑證匯入。
上傳後從 Lock 狀態變成 OK 表示上傳完畢。
qcow2 status
2.2. 製作 Templates 模板
選擇左側 Computer -> Virtual Machines -> New 新增虛擬機器。
創建新虛擬機。
1
2
3
4
5
6
7
8
9
10
11
1. 作業系統 : Linux
2. 虛擬機 SIZE : Small
Tiny: CPU: 1 ,RAM : 512 MB
Small: CPU: 1 ,RAM : 2084 MB
Medium: CPU: 2 ,RAM : 4096 MB
Large: CPU: 4, RAM : 8192 MB
XLarge: CPU: 4, RAM :16384 MB
Custom : 自定義
3. 最佳化 : Server ( Desktop, Server, High Perfomance )
4. 虛擬機名稱 : fedora37-base
5. 硬碟選擇 Fedora37.qcow Image
Create base vm
選擇新創建的虛擬機,並點擊右方漢堡圖案選擇製作模板。
Make template
模板名稱與 Alias 命名為 Fedora37-Template
,並點擊 Ok 創建。
New template
至 Computer -> Templates 頁面等待模板建立完成。
Check template status
3. 使用 cloud-init
選擇左側 Computer -> Virtual Machines -> New 新增虛擬機器。
選擇模板創建虛擬機器
1
2
3
4
1. Template 選擇 Fedora37-Template
2. 虛擬機 Type 選擇 small
3. 名稱命名為 Fedora37-cloud
4. 網卡選擇 ovirtmgmt/ovirtmgmt
Create vm
左側選擇 Inital Run,並輸入下列參數點擊 OK 產生虛擬機器。
1
2
3
4
5
6
7
8
9
1. 確保 Use Cloud-Init/Sysprep 開啟
2. VM Hostname : Lab-cloud
3. User Name: student
4. Password : student
5. 啟動腳本:
write_files:
- path: /etc/motd
content: |
This VM has been provisioned using cloud-init.
cloud init setup
重要
cloud-init 所用的 YAML 對於空格縮排特別要求,請嚴格對其縮排格式(請勿使用 TAB),並在最後一行加上一個空白。
執行虛擬機器,透過 console ,登入帳號 : student
,密碼 : student
,應顯示 This VM has been provisioned using cloud-init.
。
vm console
透過查看 /var/log/cloud-init.log
可以看出 Cloud-init 執行的 Log 紀錄。
1
2
3
4
5
6
7
8
9
10
11
[[email protected] ~]$ tail /var/log/cloud-init.log
2023-04-02 11:14:18,495 - cc_power_state_change.py[DEBUG]: no power_state provided. doing nothing
2023-04-02 11:14:18,495 - handlers.py[DEBUG]: finish: modules-final/config-power-state-change: SUCCESS: config-power-state-change ran successfully
2023-04-02 11:14:18,495 - main.py[DEBUG]: Ran 20 modules with 0 failures
2023-04-02 11:14:18,495 - atomic_helper.py[DEBUG]: Atomically writing to file /var/lib/cloud/data/status.json (via temporary file /var/lib/cloud/data/tmpgkql5yy3) - w: [644] 604 bytes/chars
2023-04-02 11:14:18,496 - atomic_helper.py[DEBUG]: Atomically writing to file /var/lib/cloud/data/result.json (via temporary file /var/lib/cloud/data/tmpw2gr7zm0) - w: [644] 103 bytes/chars
2023-04-02 11:14:18,496 - util.py[DEBUG]: Creating symbolic link from '/run/cloud-init/result.json' => '../../var/lib/cloud/data/result.json'
2023-04-02 11:14:18,496 - util.py[DEBUG]: Reading from /proc/uptime (quiet=False)
2023-04-02 11:14:18,496 - util.py[DEBUG]: Read 11 bytes from /proc/uptime
2023-04-02 11:14:18,496 - util.py[DEBUG]: cloud-init mode 'modules' took 0.298 seconds (0.30)
2023-04-02 11:14:18,496 - handlers.py[DEBUG]: finish: modules-final: SUCCESS: running modules for final
5. 小結
RHV 虛擬化的私有化雲平台功能十分完整且強大,可以透過多個二手 X86 機器組成一個強大的虛擬化平台 ( CPU Family 盡可能一致),讓舊電腦也能發揮出最大的功效。