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