f8ce48afbfec7d3c33d5b2ebb7c538618f9e312f
[ci-management.git] / vagrant / basebuild / Vagrantfile
1 # -*- mode: ruby -*-\r
2 # vi: set ts=2 sw=2 sts=2 et ft=ruby :\r
3 \r
4 Vagrant.configure(2) do |config|\r
5    config.vm.box = "ubuntu/trusty64"\r
6 \r
7 #  config.vm.network "private_network", type: "dhcp"\r
8 \r
9   config.vm.provider "virtualbox" do |vb|\r
10     vb.memory = "4096"\r
11   end\r
12   config.vm.provider "vmware_fusion" do |fusion,override|\r
13     override.vm.box = "puppetlabs/ubuntu-14.04-64-nocm"\r
14     fusion.vmx["memsize"] = "4096"\r
15   end\r
16   config.vm.provider "vmware_workstation" do |vws,override|\r
17     override.vm.box = "puppetlabs/ubuntu-14.04-64-nocm"\r
18     vws.vmx["memsize"] = "8192"\r
19     vws.vmx["numvcpus"] = "4"\r
20 #   To enable workstation GUI\r
21 #   vws.gui = "true"\r
22   end\r
23 \r
24   config.vm.provider :openstack do |os, override|\r
25     override.vm.box = 'dummy'\r
26     os.image = 'Ubuntu 14.04 LTS (2015-11-19) - Agentless'\r
27     config.ssh.username = 'ubuntu'\r
28   end\r
29 \r
30   config.vm.provision "shell", inline: <<-SHELL\r
31 \r
32     # Standard update + upgrade dance\r
33     apt-get update\r
34     apt-get upgrade -y\r
35 \r
36     # Fix the silly notion that /bin/sh should point to dash by pointing it to bash\r
37 \r
38     sudo update-alternatives --install /bin/sh sh /bin/bash 100\r
39 \r
40     # Install build tools\r
41     apt-get install -y build-essential autoconf automake bison libssl-dev ccache libtool git\r
42 \r
43     # Install other stuff\r
44     apt-get install -y --force-yes bridge-utils vim gdb iproute2\r
45 \r
46     # Install debian packaging tools\r
47     apt-get install -y debhelper dkms\r
48 \r
49     # Install uio\r
50     apt-get install -y linux-image-extra-`uname -r`\r
51 \r
52     # Install jdk and maven\r
53     apt-get install -y openjdk-7-jdk\r
54     # $$$ comment out for the moment\r
55     # apt-get install -y --force-yes maven3\r
56 \r
57     # Load the uio kernel module\r
58     modprobe uio_pci_generic\r
59 \r
60     # Make sure uio loads at boot time\r
61     echo uio_pci_generic >> /etc/modules\r
62 \r
63     # Setup for hugepages using upstart so it persists across reboots\r
64     sysctl -w vm.nr_hugepages=1024\r
65     mkdir -p /mnt/huge\r
66     echo "hugetlbfs       /mnt/huge  hugetlbfs       defaults        0 0" >> /etc/fstab\r
67     mount /mnt/huge\r
68 \r
69   SHELL\r
70 \r
71   #################\r
72   # FINAL CLEANUP #\r
73   #################\r
74 \r
75   # set RESEAL to... anything if you want to snap an image of this box\r
76   # not setting the environment variable will cause the system to come\r
77   # up fully and not be in a resealable state\r
78   if ENV['RESEAL']\r
79     config.vm.provision 'shell', path: '../lib/system_reseal.sh'\r
80   end\r
81 end\r