開発者向けイベント用に Ubuntu 仮想マシンを用意してみた

コンテナ系の開発者イベントでは、Docker などの関連ツールを事前にインストールすることをお願いしていますが、特に Windows 環境においてトラブルが目立ちます。

Windows 環境では、Docker for Windows と Docker Toolbox があります。特に後者は VirtualBox という仮想環境を用いています。仮想環境を導入した自分のPCから、仮想のクラウド環境にアクセスして、これまた仮想サーバーを操作する、という、ちょと笑えないパズルのような状況に陥ります。

そこで発想の転換をしてみました。「どうせ仮想環境を用意するなら、そのイベントに合った仮想マシンを配布しちゃえば楽々操作じゃない？」って。まあ環境設定も学習の一環なので、主にトラブル対応を目的に、ちょっと試してみたいとおもいます。

ちなみに元ネタは [コチラ](https://qiita.com/yamachan360/items/c8d2b6164c72a1b3a7da) で、今回は仮想マシン作成の部分を少し丁寧に説明してみました。

# 実行環境の作成

## VirtualBox の導入

まずは仮想環境を作成するため [VirtualBox](https://www.virtualbox.org/) を導入します。今回は v5 系の最新版(ver 5.2.30)を導入しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193519/f1846764-c22e-d3ce-d705-ef81799be731.png)

## Ubuntu iso ファイルのダウンロード

Ubuntu 18.04.2 LTS の日本語版 [ubuntu-ja-18.04.2-desktop-amd64.iso](https://www.ubuntulinux.jp/download/ja-remix) ファイルをダウンロードします。

## 仮想環境の作成

VirtualBox マネージャーを開き「新規」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193519/df5030e1-f96f-51a8-af3c-89312ef6f77c.png)
新規環境のポップアップが開くので、以下のように設定します。名前は自由ですが、今回は `ubuntu-sandbox` とします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193519/01818834-8af1-0902-37be-d9f8689c3e5f.png)
メモリーサイズは自由ですが、開発環境はけっこうメモリを使用しますので初期値の倍の 2GB に変更しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193519/69bf09f9-bb58-c8a5-bb25-ed9ea08d9919.png)
仮想ハードディスクは「作成する」「VDI」「可変サイズ」と選択し、こちらもサイズを初期値の倍、20GB に変更しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193519/c0ab96a6-04a9-8510-5b23-4d3eae66c251.png)
これで仮想環境が作成されます。

## 仮想環境の設定変更

VirtualBox マネージャーに戻って「設定」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193519/f40dc27c-c21a-ae7c-289b-8f62a6271b99.png)
システム欄のマザーボードタブにあるチップセットを `ICH9` に変更します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193519/d10df033-3100-cac5-815f-a47c5f189bb8.png)
プロセッサ数も2に変更します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193519/c91aa7c1-e81a-fb9f-56e6-648620de525b.png)
そしてストレージの欄で以下のように「仮想光学ディスクファイルを選択」して、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193519/aeb20e00-3827-56da-cce4-211cd3011c0c.png)
さきほどダウンロードした Ubuntu iso ファイルを選択して指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193519/13d110b1-1d5b-2935-fc06-a02ddd55d7e7.png)

## 仮想環境の設定確認

VirtualBox マネージャー右側の「詳細」メニューから、今回の設定を確認しておきましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193519/77e289f8-a301-4d39-fac6-4970c26bc463.png)

## 仮想環境の起動

いよいよ仮想環境の起動です。さきほど作成した仮想マシンを選択した状態で「起動」メニューをクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193519/48528fd8-99a5-5705-2dbf-72a184927e6f.png)
少し待つと仮想マシンが起動し、以下のような Ubuntu の導入画面になります。「Ubuntuをインストール」をクリックし先に進みましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193519/0498629a-6c6b-23d3-3dde-c7a87510cfc9.png)

## Ubuntu のインストール

キーボードレイアウトの部分はそのまま「続ける」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193519/30faa98a-c480-7a37-3d29-659acd673a57.png)
アップデートと他のソフトウェアの画面では、「最小インストール」に変更してから「続ける」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193519/a5f730da-1200-0079-383a-4d71d554128c.png)
インストールの種類の画面はそのまま「インストール」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193519/3af648c2-9498-ba52-c0b6-b126718dcda1.png)
確認画面で「続ける」を選択すると、どこに住んでいますか？画面になるのでそのまま「続ける」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193519/3ad11f68-24ce-c083-d7d7-1314ed13d664.png)
最後にあなたの情報を入力してください画面になりますので、ここではこの仮想イメージを誰でも使えるように、汎用的な値を入力しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193519/64472f70-dc1a-b26f-db1f-20b26e92f0f6.png)

