- Ubuntu Multipassは、ワークステーションでLinux仮想マシンをすばやく起動・管理するためのツール
- DockerやVirtualBoxの代替として、より簡単かつ手軽に使える
- ワークステーションをクリーンに保ち、ソフトウェアのテストやデプロイに役立つ
Multipassはどのように動作するのか?
- 新しい仮想マシンを作成して起動:
multipass launch --name backend
- 状態確認:
multipass info backend
- コマンド実行:
multipass exec backend -- systemctl restart apache
- インタラクティブシェルセッションを起動:
multipass shell backend
- すべてのインスタンス一覧:
multipass list
- 再起動:
multipass restart backend
- インスタンス削除:
multipass delete backend
- ディレクトリのマウント(
mount)やファイルコピー(transfer)などの追加コマンドもある
- 詳細なドキュメントはこちらで確認できる
Multipassで何ができるのか?
- 仮想マシンとコンテナは、開発者のツールベルトの中でも最も有用なツールのひとつ
- サードパーティ製ソフトウェアを隔離環境にインストールすることで、ワークステーションをクリーンで健全な状態に保てる
- クリーンな環境でテストやデプロイを行うことで、「自分のマシンでは動くのに」症候群を減らせる
- Docker、VMWare、VirtualBox、低価格なVPS、クラウドの使い捨てインスタンスなど、さまざまなソリューションがある
- Multipassの仮想マシンは完全なUbuntu LTSインスタンス
- Ubuntu Linuxサーバーでできることは、Multipassインスタンスでもすべて実行できる
- ワークステーションから隔離された状態でソフトウェアを実行できる
- 複数のマイクロインスタンスを起動して、自動化された統合テストを実行できる
- デプロイスクリプトをローカルでテストできる
Multipassの利点
Multipassインスタンスは完全なUbuntu LTSを実行する
nanoやcurlなど、必要なものは最初からそろっている
- 使い慣れたLinuxツールをすぐに使える
- 新しいコマンドを覚える必要がなく、開発者の認知負荷を減らせる
Multipassインスタンスは接続性がある
- インスタンスを起動した直後からLANやWANにアクセス可能
- 追加設定なしで接続が開かれている
- 仮想ネットワークを手動で構成したり、ポートをマッピングしたりする必要がない
Multipassインスタンスは永続的
- Dockerコンテナは使い捨てを前提に設計されている
- データは共有ボリュームに保存する必要がある
- Multipassでは
mountコマンドでホストのフォルダをインスタンスにマウントできる
- デフォルトインスタンスは標準でホームフォルダを
~/Homeとしてマウントし、ファイルにすぐアクセスできる
Multipassインスタンスの管理は簡単
- コマンド構文やオプションが少なく、覚えやすい
- コマンド実行やファイル転送機能により、ソフトウェアのインストール、統合テスト、デプロイ作業などを自動化するスクリプトを簡単に書ける
UIもある
- PopOS! LinuxボックスにMultipassをインストールすると、上部バーにUIが表示される
どこで入手できるのか?
- MultipassはLinux、MacOS、Windowsで利用可能
- Linuxでは
snapでインストールするのが最適
- Ubuntuベースのディストリビューションでは、
snapがすでにインストールされている可能性が高い
- そうでない場合は、パッケージマネージャーでまず
snapデーモンをインストールする必要がある
- 他のプラットフォームではこちらから適切なインストールパッケージをダウンロードできる
備考
- Oracle VirtualBoxのような他のVMソフトウェアが動作中だと、Multipassインスタンスが起動しない場合がある
- VirtualBoxを停止して再試行すればよい
GN⁺のまとめ
- Ubuntu Multipassは、開発者やDevOpsエンジニアにとって有用な仮想マシン管理ツール
- Multipassは開発環境を隔離してクリーンに保つのに非常に有用で、とくにさまざまなLinuxツールを簡単に使えるため開発者にとって親しみやすい。
- DockerやVirtualBoxよりも簡単かつ手軽に使える
- Dockerと比較すると、永続的なデータ保存やネットワーク設定の手軽さが大きな利点。ただし、Dockerの軽量性や高速なデプロイ速度も無視できない。
- 完全なUbuntu LTSインスタンスを実行するため、使い慣れたツールやコマンドをすぐに使える
- ローカルでさまざまなテストやデプロイシナリオを簡単に試せるため、実運用環境で発生しうる問題を事前に発見して解決できる
- さまざまなプラットフォームで利用でき、インストールも簡単
5件のコメント
内部的に仮想化ツールが必要なのを見ると、素直に仮想化ツールを直接使ったほうがよさそうです
本当にsnapをインストールしないといけないんですね? これのためにsnapまで入れるとなると、管理ポイントが増えるだけではないかと思います https://multipass.run/install
仮想化ゲストをUbuntuのみにするよりも、
ホスト上でrootless podmanを使う方法のほうがUbuntu、Alpine、RHEL、Rockyなど複数のLinux OSをゲストとして使えるため、デプロイ環境の多様な要件に対応しやすく、より有利です
新しいコマンドを覚える必要がないので、開発者の脳の容量を節約できる。
Ubuntu向けのVagrant?