-
Notifications
You must be signed in to change notification settings - Fork 34
Expand file tree
/
Copy pathVagrantfile
More file actions
67 lines (63 loc) · 2.02 KB
/
Copy pathVagrantfile
File metadata and controls
67 lines (63 loc) · 2.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# -*- mode: ruby -*-
# vi: set ft=ruby :
$docker = <<-SCRIPT
export DEBIAN_FRONTEND=noninteractive
echo 'Acquire::ForceIPv4 "true";' | sudo tee /etc/apt/apt.conf.d/99force-ipv4
apt-get -qq -y install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
apt-get update && apt-get install -qq -y docker-ce docker-ce-cli containerd.io
systemctl enable docker.service
systemctl start docker.service
adduser vagrant docker
SCRIPT
$swap = <<-SCRIPT
swapon --show | grep "NAME" && exit 1
dd if=/dev/zero of=/swapfile bs=1024 count=2097152
mkswap /swapfile
chmod 600 /swapfile
swapon /swapfile
swapon --show
SCRIPT
NAME="singlehost"
CPU=4
MEM=6144
Vagrant.configure(2) do |config|
config.vm.define NAME do |box|
box.vm.box = "bento/ubuntu-24.04"
box.vm.hostname = NAME
box.vm.network :private_network, ip: "192.168.56.10"
box.vm.provider :virtualbox do |vb, override|
override.vm.box = "bento/ubuntu-24.04"
vb.customize ["modifyvm", :id, "--memory", MEM]
vb.customize ["modifyvm", :id, "--cpus", CPU]
end
box.vm.provider "libvirt" do |v, override|
override.vm.box = "cloud-image/ubuntu-24.04" # bento has no libvirt variant
v.cpus = CPU
v.memory = MEM
end
box.vm.provider :hyperv do |hv, override|
# NB: no public Ubuntu 24.04 Hyper-V box exists (as of 2026). Set override.vm.box
# to a 24.04 Hyper-V box you build/trust, or use a 22.04 box for Hyper-V.
hv.cpus = CPU
hv.maxmemory = MEM
override.vm.synced_folder ".", "/vagrant", type: "smb"
end
box.vm.provider :vmware_desktop do |v, override|
v.vmx["numvcpus"] = CPU
v.vmx["memsize"] = MEM
end
box.vm.provision "shell", inline: $docker
box.vm.provision "shell", inline: $swap
box.vm.provision "shell", path: "provision.sh"
end
end