nodes = {
    'db' => [3, 10],
    'haproxy' => [1, 20],
    'web' => [2,30],
    'worker' => [1,40],
}

network = "192.168.20"

Vagrant.configure("2") do |config|

    nodes.each do |prefix, (count, ip_start)|
        count.times do |i|
            hostname = prefix + i.to_s 
            #puts "hostnames: " + hostname
            #puts "ip: #{ip_start+i}" 

            config.vm.define hostname do |box|
                box.vm.box = "centos64"
                box.vm.hostname = "#{hostname}"
                puts "ip for #{hostname} #{network}.#{ip_start+i}"
                box.vm.network :private_network, ip: "#{network}.#{ip_start+i}"

                # set memory
                box.vm.provider :virtualbox do |vbox|
                    vbox.customize ["modifyvm", :id, "--memory", 512]
                    vbox.customize ["modifyvm", :id, "--cpus", 1]
                    if prefix == "db"
                        vbox.customize ["modifyvm", :id, "--memory", 1024]
                    end
                end
            end
        end
    end
end
