First step in personal vagrant dev machine setup
This commit is contained in:
89
Vagrantfile
vendored
Normal file
89
Vagrantfile
vendored
Normal file
@@ -0,0 +1,89 @@
|
||||
# -*- mode: ruby -*-
|
||||
# vi: set ft=ruby :
|
||||
|
||||
unless ENV["VAGRANT_BYPASS_REQUIRED_PLUGINS"]
|
||||
required_plugins = [ "vagrant-disksize", "vagrant-vbguest", "vagrant-reload" ]
|
||||
plugins_installed = required_plugins.reduce(true) do |pi, rp|
|
||||
pi && Vagrant.has_plugin?(rp)
|
||||
end
|
||||
|
||||
unless plugins_installed
|
||||
STDERR.puts "ERROR: Required plugins not installed!"
|
||||
STDERR.puts "This vagrant configuration requires the following plugins: #{required_plugins.join(' ')}"
|
||||
STDERR.puts "Please install these using the `vagrant plugin install` command and try again"
|
||||
exit 127
|
||||
end
|
||||
end
|
||||
|
||||
gui_enabled = ENV['VAGRANT_GUI'] || true
|
||||
|
||||
# All Vagrant configuration is done below. The "2" in Vagrant.configure
|
||||
# configures the configuration version (we support older styles for
|
||||
# backwards compatibility). Please don't change it unless you know what
|
||||
# you're doing.
|
||||
Vagrant.configure("2") do |config|
|
||||
config.vm.box = "ubuntu/focal64"
|
||||
|
||||
# Disable automatic box update checking. If you disable this, then
|
||||
# boxes will only be checked for updates when the user runs
|
||||
# `vagrant box outdated`. This is not recommended.
|
||||
# config.vm.box_check_update = false
|
||||
|
||||
# Create a private network, which allows host-only access to the machine
|
||||
# using a specific IP.
|
||||
# config.vm.network "private_network", ip: "192.168.33.10"
|
||||
|
||||
# Share a folder between guest and host for convenience
|
||||
config.vm.synced_folder File.join(".", "data"), "/media/data"
|
||||
|
||||
# Use vagrant-disksize plugin to resize disk as desired
|
||||
config.disksize.size = ENV["VAGRANT_DISKSIZE"] || "20GB"
|
||||
|
||||
config.vm.provider "virtualbox" do |vb|
|
||||
vb.memory = ENV['VAGRANT_MEMORY'] || 1024 * 8
|
||||
vb.cpus = ENV['VAGRANT_CPUS'] || 4
|
||||
|
||||
# Graphical settings
|
||||
vb.gui = gui_enabled
|
||||
if gui_enabled
|
||||
vb.customize ["modifyvm", :id, "--monitorcount", (ENV['VAGRANT_MONITORS'] || '1')]
|
||||
vb.customize ["modifyvm", :id, "--graphicscontroller", "vboxsvga"]
|
||||
vb.customize ["modifyvm", :id, "--vram", "128"]
|
||||
end
|
||||
end
|
||||
|
||||
config.vm.define "default", primary: true do |primary|
|
||||
end
|
||||
|
||||
config.vm.define "test", autostart: false do |test|
|
||||
end
|
||||
|
||||
config.vm.provision :shell,
|
||||
name: "Install Minimal XFCE",
|
||||
path: "provisioners/install-xfce-minimal.sh" \
|
||||
if gui_enabled
|
||||
|
||||
config.vm.provision :shell,
|
||||
name: "Install Nix",
|
||||
path: "provisioners/install-nix.sh",
|
||||
privileged: false
|
||||
|
||||
config.vm.provision :shell,
|
||||
name: "Install APT Packages",
|
||||
path: "provisioners/install-apt-packages.sh"
|
||||
|
||||
config.vm.provision :shell,
|
||||
name: "Cleanup tasks",
|
||||
inline: <<~SHELLEND
|
||||
userdel ubuntu
|
||||
SHELLEND
|
||||
|
||||
# Run any personal customization that exist outside git
|
||||
if Dir.exists?('personal')
|
||||
Dir['personal/*.sh'].each do |script|
|
||||
config.vm.provision :shell, path: script, privileged: false
|
||||
end
|
||||
end
|
||||
|
||||
config.vm.provision :reload
|
||||
end
|
||||
Reference in New Issue
Block a user