boxes = { "ubuntu/trusty64" => { :ip => '192.168.33.10', :cpu => "2", :ram => "256" }, "ubuntu/xenial64" => { :ip => '192.168.33.11', :cpu => "2", :ram => "256" }, "centos/7" => { :ip => '192.168.33.12', :cpu => "2", :ram => "256" }, "centos/6" => { :ip => '192.168.33.13', :cpu => "2", :ram => "256" }, } Vagrant.configure("2") do |config| boxes.each do |box, options| config.vm.define box.dup.sub!("/", "-") do |machine| machine.vm.box = box machine.vm.box_check_update = false machine.vm.network :private_network, ip: options[:ip] machine.vm.provider "virtualbox" do |vb| vb.memory = options[:ram] vb.cpus = options[:cpu] end machine.vm.provision "ansible" do |ansible| ansible.playbook = "tests.yml" end end end end