※ パスワードには `password` を設定してあります

※ これらは特別な脆弱な処置で、個人で使用する場合にはしっかりしたユーザー名やパスワードを設定してください

「続ける」で Ubuntu のインストールが始まりますので、しばらく待ちましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193519/1bbac41c-9789-e935-38c9-954b3a128b8d.png)
インストールが完了すると以下のような表示になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193519/839c112f-ec76-e2e1-f066-15f65872f3de.png)
再起動すると以下のように Ubuntu 環境が起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193519/0cd39fc3-7f0b-6391-5d29-5e3a4038c42a.png)
アップデートの案内などが表示されたら、アップデートしておきましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193519/2583a893-3ec3-26f0-7704-1e28a0b895a5.png)

## スナップショットの作成

アップデートが終了したら、右上の電源メニューからいったん仮想マシンを終了させます。スナップショットにある「作成」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193519/6fbef225-a292-8fae-ad75-2fe5605c6e96.png)
以下のような簡単な名前と説明を入力しておきましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193519/e9b93b2c-2a71-8337-06d0-6306733c3301.png)
復元機能でこの状態に戻すことができるのようになったこと、が判りますね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193519/784278c0-fea8-2145-9457-21db638f9702.png)
なおこの時点での仮想HDDの利用状況はこんな感じで、6GB ぐらい使用中なようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193519/b8a963e9-3589-d7ee-d251-ae126b9675dc.png)

## 開発ツール類の導入

端末を開いてコマンドを適当に入力してみると、さすが最小インストールだけあって、何も入っていないことがわかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193519/1399eed7-fb23-9903-5e4f-c319fd521e85.png)
表示されたヘルプを元に、基本的なツールを導入します。

```
sudo apt update
sudo apt install build-essential
sudo apt install curl
sudo apt install python
sudo apt install nodejs
sudo apt install npm
```

ちなみに python は ver2系のようで、python3 と使い分けるようですね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193519/d8be6184-3480-9be5-a59f-4fb7145f5267.png)
次に以下のコマンドで git, ibmcloud, kubectl などを導入します。

```
curl -sL https://ibm.biz/idt-installer | bash
```

[コチラ](https://ibm.box.com/v/iks-workshop) を参考に動作確認しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193519/ef06cbb1-eb1b-570f-d96b-79bbb2249349.png)
今回の開発ツールの導入後、ディスクの空きは1GB程しか減っていないようで、ちょっと安心してみたり。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193519/e3bb4ac5-f6f5-0254-6665-29583f4bbb5a.png)
ここでもう一度、仮想マシンの電源を落として、スナップショットを取っておきましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193519/bdfceae2-70c6-efba-125f-b4ab954914be.png)

# 仮想マシンの配布を試してみる

さてここで、セットアップ済みの仮想マシンを配布することを考えてみます。セットアップ済みの仮想HDDファイルを配布すれば良いかと思っていましたが、VirtualBox の機能で仮想マシンのエクスポートがありました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193519/98469cb9-ac60-79a1-dcbd-4ddbfb337702.png)
幾つかのフォーマットがあるようですが、今回はデフォルト値そのままで進めます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193519/ca597435-5170-956d-c95c-895dee5712d7.png)
作成できました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193519/406a35d2-45ba-042d-d4fe-a99bacac102c.png)
この .ova ファイルを別なPCにコピーして VirtualBox でインポートしてみましたが、ちょっとバージョンが古い (ver 5.2.20) にも関わらず、無事に動作しました。壊れたら削除してインポートし直せば良いわけですし、これは結構、気楽に使えそうな気がしてきました。

# というわけで

とりあえず配布用の仮想マシン環境を用意してみたわけですが。

本当に使えるのか？便利なのか？まだまだ未知の領域だったりします。というわけでこのページは完成ではなく、引き続き更新していくつもりでいます。

とりあえず自分は、日常的に使うとおもうのでw