在本地安裝 Ubuntu 來便開發或測試時,比起 vagrant, docker, vm 等,我比較喜歡用 Ubuntu Multipass, 隨手便安裝好一個新 server. 它的安裝、操作、刪除也很簡單。

安裝

先去官網選擇你使用的 OS, 根據指示安裝便可。

Multipass orchestrates virtual Ubuntu instances

我這裡選的是 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 位置:

# 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 size.

可以先停止運行 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 登入時,會遇到以下情況,需要用 private key 登入。

Permission denied (publickey).

其實 multipass 是製作了一個 private key 的。

Windows 位置在這:

# 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

Change Multipass instance memory and CPU allocation after launch

Recommended Posts

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments