M1 MacBook ProではVirtualboxのarm非対応問題により、Vagrant が使えない*1ため、Multipassを試している。
Install
インストールは以下。qemuのインストールにはM1版のhomebrewが必要。
$ brew install --cask multipass $ brew install qemu
Find
インストールできるインスタンスのリストを表示。
$ multipass find Image Aliases Version Description 18.04 bionic 20220615 Ubuntu 18.04 LTS 20.04 focal,lts 20220615 Ubuntu 20.04 LTS 21.10 impish 20220616 Ubuntu 21.10 22.04 jammy 20220616 Ubuntu 22.04 LTS anbox-cloud-appliance latest Anbox Cloud Appliance charm-dev latest A development and testing environment for charmers docker latest A Docker environment with Portainer and related tools minikube latest minikube is local Kubernetes
Launch
必要に応じて init.ymlファイルに初期設定を記述する。
$ cat init.yml # cloud-config repo_update: true repo_upgrade: all # install packages packages: - build-essential - bison - flex - binutils - libreadline-dev - zlib1g - zlib1g-dev - libssl-dev - gdb - git
以下のようにインスタンスを生成+起動する。
$ multipass launch 22.04 --name ubuntu22 --mem 4G --disk 20G --cloud-init init.yml
Shell
インスタンスへのアクセスは以下のようにする。
$ multipass shell ubuntu22
List
手元のインスタンスのリストを表示する。
$ multipass list Name State IPv4 Image ubuntu22 Stopped -- Ubuntu 22.04 LTS ubuntu22dev Stopped -- Ubuntu 22.04 LTS
Start & Stop
インスタンスの開始と停止は以下:
$ multipass start ubuntu22 $ multipass stop ubuntu22
Disk領域の拡張
qemu-imgでサイズを変更する。
$ multipass stop ubuntu22 $ sudo su - $ cd /var/root/Library/Application\ Support/multipassd/qemu/vault/instances/ubuntu22 $ '/Library/Application Support/com.canonical.multipass/bin/qemu-img' resize ubuntu-22.04-server-cloudimg-arm64.img 22G
CPU数とメモリの変更
インスタンスを停止し、以下のコマンドを実行。
$ sudo launchctl unload /Library/LaunchDaemons/com.canonical.multipassd.plist
以下のファイルで、対応するインスタンスのnum_coresとmem_sizeを変更する。
$ sudo vi /var/root/Library/Application Support/multipassd/qemu/multipassd-vm-instances.json
最後に以下を実行。
$ sudo launchctl load /Library/LaunchDaemons/com.canonical.multipassd.plist
インスタンスのコピー
できるのかな?調査中。
Delete & Purge
インスタンスの削除は以下:
$ multipass delete ubuntu22 $ multipass purge
参考
- https://qiita.com/satokaz/items/ab974af5632d1389add2
- https://zenn.dev/kujirahand/articles/57c367702ed1f2
- https://qiita.com/akrsaito/items/83cc963546f4b76ee1b3
- https://dev.classmethod.jp/articles/intro-to-multipass/
- https://qiita.com/u1and0/items/4926da3bef17853d33d1
- https://zenn.dev/mitzh/articles/2816de571f013d
- https://gist.github.com/Jatapiaro/6a7c769a07911adc629e1604729d4c7a