MACHINES = { :inetRouter => { :box_name => "ubuntu/jammy64", :net => [ {ip: '192.168.255.1', adapter: 2, netmask: "255.255.255.252", virtualbox__intnet: "router-net"}, ] }, :inetRouter2 => { :box_name => "ubuntu/jammy64", :net => [ {ip: '192.168.255.13', adapter: 2, netmask: "255.255.255.252", virtualbox__intnet: "router2-net"}, ] }, :centralRouter => { :box_name => "ubuntu/jammy64", :net => [ {ip: '192.168.255.2', adapter: 2, netmask: "255.255.255.252", virtualbox__intnet: "router-net"}, {ip: '192.168.255.14', adapter: 3, netmask: "255.255.255.252", virtualbox__intnet: "router2-net"}, {ip: '192.168.255.5', adapter: 4, netmask: "255.255.255.252", virtualbox__intnet: "router-off01-net"}, {ip: '192.168.255.9', adapter: 5, netmask: "255.255.255.252", virtualbox__intnet: "router-off02-net"}, {ip: '192.168.0.1', adapter: 6, netmask: "255.255.255.240", virtualbox__intnet: "dir-net"}, {ip: '192.168.0.33', adapter: 7, netmask: "255.255.255.240", virtualbox__intnet: "hw-centr-net"}, {ip: '192.168.0.65', adapter: 8, netmask: "255.255.255.192", virtualbox__intnet: "wifi-net"}, ] }, :centralServer => { :box_name => "ubuntu/jammy64", :net => [ {ip: '192.168.0.2', adapter: 2, netmask: "255.255.255.240", virtualbox__intnet: "dir-net"}, ] }, :office1Router => { :box_name => "ubuntu/jammy64", :net => [ {ip: '192.168.255.6', adapter: 2, netmask: "255.255.255.252", virtualbox__intnet: "router-off01-net"}, {ip: '192.168.2.1', adapter: 3, netmask: "255.255.255.192", virtualbox__intnet: "dev01-net"}, {ip: '192.168.2.65', adapter: 4, netmask: "255.255.255.192", virtualbox__intnet: "test01-srv-net"}, {ip: '192.168.2.129', adapter: 5, netmask: "255.255.255.192", virtualbox__intnet: "managers-net"}, {ip: '192.168.2.193', adapter: 6, netmask: "255.255.255.192", virtualbox__intnet: "hw01-net"}, ] }, :office1Server => { :box_name => "ubuntu/jammy64", :net => [ {ip: '192.168.2.2', adapter: 2, netmask: "255.255.255.192", virtualbox__intnet: "dev01-net"}, ] }, :office2Router => { :box_name => "ubuntu/jammy64", :net => [ {ip: '192.168.255.10', adapter: 2, netmask: "255.255.255.252", virtualbox__intnet: "router-off02-net"}, {ip: '192.168.1.1', adapter: 3, netmask: "255.255.255.128", virtualbox__intnet: "dev02-net"}, {ip: '192.168.1.129', adapter: 4, netmask: "255.255.255.192", virtualbox__intnet: "test02-srv-net"}, {ip: '192.168.1.193', adapter: 5, netmask: "255.255.255.192", virtualbox__intnet: "hw02-net"}, ] }, :office2Server => { :box_name => "ubuntu/jammy64", :net => [ {ip: '192.168.1.2', adapter: 2, netmask: "255.255.255.128", virtualbox__intnet: "dev02-net"}, ] }, } Vagrant.configure("2") do |config| config.vm.provider "virtualbox" do |vb| vb.memory = 512 vb.cpus = 1 end MACHINES.each do |boxname, boxconfig| config.vm.define boxname do |box| box.vm.box = boxconfig[:box_name] box.vm.host_name = boxname.to_s boxconfig[:net].each do |ipconf| box.vm.network "private_network", **ipconf end if boxname.to_s == "inetRouter2" box.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1" end if boxname.to_s == "office2Server" box.vm.provision "ansible" do |ansible| ansible.limit = "all" ansible.playbook = "ansible.yml" ansible.become = "true" end end end end end