This repository has been archived by the owner on Jul 10, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathVagrantfile
77 lines (73 loc) · 2.58 KB
/
Vagrantfile
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
68
69
70
71
72
73
74
75
76
77
# -*- mode: ruby -*-
# vi: set ft=ruby :
system("./config.sh >/dev/null")
$script_guest_additions = <<SCRIPT
# prepare kernel
sudo cp /usr/src/kernel.config /usr/src/linux/.config
cd /usr/src/linux
sudo make olddefconfig
sudo make modules_prepare
# copy iso and start install
sudo mkdir -p /mnt/temp
sudo mv /home/vagrant/VBoxGuestAdditions.iso /tmp
sudo mount -o loop /tmp/VBoxGuestAdditions.iso /mnt/temp
sudo /mnt/temp/VBoxLinuxAdditions.run
sudo umount /mnt/temp
sudo cat /var/log/vboxadd-setup.log
# add user vagrant to vboxsf group
sudo gpasswd -a vagrant vboxsf
# auto-load vboxsf (vboxguest already loaded by udev rule):
cat <<'DATA' | sudo tee -a /etc/conf.d/modules
modules="vboxsf"
DATA
# remove iso
sudo rm -f /home/vagrant/VBoxGuestAdditions.iso
SCRIPT
$script_cleanup = <<SCRIPT
# clean kernel sources after vbox-guest-additions install
cd /usr/src/linux
sudo make distclean
# once more ensure old kernels/modules are removed
sudo eclean-kernel -n 1
# update grub
sudo boot-update
# run zerofree at last to squeeze the last bit
# /boot (initially not mounted)
sudo mount -o ro /dev/sda1
sudo zerofree -v /dev/sda1
# /
sudo mount -o remount,ro /dev/sda4
sudo zerofree -v /dev/sda4
# swap
sudo swapoff -v /dev/sda3
sudo bash -c 'dd if=/dev/zero of=/dev/sda3 2>/dev/null' || true
sudo mkswap /dev/sda3
SCRIPT
Vagrant.configure("2") do |config|
config.vm.box_check_update = false
config.vm.box = "#{ENV['BUILD_BOX_NAME']}"
config.vm.hostname = "#{ENV['BUILD_BOX_NAME']}"
config.vm.provider "virtualbox" do |vb|
vb.gui = false
vb.memory = "#{ENV['BUILD_GUEST_MEMORY']}"
vb.cpus = "#{ENV['BUILD_GUEST_CPUS']}"
# customize VirtualBox settings, see also 'virtualbox.json'
vb.customize ["modifyvm", :id, "--nictype1", "virtio"]
vb.customize ["modifyvm", :id, "--audio", "none"]
vb.customize ["modifyvm", :id, "--usb", "off"]
vb.customize ["modifyvm", :id, "--rtcuseutc", "on"]
vb.customize ["modifyvm", :id, "--chipset", "ich9"]
vb.customize ["modifyvm", :id, "--vram", "12"]
vb.customize ["modifyvm", :id, "--vrde", "off"]
vb.customize ["modifyvm", :id, "--hpet", "on"]
vb.customize ["modifyvm", :id, "--hwvirtex", "on"]
vb.customize ["modifyvm", :id, "--vtxvpid", "on"]
vb.customize ["modifyvm", :id, "--spec-ctrl", "on"]
vb.customize ["modifyvm", :id, "--largepages", "on"]
end
config.ssh.pty = true
config.ssh.insert_key = false
config.vm.synced_folder '.', '/vagrant', disabled: true
config.vm.provision "guest-additions", type: "shell", inline: $script_guest_additions
config.vm.provision "cleanup", type: "shell", inline: $script_cleanup
end