workstation/Vagrantfile
Kris Lamoureux f68117d9a0
Enhanced variable handling
- Load variables from .vagrant_settings
- Provide default values
2023-06-13 02:04:30 -04:00

51 lines
1.5 KiB
Ruby

# -*- mode: ruby -*-
# vi: set ft=ruby :
# Load overrides
require 'yaml'
settings_path = '.vagrant_settings'
settings = {}
if File.exist?(settings_path)
settings = YAML.load_file(settings_path)
end
VAGRANT_CPUS = settings["VAGRANT_CPUS"] || 2
VAGRANT_MEMORY = settings["VAGRANT_MEMORY"] || 4096
VAGRANT_NETWORK_NAME = settings["VAGRANT_NETWORK_NAME"] || "vagrant-libvirt"
VAGRANT_NETWORK_ADDR = settings["VAGRANT_NETWORK_ADDR"] || "192.168.121.0/24"
# Vagrant
Vagrant.configure("2") do |config|
config.vm.box = "debian/bookworm64"
config.vm.network "private_network", type: "dhcp"
config.vm.synced_folder ".", "/vagrant", disabled: true
# Libvirt settings
config.vm.provider :libvirt do |libvirt|
libvirt.cpu_mode = "host-model"
libvirt.cpus = VAGRANT_CPUS
libvirt.memory = VAGRANT_MEMORY
libvirt.management_network_name = VAGRANT_NETWORK_NAME
libvirt.management_network_address = VAGRANT_NETWORK_ADDR
libvirt.nested = true
end
# Boot with a GUI in VirtualBox
config.vm.provider "virtualbox" do |vbox|
vbox.customize ["modifyvm", :id, "--vram", "128",
"--graphicscontroller", "vboxvga",
"--accelerate3d", "on"]
vbox.memory = VAGRANT_MEMORY
vbox.cpus = VAGRANT_CPUS
vbox.gui = true
end
# Provision with Ansible
config.vm.provision "ansible" do |ansible|
ENV['ANSIBLE_ROLES_PATH'] = File.dirname(__FILE__) + "/roles"
ansible.compatibility_mode = "2.0"
ansible.playbook = "site-vagrant.yml"
end
end