快轉到主要內容

Cockpit教學:用網頁瀏覽器管理QEMU/KVM虛擬機,替代Virt Manager

分類   Linux系統 Self-hosting自架
標籤   Libvirt PCI Passthrough GPU Passthrough QEMU-KVM Podman Docker Linux
🗓️ 民國113年 甲辰年
✍ 切換正體/簡體字
目錄

Managing remote QEMU/KVM virtual machines with Cockpit web interface.

Ivon這篇要分享一款好用的Linux遠端管理工具。熟悉Libvirt、virsh、Virt Manager的人,一定會覺得如虎添翼!

想要遠端存取Linux電腦的QEMU/KVM虛擬機,Ivon之前提過 Virt Manager遠端SSH連線的方式,不過那樣做的前提是本機系統也得是Linux,才可以安裝全功能的Virt Manager,以控制Libvirt所建立的QEMU/KVM虛擬機。

如果想要在Windows、macOS、Android、iOS遠端管理QEMU/KVM呢?最好只要有瀏覽器就能存取?

在此介紹「Cockpit」這款好用的網頁工具。Cockpit意思為駕駛艙、儀表板,這個專案受RedHat公司贊助開發。Cockpit就像是網頁版的Virt Manager,可讓我們從網頁新增、檢視、刪除、備份QEMU/KVM虛擬機,以及管理GPU Passtthrough的裝置。

咦?Cockpit看起來有點像在用Proxmox的面板耶?因為它功能不只這個!Cockpit除了管理虛擬機之外,還可以調整Linux系統的各項設定喔!例如開啟網頁終端機、設定網路界面、調整firewalld防火牆、使用者群組管理、開關系統服務、管理Podman容器等等,可說是全方面的Linux網頁管理系統。

本文Ivon只討論Cockpit管理QEMU/KVM虛擬機方面的用法。

1. 安裝Cockpit
#

  1. 請先 在Linux安裝QEMU/KVM與Libvirt相關套件,並確保Libirtd服務已經啟動。
sudo systemctl status libvirtd
  1. 接著,參考 官方文件部署Cockpit。例如Ubuntu LTS得從backports套件庫裝。
# 印出系統版本代號VERSION_CODENAME,作為環境變數
. /etc/os-release

# 從backports套件庫安裝cockpit
sudo apt install -t ${VERSION_CODENAME}-backports cockpit

# 從backports套件庫安裝cockpit-machine虛擬機管理界面
sudo apt install -t ${VERSION_CODENAME}-backports cockpit-machine
  1. 啟動Cockpit系統服務
sudo systemctl enable --now cockpit.socket
  1. 開放防火牆,Cockpit預設使用的通訊埠是9090/tcp
sudo ufw allow 9090/tcp
sudo ufw reload
  1. 然後就可以用本機瀏覽器或另一台電腦開啟Cockpit的後台界面了。網址為https://Linux電腦的IP:9090。帳號密碼就是你Linux系統的使用者帳號。要方便管理就直接用root登入吧。

2. 管理QEMU/KVM虛擬機
#

  1. 需要安裝cockpit-machine套件,Cockpit網頁左側才會出現「Virtual machines」選單。

  2. 點進去可以看到Linux電腦上的所有虛擬機

  3. 編輯硬體方面的用法跟Virt Manager十分類似,例如設定虛擬網路、修改硬體訊息、調整VirtIO共享目錄等,大部份操作都能用圖形界面完成。

若有Cockpit尚未實現的功能,恐怕你還是得用virsh edit指令編輯虛擬機的XML了。

3. 新增QEMU/KVM虛擬機
#

點選Create VM,然後依照需求建立VM。

如果Installation Type選取Download an OS,則它會自動按照你選的內容下載對應ISO。但是此選項只能用來安裝Linux。


若要安裝Windows和其他系統,你得自行下載ISO到Linux電腦,再將Installation Type改為Local Install Media並指定ISO路徑才行。

例如:

  1. 點選Cockpit左下角的Terminal啟動遠端Linux的終端機,執行 UUP DUMP的指令稿,取得Windows 11的ISO。

  2. 然後參照下圖填入路徑:

  3. 再參考 Windows 11 QEMU/KVM安裝方法新增TPM硬體,開始安裝系統。

4. 存取QEMU/KVM虛擬機桌面
#

  1. 如果虛擬機有設定VNC服務,開機後應可從Cockpit網頁直接存取桌面。

  2. 不過Virt Manager新增的虛擬機預設應該是以SPICE為主,這個時候得確保該虛擬機的SPICE正在監聽所有網路界面:

換成virsh edit,這一段的XML長這樣:

<graphics type="spice" port="-1" autoport="no" listen="0.0.0.0">
  <listen type="address" address="0.0.0.0"/>
  <image compression="off"/>
</graphics>
  1. SPICE預設使用的通訊埠為5900,必須開啟Linux的防火牆
sudo ufw allow 5900
sudo ufw reload
  1. 從Cockpit網頁將虛擬機開機,然後點選Launch Remote Viewer下載.vv檔案

  2. 以文字編輯器開啟.vv檔案,確認裡面填寫的host是你的遠端Linux IP

[virt-viewer]
type=spice
host=192.168.1.107
port=5900
fullscreen=0

[...............................GraphicsConsole]

5.. 再用 Virt Viewer開啟vv檔(注意是Virt Viewer,不要跟Virt Manager搞混),即可連線到遠端桌面。

5. 用Cockpit建立GPU直通
#

以Nvidia GPU直通為例,首先你得設定IOMMU和VFIO綁定,步驟參見: Ubuntu Nvidia GPU直通給Windows虛擬機

確認Nvidia GPU隔離完成,就能在Cockpit選單,將Linux Host的Nvidia GPU指派給虛擬機使用了。

參考資料
#

相關文章

Ubuntu單GPU直通方法,Nvidia顯示卡直通給Windows 11 QEMU/KVM虛擬機
分類   資訊科技 虛擬機與容器技術
標籤   GPU Passthrough PCI Passthrough Ubuntu QEMU-KVM Libvirt
開源友好的主機供應商「PikaPods」,一鍵架設Docker雲端服務
分類   Linux系統 Self-hosting自架
標籤   Nextcloud Docker Podman
Sunshine:Linux版Moonlight教學,自架免費雲端串流遊戲服務+遠端桌面
分類   Linux系統 Self-hosting自架 Linux玩遊戲
標籤   Moonlight Game Streaming Cloud Gaming Remote Desktop Steam Linux

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur或Postimages。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用圖床網站。