Vagrantは標準ではVirtualBoxを仮想環境として利用しますが、とにかく遅いのが難点です。 Test-Kitchenを使ってChefのCookbookのテストをしたり、これらを継続的インテグレーションしようとしたときにこの遅さはたまりません。いくつか手段はあってお金持ちの皆様であれば、大富豪アプローチということで、仮想マシンを動かす母艦にXeon E5-2697 v2を積んだ高性能マシンを使ったりもできるのですが、普通に考えれば、VirtualBoxよりも軽量な仮想環境を使うのが有力なアプローチです。
今回はLXCを使って軽量な仮想環境を手に入れる方法を紹介します。
LXC自体の説明はこの辺とかこの辺を参照ください。 インストール対象の母艦はUbuntu 12.04 LTSです。
sudo apt-get install lxc
sudo visudo
として、以下を追記します。
Defaults !tty_tickets
vagrant plugin install vagrant-lxc
これでもろもろ準備完了しました。
vagrant init quantal64
を実行して雛形を作成し自分で編集しても大丈夫です。
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "quantal64"
config.vm.box_url = "http://bit.ly/vagrant-lxc-quantal64-2013-07-12"
config.vm.synced_folder "../data", "/vagrant_data"
end
VAGRANT_DEFAULT_PROVIDER
環境変数を指定しておくかのどちらかになります。vagrant up --provider=lxc
僕のしょぼい実験環境(Core2 Duo E8450 / メモリ8G / SSD)で、15秒くらいで起動します。halt→upだと約10秒。