在本地安裝 Ubuntu 來便開發或測試時,比起 vagrant, docker, vm 等,我比較喜歡用 Ubuntu Multipass, 隨手便安裝好一個新 server. 它的安裝、操作、刪除也很簡單。
Table of Contents
安裝
先去官網選擇你使用的 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