注意
現在は VirtualBox や Vagrant を使ったワークフローよりも Docker を使ったワークフローの方が効率的で、
この記事で紹介しているすべてのツールが習得不要になります。
Docker が導入できないかどうかを最初に検討することをおすすめします。
この記事では、Vagrant の Box イメージを作成するための環境構築の手順を解説します。
Vagrant Box イメージの作成が必要になる経緯
Vagrantfile に構築手順を定義することで VirtualBox など仮想環境の構築自動化ができます。
一方で、仮想環境を消去してしまうと、次に使うときに再度構築処理が実行されることになり、
構築までに時間がかかってしまいます。
Vagrantfile だけで構築手順を自動化するのではなく、
あらかじめ Vagrant の Box イメージを作成しておき、その Box イメージを共有することで
構築の時間をなくし、生産性を上げることができます。
Vagrantfile だけで構築手順を自動化した場合の問題点
- 環境をリセットしたいとき、構築処理の再実行が必要となり、待ち時間が必要になります
- チームで利用する場合、チームの人数分構築処理が実行され、チーム全体で消費される時間が大きくなります
上記の問題点を解消するために、事前に Box イメージ を作成しておき、
その Box イメージ を共有します。
環境構築の手順
1. 物理 PC を準備します
VirtualBox は仮想マシンにはインストールできないためです。
2. Chocolatey をインストールします。
3. VirtualBox, Vagrant, Packer をインストールします。
ここでインストールするツールの用途は次の通りです:
| ツール | 用途 |
|---|---|
VirtualBox |
仮想環境を動作させるため |
Vagrant |
VirtualBox をコマンドやプログラムで制御するため |
Packer |
Vagrant を利用したイメージ作成手順を定義し、コマンドひとつでイメージを作成するため |
choco install -y virtualbox vagrant
2020-07-15 現在、次の手順でインストールする packer-builder-vagrant が
Packer バージョン 1.5.0 以降に対応していないため、Packer はバージョン 1.4.5 をインストールします:
choco install -y packer --version=1.4.5
4. packer-builder-vagrant をインストールします。
初期状態では Packer は Vagrant の Boxイメージ をベースイメージにしてイメージを作成することができません。
このプラグインは、Packer でイメージを作成するときのベースイメージとして
Vagrant の Boxイメージ を指定することを可能にします。
ちなみに、Packer は VirtualBox の iso や ovf をベースイメージにすることはできます。
つまり、Vagrant のイメージのビルドを複数段階に分けなくてもよければ、
このプラグインがなくてもイメージの作成を行うことはできます。
4-1.
個人用フォルダーの packer.d フォルダーに
“plugins“ というフォルダーを新規作成します。
4-2.
次の GitHub リポジトリーを開きます:
themalkolm/packer-builder-vagrant: 📦 Packer builder to use existing vagrant boxes
4-3.
Release タブから次の名前の exe ファイルをダウンロードします:
packer-(version)_packer-builder-vagrant_windows_amd64.exe
4-4.
ダウンロードしたファイルを手順 4-1. で新規作成した plugins フォルダーに移動し、
ファイル名を次の名前に変更します:
packer-builder-vagrant.exe
以上で、
Packer のコマンドを実行するだけで Vagrant の Boxイメージ を作成することができる環境ができあがりました。