読者です 読者をやめる 読者になる 読者になる

veeweeでVagrant用仮想マシン(Base Box)を作成する

Vagrant では Base Box と呼ばれるテンプレートを使用して、仮想マシンを作成します。
以下のサイトで様々な Base Box が公開されています。

開発環境を手軽に構築するという目的であれば、公開されている Base Box を利用すればよいと思いますが、Vagrant の理解を深めるために Base Box を自作してみました。
といっても、一から自作するのは敷居が高かったので、veewee というツールを使用しました。

veewee とは

veewee は、Vagrant の Base Box を自動生成するツールで、Vagrant のプラグインとして動作します。

veewee のインストール

RubyGems でインストールします。

$ gem install veewee
$ gem install bundler

Base Box の作成

各インストールイメージのテンプレートが用意されているので、確認します。

$ vagrant basebox templates
The following templates are available:
vagrant basebox define '<boxname>' 'CentOS-4.8-i386'
vagrant basebox define '<boxname>' 'CentOS-5.5-i386-netboot'
vagrant basebox define '<boxname>' 'CentOS-5.5-x86_64-netboot'
...
vagrant basebox define '<boxname>' 'CentOS-6.3-x86_64-minimal'
...
vagrant basebox define '<boxname>' 'windows-8-preview-amd64'

CentOS-6.3-x86_64-minimal を使用して、Base Box を作成しました。
define で設定ファイルの作成、build で仮想マシンの作成・OS インストール、export で Vagrant 用 Base Box としてエクスポートします。
build 時に iso ファイルのダウンロードを聞かれます。

$ mkdir -p ~/work/vagrant; cd ~/work/vagrant
$ vagrant basebox define centos_6.3_x86_64_ja CentOS-6.3-x86_64-minimal
$ vagrant basebox build centos_6.3_x86_64_ja
[centos_6.3_x86_64_ja] - Download url: http://www.mirrorservice.org/sites/mirror.centos.org/6.3/isos/x86_64/CentOS-6.3-x86_64-minimal.iso
[centos_6.3_x86_64_ja] - Md5 Checksum: 087713752fa88c03a5e8471c661ad1a2
Download? (Yes/No)yes
$ vagrant basebox export centos_6.3_x86_64_ja

仮想マシンの起動

作成した Base Box を使用して、仮想マシンを起動します。

$ mkdir -p ~/work/dev/centos_6.3; cd ~/work/dev/centos_6.3
$ vagrant box add centos_6.3_x86_64_ja ~/work/vagrant/centos_6.3_x86_64_ja.box
$ vagrant init centos_6.3_x86_64_ja
$ vagrant up