Ubuntu仮想環境 "Multipass" にトライした話(1)

 Ubuntu仮想マシンをぽんぽん立ち上げられる "Multipass" というものがあると知り、興味を持ちました。 例えば MySQLレプリケーションの例を示す時にも、MySQLサーバがどのように動作しているかを理解している人向けには「ポートを変えて立ち上げています」で通じますが、多くの人は「別々のサーバ上で動作しているMYSQL間で通信を行っている」ということを、その、ポートを変更して行うことに脳内で代替するのにエネルギーを必要とするようで、やはり、「いかにも別々のサーバで動作していますよ」というところからスタートできるのは大きいのです。
 ということで、トライ。

WindowsMacOSLinux上で動作するとのことで、とりあえず相性良さそうな Ubuntu上で試してみることにしました。手元の Windows 上で動作すれば良いのですが、VirtualBoxVMWare workstation と共存できない(multipassの動作には Hyper-Vを有効にする必要がある)ので、諦めました(注:この日記を書くために念のため検索してみたら、VirtualBox 6.0ではHyper-Vが有効でも動作するようになったみたい。あとで試したい。VMWareは、まだっぽい?)

Ubuntu環境の用意

 とりあえず、さくらインターネットVPSで、実験用に一台契約しているものがあるので、そちらに、Ubuntu 18.04 をインストール。sshで接続。
 たしなみとして、とりあえず最新化。

$ sudo apt-get update
||< 

** multipass のインストール
 multipass のインストールには snap というものを使うらしい。snapが何かはよく分かっていないが、とりあえず今日は「そういう道具がある」ということで進める。snap自体、Ubuntu 18.10には標準で入っていると書かれた記述も見かけたけど、今回の環境には入っていなかったので、インストール。
>||
$ sudo apt install snapd

 そして、snap を使って multipass をインストール。

$ sudo snap install multipass --classic

 インストール後、multipass help を実行して確認しようとしたところ、パスが通っていないとのこと。 共通の設定ファイルをsourceとかで読み込ませれば良いのだろうけど、今回は面倒なのでログインしなおし。ログインしなおすと、 multipass のあるフォルダにパスが通りました。

はじめての multipass

 ということで、helpを見てみます。

ubuntu:~$ 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:

  find      Display available images to create instances from
  launch    Create and start an Ubuntu instance
  start     Start instances
  stop      Stop running instances
  restart   Restart instances
  suspend   Suspend running instances
  delete    Delete instances
  recover   Recover deleted instances
  purge     Purge all deleted instances permanently

  list      List all available instances
  info      Display information about instances

  exec      Run a command on an instance
  get       Get a configuration setting
  mount     Mount a local directory in the instance
  umount    Unmount a directory from an instance
  transfer  Transfer files between the host and instances
  set       Set a configuration setting
  shell     Open a shell on a running instance

  version   Show version details
  help      Display help about a command

(今後自分で使いやすいようにコマンド一覧部分の出力を、手作業で順序並べ替えてあります)

 いい感じ。
 使えるイメージを一覧するのは find らしいので、実行してみる。

ubuntu:~$ multipass find                                                                                           
Image                   Aliases           Version          Description
snapcraft:core          core16            20200221         Snapcraft builder for Core 16
snapcraft:core18                          20200221         Snapcraft builder for Core 18
core                    core16            20200213         Ubuntu Core 16
core18                                    20200210         Ubuntu Core 18
16.04                   xenial            20200218.1       Ubuntu 16.04 LTS
18.04                   bionic,lts        20200218         Ubuntu 18.04 LTS
19.10                   eoan              20200211         Ubuntu 19.10
daily:20.04             devel,focal       20200305         Ubuntu 20.04 LTS

multipass で Ubuntu 19.10環境を構築してみる

launch で新しい環境を作成できるそうなので、作ってみる。名前は myubu01 とした。

ubuntu:~$ multipass launch --name myubu01 19.10
launch failed: CPU does not support KVM extensions. 

 ここ、KVMが動いていないっぽい。

 終了。