Ubuntu Weekly Recipe

第590回 Windows/macOS/Linuxで使える仮想マシン管理ツール『multipass』

この記事を読むのに必要な時間:およそ 7.5 分

multipassはWindows/macOS/Linuxで使える仮想マシン管理ツールです。特にUbuntuサーバーのインストールされた仮想マシンを気軽に用意したい時に,その効果を発揮します。今回は「オンプレミスで動くなんちゃってAWS EC2」的に利用できるmultipassのかんたんな使い方を紹介しましょう。

LXDのようなインターフェースを備えたCLIツール

multipassはCanonicalが開発している,Windows/macOS/Linuxで使える仮想マシン管理ツールです。まだ「ベータ版」という扱いではあるものの,次のような機能を備えており,気軽にUbuntuがインストールされたサーバーインスタンスを構築できるのが特徴です。

  • CLIをメインにしたUI

    • コマンド1つで仮想マシンを作成&起動できる
    • 仮想マシンの作成・起動・停止・削除に加えて,ログインやファイルのやり取りもコマンドで実現
  • cloud-initによる仮想マシンの設定が可能

  • 多種多様なバックエンドのサポート

    • Linux用バックエンドにはQEMU/KVMを使いつつ,libvirtにも切り替え可能
    • Windows上ならHyper-VをmacOS上ならHyperKitをサポート
  • 自作のイメージの起動

なお,一般的な仮想マシン管理ツールと比べると,次のようなデメリットも存在します。

  • グラフィック機能の非サポート

    • あくまでサーバー用途
    • デスクトップ環境を試したいのであれば従来のツールの利用をおすすめ
  • ホストの外からのアクセス関連設定機能がない

    • ホストの外から作成した仮想マシンにアクセスしたいならホストOSごとの設定が必要
    • 仮想マシンからインターネットへのアクセスは可能

いずれにせよ実運用で使うには,まだまだ機能不足です。とはいえ「LXDみたいに気軽に仮想マシンインスタンスを立ち上げたり,ログインして使ってみたい」という用途であれば十分でしょう。

特にWindowsやmacOSでも,CLIから容易にUbuntuインスタンスを作成できるため,使い方によっては現時点でも非常に便利なツールとなるはずです※1⁠。

※1
第344回で紹介したuvtoolと何が違うのかと言われると難しいところです。multipassは他のOSもサポートしている点がuvtoolに対する強みとなります。しかしながらLinux単体で考えたときに,その違いはLXDライクなコマンド体系を備えていることぐらいでしょうか。最初uvtoolの後継として開発されているのかとも思ったのですが,どうやらmultipassの開発者はあまりそういう意図を持っていないようですし,uvtoolのほうも今年に入っていくつかコミットがあるようにまだ開発が続いているようです。

multipassのインストール

multipassはWindowsやmacOSにも対応しています。multipassの公式サイトからexeファイルやpkgファイルのリンクがはられていますので,それをダウンロードしてインストールしてください。原則として,WindowsならHyper-VもしくはVirtualBoxが,macOSならHyperKitが有効化・インストールされていることが前提となります。

UbuntuをはじめとするLinux向けにはsnapパッケージが用意されています。第582回を参考にまずはsnap環境を構築してください。GitHub上にLinux版のソースコードが公開されているので,それをビルド・インストールしても良いでしょう。

Ubuntuであればsnapパッケージをインストールする方法が一番かんたんです。

$ sudo snap install multipass --classic --beta

multipassはまだ安定版をリリースしていないのでbetaチャンネルからダウンロードします。また,それなりにパッケージサイズが大きいため,余力のあるインターネット回線を利用してください。

multipassでインスタンスを作成する

multipassをインストールするとmultipassデーモンが動き出します。multipassコマンドはこのmultipassデーモンとUnixドメインソケット経由で通信しながら,仮想マシンインスタンスを操作するのです。このあたりはLXDと同じ形ですね。

まずはmultipassコマンドが使えるか確認してみましょう。

$ multipass help
Usage: multipass [options] <command>
Create, control and connect to Ubuntu instances.

This is a command line utility for multipass, a
service that manages Ubuntu instances.

Options:
  -h, --help     Display this help
  -v, --verbose  Increase logging verbosity, repeat up to three times for more
                 detail

Available commands:
  delete    Delete instances
  exec      Run a command on an instance
  find      Display available images to create instances from
  get       Get a configuration option
  help      Display help about a command
  info      Display information about instances
  launch    Create and start an Ubuntu instance
  list      List all available instances
  mount     Mount a local directory in the instance
  purge     Purge all deleted instances permanently
  recover   Recover deleted instances
  restart   Restart instances
  set       Set a configuration option
  shell     Open a shell on a running instance
  start     Start instances
  stop      Stop running instances
  suspend   Suspend running instances
  transfer  Transfer files between the host and instances
  umount    Unmount a directory from an instance
  version   Show version details

これを見れば,もうおおよその使い方はわかると思います。

著者プロフィール

柴田充也(しばたみつや)

Ubuntu Japanese Team Member株式会社 創夢所属。数年前にLaunchpad上でStellariumの翻訳をしたことがきっかけで,Ubuntuの翻訳にも関わるようになりました。