注意
現在は 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イメージ
を作成することができる環境ができあがりました。