# vi: set ts=2 sw=2 sts=2 et ft=ruby :\r
\r
Vagrant.configure(2) do |config|\r
- config.vm.box = "ubuntu/trusty64"\r
-\r
-# config.vm.network "private_network", type: "dhcp"\r
-\r
- config.vm.provider "virtualbox" do |vb|\r
- vb.memory = "4096"\r
- end\r
- config.vm.provider "vmware_fusion" do |fusion,override|\r
- override.vm.box = "puppetlabs/ubuntu-14.04-64-nocm"\r
- fusion.vmx["memsize"] = "4096"\r
- end\r
- config.vm.provider "vmware_workstation" do |vws,override|\r
- override.vm.box = "puppetlabs/ubuntu-14.04-64-nocm"\r
- vws.vmx["memsize"] = "8192"\r
- vws.vmx["numvcpus"] = "4"\r
-# To enable workstation GUI\r
-# vws.gui = "true"\r
+ # Fedora and EL systems default to requiring a tty for sudo\r
+ if (ENV['RSPTY'] == 'default')\r
+ config.ssh.pty = false\r
+ else\r
+ config.ssh.pty = true\r
end\r
\r
config.vm.provider :openstack do |os, override|\r
- override.vm.box = 'dummy'\r
- os.image = 'Ubuntu 14.04 LTS (2015-11-19) - Agentless'\r
- config.ssh.username = 'ubuntu'\r
+ config.vm.box = "dummy"\r
+\r
+ # require an IMAGE to be passed in\r
+ # IMAGE must be a human name and not image ID!\r
+ if ENV['IMAGE']\r
+ os.image = ENV['IMAGE']\r
+ else\r
+ os.image = 'BAD IMAGE'\r
+ override.ssh.username = 'baduser'\r
+ end\r
+\r
+ case ENV['IMAGE']\r
+ when /.*ubuntu.*/i\r
+ override.ssh.username = 'ubuntu'\r
+\r
+ when /.*fedora.*/i\r
+ override.ssh.username = 'fedora'\r
+\r
+ # take care of the tty requirement by fedora for sudo\r
+ os.user_data = "#!/bin/bash\r
+/bin/sed -i 's/ requiretty/ !requiretty/' /etc/sudoers;"\r
+\r
+ when /.*centos.*/i\r
+ override.ssh.username = 'centos'\r
+\r
+ # take care of the tty requirement by centos for sudo\r
+ os.user_data = "#!/bin/bash\r
+/bin/sed -i 's/ requiretty/ !requiretty/' /etc/sudoers;"\r
+ end\r
end\r
\r
- config.vm.provision "shell", inline: <<-SHELL\r
-\r
- # Standard update + upgrade dance\r
- apt-get update\r
- apt-get upgrade -y\r
-\r
- # Fix the silly notion that /bin/sh should point to dash by pointing it to bash\r
-\r
- sudo update-alternatives --install /bin/sh sh /bin/bash 100\r
-\r
- # Install build tools\r
- apt-get install -y build-essential autoconf automake bison libssl-dev ccache libtool git dkms debhelper libganglia1-dev libapr1-dev libconfuse-dev\r
-\r
- # Install other stuff\r
- apt-get install -y --force-yes bridge-utils vim gdb iproute2\r
-\r
- # Install debian packaging tools\r
- apt-get install -y debhelper dkms\r
-\r
- # Install uio\r
- apt-get install -y linux-image-extra-`uname -r`\r
-\r
- # Install jdk and maven\r
- apt-get install -y openjdk-7-jdk\r
- # $$$ comment out for the moment\r
- # apt-get install -y --force-yes maven3\r
-\r
- # Load the uio kernel module\r
- modprobe uio_pci_generic\r
-\r
- # Make sure uio loads at boot time\r
- echo uio_pci_generic >> /etc/modules\r
-\r
- # Setup for hugepages using upstart so it persists across reboots\r
- sysctl -w vm.nr_hugepages=1024\r
- mkdir -p /mnt/huge\r
- echo "hugetlbfs /mnt/huge hugetlbfs defaults 0 0" >> /etc/fstab\r
- mount /mnt/huge\r
-\r
- # Install virtualenv for test execution\r
- apt-get install -y --force-yes python-virtualenv python-pip python-dev\r
+ config.vm.synced_folder ".", "/vagrant"\r
+ config.vm.synced_folder "../lib/", "/vagrant/lib"\r
\r
- SHELL\r
+ # Do a full system update and force enforcing on (it's in permissive\r
+ # by default in the rackspace base images)\r
+ config.vm.provision 'shell', path: 'bootstrap.sh'\r
\r
#################\r
# FINAL CLEANUP #\r