MultipassはUbuntuを開発、サポートするCanonicalが提供する、マルチプラットフォームに対応する仮想マシンソフトウェアです。
分類としては仮想マシンソフトウェアではありますが、基本的にUbuntuベースでOKな人向けのツールです。 以前のMultipassはコマンドラインで使うのが主で簡易的なGUIが実装されるのみであり、操作の中心はコマンドラインだったと思います。
ところが久しぶりに最新版にアップデートしてみたら、次のような使いやすそうなダッシュボードが現れました。
コマンドで言うところの「multipass find」を実行した時に現れる、MultipassがサポートするOSイメージの一覧が表示されています。
Ubuntu ServerとUbuntu Coreのイメージと、Ubuntuにいくつかのソフトウェアがインストール済みのイメージが提供されているようです。Ubuntu Coreを常用するのはなかなか難しいと思いますが、Ubuntu Serverであれば色々使えそうですね。
「Launch」ボタンをクリックすると、イメージをダウンロードしたのちにインスタンスが起動します。「Launch」ボタンの右側の歯車ボタンを押すと、インスタンス名、CPU、メモリー、ストレージの設定、ブリッジネットワークへの接続をするか、マウントポイントを設定するかカスタマイズした上でインスタンスを起動できます。設定からEthernetインターフェイスを設定しておけば、インスタンスにブリッジネットワークを割り当てて物理ネットワークに繋ぐことも簡単にできます。
インスタンスは環境のCPUアーキテクチャーに合わせたUbuntuのクラウドイメージを使って起動するため、ISOイメージをダウンロードする必要はありません。
インスタンス起動後はインスタンスの一覧からインスタンスが利用中のシステムリソースの状態の確認や、インスタンスの起動、停止、サスペンド、削除ができます。
これらのUbuntuイメージにはcloud-initがインストールされているため、いろいろな設定やパッケージなどを仕込んだりと言ったことが可能ですが、残念ながらcloud-initのファイルを仕込んだりとかはGUIからはできないようです。より細かいことをしたければ、従来のようにCLIベースでやってねと言ったところみたいです。
例えば公開鍵や必要なパッケージを仕込んで、インスタンスを起動するということも可能です。 cloud-initのファイルの記述はその他クラウド向けのものも使い回しが効くという点がメリットです。
$ cat cloud-config.yaml #cloud-config timezone: Asia/Tokyo locale: ja_JP.utf8 packages: - mysql-server ssh_authorized_keys: - ssh-rsa AAAAABCxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx $ multipass launch -n foo 22.04 --cloud-init cloud-config.yaml
Multipassで作成したインスタンスはいわゆるただの仮想マシンなので、今回SSHの公開鍵を仕込んだことでVSCodeのRemote SSH拡張機能と組み合わせば書いたコードの実行環境としても使えます。OSはUbuntu限定にはなりますが、テスト環境として使えるでしょう。
そして今回ここが気に入ったところなのですが、インスタンスのシェルをMultipassのGUIから開けるようになっていました。開いた状態がこのような感じで、まるでUbuntuの端末でシェルを開いているような見た目になっています。同じインスタンスに対してシェルを複数開ける点もポイント高いです。このシェルへはマウスの右クリックなどを使ってコピーペーストみたいな操作はできないようですが、キーボードショートカットは使えるので、まあ困ることはないと思います。
GUIだけではなく従来のようにコマンドベースでも操作できますし、ランチャーからインスタンスの開始、停止、シェルを開く操作も可能になっています。強化されたGUIツールはかなり気に入りました。
まるでローカルで手軽に動く小さなクラウドみたいな感じで、結構便利に使えそうですね。 もし、まだ新しいMultipassを触っていない方はぜひインストールして、使ってみてはいかがでしょうか?