MACHINES = { :inetRouter => { :box_name => "ubuntu/jammy64", :net => [ {ip: '192.168.255.1', adapter: 2, netmask: "255.255.255.252", virtualbox__intnet: "router-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.5', adapter: 3, netmask: "255.255.255.252", virtualbox__intnet: "router-off01-net"}, {ip: '192.168.255.9', adapter: 4, netmask: "255.255.255.252", virtualbox__intnet: "router-off02-net"}, {ip: '192.168.0.1', adapter: 5, netmask: "255.255.255.240", virtualbox__intnet: "dir-net"}, {ip: '192.168.0.33', adapter: 6, netmask: "255.255.255.240", virtualbox__intnet: "hw-centr-net"}, {ip: '192.168.0.65', adapter: 7, 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 box.vm.provision "ansible" do |ansible| ansible.playbook = "ansible.yml" ansible.become = "true" end end end end