Vagrant 0.8.7 で用意されているプロビジョニングの仕組みは、
の3種類ほど。
chef-solo を使いたかったのだが、Windows 7 ではどうしても失敗してしまう。
(関連:現在の Vagrant の Windows 7 対応状況)
ローカルのディレクトリは、/vagrant でマウントされるので、そこに chef リポジトリを設置しておけば、Shell から chef-solo を呼べるのではないか?と考え試してみた。
以下のファイルを用意。
Vagrantfile
Vagrant::Config.run do |config|
config.vm.provision :shell, :inline => 'sh /vagrant/bin/provision.sh'
end
bin/provision.sh
#!/bin/sh
if [ ! -e /var/chef/cache ]; then
sudo mkdir -p /var/chef/cache
fi
cd `dirname $0`
sudo chef-solo -c solo.rb -j node.json
bin/solo.rb
cookbook_path ["/vagrant/chef/cookbooks"]
bin/node.json
{"run_list":["必要レシピ",...]}
chef ディレクトリ以下が、chef リポジトリである。ひな型を Github から取得しておく。
git clone https://github.com/opscode/chef-repo.git chef
chef/cookbooks 以下に必要な cookbook を用意する。
これで、vagrant up すれば、chef-solo がキックされる。
