$ip_int = {{ ip_int }} def increment_ip() ip = "{{ ip_format }}" % [$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 = {{ num_webserver }} num_loadbalancer = {{ num_loadbalancers }} num_postgresql = {{ num_postgres }} (1..num_webserver).each do |nth| machine_id = "{{ customer_name }}-{{ env }}-web%d" % [nth] machine_ip = increment_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 end end (1..num_loadbalancer).each do |nth| machine_id = "{{ customer_name }}-{{ env }}-lb%d" % [nth] machine_ip = increment_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 end end (1..num_postgresql).each do |nth| machine_id = "{{ customer_name }}-{{ env }}-db%d" % [nth] machine_ip = increment_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 end end end