-
-
Save roblayton/c629683ca74658412487 to your computer and use it in GitHub Desktop.
# -*- mode: ruby -*- | |
# vi: set ft=ruby : | |
VAGRANTFILE_API_VERSION = "2" | |
cluster = { | |
"master" => { :ip => "192.168.33.10", :cpus => 1, :mem => 1024 }, | |
"slave" => { :ip => "192.168.33.11", :cpus => 1, :mem => 1024 } | |
} | |
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| | |
cluster.each_with_index do |(hostname, info), index| | |
config.vm.define hostname do |cfg| | |
cfg.vm.provider :virtualbox do |vb, override| | |
config.vm.box = "ubuntu/trusty64" | |
override.vm.network :private_network, ip: "#{info[:ip]}" | |
override.vm.hostname = hostname | |
vb.name = hostname | |
vb.customize ["modifyvm", :id, "--memory", info[:mem], "--cpus", info[:cpus], "--hwvirtex", "on"] | |
end # end provider | |
end # end config | |
end # end cluster | |
end |
Nice one. Thanks!
really helped me today!
This helped a lot, thanks
I need to insert a piece of code after the loop terminates here.
I even tried putting it after the last 'end',
still that external piece of code is getting executed just after the first iteration.
can someone help me with this ?
Code :
-- mode: ruby --
vi: set ft=ruby :
VAGRANTFILE_API_VERSION = "2"
cluster = {
"box5" => { :ip => "192.168.56.25", :cpus => 1, :mem => 512 },
"box6" => { :ip => "192.168.56.26", :cpus => 1, :mem => 512 },
"box7" => { :ip => "192.168.56.27", :cpus => 1, :mem => 512 },
"box8" => { :ip => "192.168.56.28", :cpus => 1, :mem => 512 }
}
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
#cluster.each_with_index do |(hostname, info), index|
for var in cluster
config.vm.define hostname do |cfg|
cfg.vm.provider :virtualbox do |vb, override|
config.vm.box = "mybox.box"
override.vm.network :private_network, ip: "#{info[:ip]}"
override.vm.hostname = hostname
vb.name = hostname
vb.customize ["modifyvm", :id, "--memory", info[:mem], "--cpus", info[:cpus], "--hwvirtex", "on"]
end # end provider
end # end config
end # end cluster
end
Vagrant.configure("2") do |config|
config.vm.provision "shell", path: "script.sh"
end
Thank you!
Thank you!
How would you provision using shell for only the master or only the slave?
thx! :)