$ cat Vagrantfile # -*- mode: ruby -*- # vi: set ft=ruby : ENV['VAGRANT_DEFAULT_PROVIDER'] = 'libvirt' vms = { "pgsql-director" => {"memory" => "4096", "cpu" => "2", "ip" => "250", "box" => "g3anmart1ns/debian11" }, "pgsql-client" => {"memory" => "1024", "cpu" => "1", "ip" => "10", "box" => "g3anmart1ns/debian11" } } Vagrant.configure("2") do |config| config.vm.box_check_update = false vms.each do |name, conf| config.vm.define "#{name}" do |vms| vms.vm.network :private_network, :ip => "10.200.250.#{conf["ip"]}" vms.vm.box = "#{conf["box"]}" vms.vm.hostname = "#{name}" vms.vm.provider :libvirt do |lv| lv.memory = conf["memory"] lv.cpus = conf["cpu"] lv.cpu_mode = "host-passthrough" lv.cputopology :sockets => "1", :cores => conf["cpu"], :threads => "1" lv.disk_driver :cache => "none" if name == 'pgsql-director' lv.storage :file, :size => '32G' end end end end config.vm.synced_folder ".", "/vagrant", disabled: true end