Set up ruby test environment by Vagrant and Chef

chefを使ってVagrantのVM上にrbenvによる複数バージョンのrubyがインストールされた環境をつくる,tcnksm/vagrant-chef-ruby

まず,Vagrantによる試験環境の構築.今回はUbuntu Precise 12.04 (64 bit)を使う.

vagrant init precise64 http://files.vagrantup.com/precise64.box

Vagrantのプラグインであるvagrant-omnibusを使えば,VMを立ち上げるときに,chefがなければ自動でインストールをしてくれる.vagrant plugin install vagrant-omnibusでインストールし,Vagrantfileを以下のように記述.

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  ...
  # vagrant-omnibus (setup chef-environment in vm)
  config.omnibus.chef_version = "11.4.0"
  ...
end

次に,chefによるrubyのインストール.rubyのインストールレシピは他でも使いたいのでcookbookを作成した,tcnksm/chef-rubies.Berksfileに今回作成したcookbookを指定する.

cookbook 'rubies', :git => 'https://github.com/tcnksm/chef-rubies'

後は,berks install --path cookbooksでこれをインストールして,以下でVMに対してchefを実行すれば,ruby1.8.7,1.9.3,2.0.0がインストールされる.

knife solo cook -c config/solo.rb host