$ip_int = #{ipAddr} def increment_ip() ip = "192.168.56.%d" % [$ip_int] $ip_int += 1 return ip end Vagrant.configure("2") do |config| config.ssh.insert_key = false config.ssh.private_key_path = ["./.ssh/id_rsa","~/.vagrant.d/insecure_private_key"] num_webserver = #{numWebserver} num_loadbalancer = #{numLoadbalancers} ansible_groups = { "loadbalancer" => [], "webserver" => [] } ansible_vars = {} (1..num_webserver).each do |nth| machine_id = "#{customerName}-bloated-debian-web%d" % [nth] ansible_groups["webserver"] << machine_id machine_ip = increment_ip() ansible_vars[machine_id] = { "ipv4_address" => machine_ip } config.vm.define machine_id do |web| web.vm.box = "ubuntu/focal64" web.vm.hostname = machine_id web.vm.network "private_network", ip: machine_ip web.vm.provision "file", source: "./.ssh/id_rsa.pub", destination: "~/.ssh/authorized_keys" web.vm.provider "virtualbox" do |vb| vb.memory = "1024" vb.gui = false vb.name = machine_id end if nth == num_webserver config.vm.provision "ansible" do |ansible| ansible.playbook = "./playbooks/install_nginx.yml" ansible.groups = ansible_groups ansible.host_vars = ansible_vars end end end end (1..num_loadbalancer).each do |nth| machine_id = "#{customerName}-bloated-debian-lb%d" % [nth] ansible_groups["loadbalancer"] << machine_id machine_ip = increment_ip() ansible_vars[machine_id] = { "ipv4_address" => machine_ip } config.vm.define machine_id do |web| web.vm.box = "ubuntu/focal64" web.vm.hostname = machine_id web.vm.network "private_network", ip: machine_ip web.vm.provision "file", source: "./.ssh/id_rsa.pub", destination: "~/.ssh/authorized_keys" web.vm.provider "virtualbox" do |vb| vb.memory = "1024" vb.gui = false vb.name = machine_id end if nth == num_loadbalancer config.vm.provision "ansible" do |ansible| ansible.playbook = "./playbooks/install_loadbalancer.yml" ansible.groups = ansible_groups ansible.host_vars = ansible_vars end end end end end