def define_vm(config, name, ip)
  config.vm.define name.to_sym do |config|
    config.vm.hostname = name.to_s.gsub('_','-')
    config.vm.box = "ubuntu1204"
    config.vm.box_url = "http://s3.amazonaws.com/hs-vagrant-boxes/ubuntu1204.box"
    config.vm.network :private_network, ip: ip

    config.vm.provider :virtualbox do |vb|
      # http://askubuntu.com/questions/238040/how-do-i-fix-name-service-for-vagrant-client
      # May be fixed with a better configured box
      vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]

      # we don't need too much memory for our tests
      vb.customize ["modifyvm", :id, "--memory", "256"]
    end

    # chef-solo provider must be specified
    config.vm.provision :chef_solo do |chef|
      chef.cookbooks_path = %w[site-cookbooks cookbooks]
    end
  end
end

Vagrant.configure("2") do |config|
  define_vm(config, :vm0, "10.0.4.2")
  define_vm(config, :vm1, "10.0.4.3")
end