Ubuntu Multipass 筆記

要在本地幾分鐘裝好一個 Ubuntu Server 環境,可以考慮使用 Ubuntu Multipass, 省時又方便。

在本地安裝 Ubuntu 進行開發或測試時,比起 vagrant, docker, vm 等工具,我比較喜歡用Ubuntu Multipass, 這樣可以輕鬆快速地設置一個新的伺服器。其安裝、操作和刪除過程都算簡單易用。

安裝方法

先去官網,選擇您正在使用的操作系統,並依照提示進行安裝。

我這裡選的是 Windows (Hyper-V).

使用方法

實際上,您只需參考上面官網的 Step 2 便好了。非常簡潔。

都是在 Terminal 中,輸入 multipass + 常用的 launch / list / shell / start / stop / mount / delete 這些了。

常見事項

修改 RAM, CPU 設定

因為 default 創建的 instance 的 RAM, CPU 設定得比較低,可能不夠用。

可以找到 multipassd-vm-instances.json 作出修改。

multipassd-vm-instances.json 位置:

1
2
3
4
5
6
7
8
# macOS
/var/root/Library/Application Support/multipassd/multipassd-vm-instances.json

# Ubuntu
/var/snap/multipass/common/data/multipassd/multipassd-vm-instances.json

# Windows
C:\\Windows\\System32\\config\\systemprofile\\AppData\\Roaming\\multipassd\\multipassd-vm-instances.json

例如,我要在 Ubuntu 和 macOS 裡,修改給予 instance 的 RAM 大小.

可以先停止運行 Multipass, 在 multipassd-vm-instances.json 找到相應 instance 的 mem_size

若我要給予它 8GB RAM, 把數字修改為 8589934592(因為其單位為Bytes,所以是8 * 1024^3)。然後重新啟動 Multipass 即可生效。

但在 Windows 裡,修改 multipassd-vm-instances.json 似乎不會生效。需要打開 Hyper-V Manager 或 VirtualBox 進行修改。

使用 SSH 登入

我通常使用 multipass shell <instance_name> 這種方式登入。但有時候,當需要使用SSH登入時,可能會遇到以下情況,需要使用私鑰登入。

1
Permission denied (publickey).

實際上, Multipass 已經創建了一個私鑰。

在 Windows 中,其位置如下:

1
2
# Windows
C:\\Windows\\System32\\config\\systemprofile\\AppData\\Roaming\\multipassd\\ssh-keys\\id_rsa

至於 macOS 和 Linux, 其位置應該在上述的 multipassd-vm-instances.json 附近。

您可以使用 ssh -i <key_path> ubuntu@<ip> 進行登入。

不過為求方便,我會把自己電腦裡的 public key 放進 instance 的 /home/ubuntu/.ssh/authorized_keys 內(可直接修改 / 參考這裡 ssh-copy-id 的使用方式)。

References

介紹一款Ubuntu虛擬機管理神器 - Multipass

https://github.com/canonical/multipass/issues/1158

在啟動後更改Multipass實例的記憶體和CPU分配

comments powered by Disqus