CenĂ¡rio

machines.yml
$ cat machines.yml 
# Ubuntu Server 22.04 - Ansible server
- name: automation
  cpus: 2
  memory: 2048
  ip: 10.240.100.10
  box: g3anmart1ns/ubuntu-server-2204
 
# Oracle Linux 9
- name: ol-vm-02
  cpus: 2
  memory: 2048
  ip: 10.240.100.20
  box: g3anmart1ns/ol9
 
#  Debian 11
- name: deb-vm-03
  cpus: 2
  memory: 2048
  ip: 10.240.100.30
  box: g3anmart1ns/debian11
Vagrantfile
$ cat Vagrantfile 
# -*- mode: ruby -*-
# vi: set ft=ruby :
 
ENV['VAGRANT_DEFAULT_PROVIDER'] = 'libvirt'
 
require 'yaml'
secmachines = YAML.load_file("machines.yml")
 
Vagrant.configure("2") do |config|
  secmachines.each do |machines|
    config.vm.define machines["name"] do |server|
      server.vm.hostname = machines["name"]
      server.vm.box = machines["box"]
      server.vm.box_check_update = false
      server.vm.network "private_network", ip: machines["ip"] 
 
      server.vm.provider "libvirt" do |lv|
        lv.memory = machines["memory"]
        lv.cpus = machines["cpus"]
        lv.cpu_mode = "host-passthrough"
      end
    end
  end
  config.vm.synced_folder ".", "/vagrant", disabled: true
end