$num_workers=2 Vagrant.require_version ">= 1.8.6" Vagrant.configure("2") do |config| config.vm.box = "yk0/ubuntu-xenial" config.vm.provider :libvirt do |libvirt| libvirt.memory = 4096 libvirt.cpus = 4 end config.vm.synced_folder "../..", "/src" config.vm.provision "shell", path: "host_setup.sh", privileged: false config.vm.define "master" do |config| config.vm.hostname = "master" config.vm.provision "shell", path: "master_setup.sh", privileged: false config.vm.network :private_network, ip: "192.168.1.10" end (1 .. $num_workers).each do |i| config.vm.define vm_name = "worker%d" % [i] do |config| config.vm.hostname = vm_name config.vm.provision "shell", path: "worker_setup.sh", privileged: false config.vm.network :private_network, ip: "192.168.1.#{i+20}" end end end