summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEd Warnicke <eaw@cisco.com>2016-03-24 08:33:44 -0500
committerEd Warnicke <eaw@cisco.com>2016-03-24 15:08:19 -0500
commita6a021778a56114f6ffbcc77174acae4ee544172 (patch)
treeb436f47ef3b6b94e5deb5a1d6626ef6d1ee71a55
parentc4259fc024bcc68009b91be9df63c8f5da203afe (diff)
Refactor basebuild in prep to add Centos image
Change-Id: I9583a1e3a64c40460d5196ce28261230234ff80b Signed-off-by: Ed Warnicke <eaw@cisco.com>
-rw-r--r--vagrant/basebuild/Vagrantfile101
-rw-r--r--vagrant/basebuild/bootstrap.sh39
2 files changed, 78 insertions, 62 deletions
diff --git a/vagrant/basebuild/Vagrantfile b/vagrant/basebuild/Vagrantfile
index c1cb5f4a0..e8d6a0a4f 100644
--- a/vagrant/basebuild/Vagrantfile
+++ b/vagrant/basebuild/Vagrantfile
@@ -2,74 +2,51 @@
# vi: set ts=2 sw=2 sts=2 et ft=ruby :
Vagrant.configure(2) do |config|
- config.vm.box = "ubuntu/trusty64"
-
-# config.vm.network "private_network", type: "dhcp"
-
- config.vm.provider "virtualbox" do |vb|
- vb.memory = "4096"
- end
- config.vm.provider "vmware_fusion" do |fusion,override|
- override.vm.box = "puppetlabs/ubuntu-14.04-64-nocm"
- fusion.vmx["memsize"] = "4096"
- end
- config.vm.provider "vmware_workstation" do |vws,override|
- override.vm.box = "puppetlabs/ubuntu-14.04-64-nocm"
- vws.vmx["memsize"] = "8192"
- vws.vmx["numvcpus"] = "4"
-# To enable workstation GUI
-# vws.gui = "true"
+ # Fedora and EL systems default to requiring a tty for sudo
+ if (ENV['RSPTY'] == 'default')
+ config.ssh.pty = false
+ else
+ config.ssh.pty = true
end
config.vm.provider :openstack do |os, override|
- override.vm.box = 'dummy'
- os.image = 'Ubuntu 14.04 LTS (2015-11-19) - Agentless'
- config.ssh.username = 'ubuntu'
+ config.vm.box = "dummy"
+
+ # require an IMAGE to be passed in
+ # IMAGE must be a human name and not image ID!
+ if ENV['IMAGE']
+ os.image = ENV['IMAGE']
+ else
+ os.image = 'BAD IMAGE'
+ override.ssh.username = 'baduser'
+ end
+
+ case ENV['IMAGE']
+ when /.*ubuntu.*/i
+ override.ssh.username = 'ubuntu'
+
+ when /.*fedora.*/i
+ override.ssh.username = 'fedora'
+
+ # take care of the tty requirement by fedora for sudo
+ os.user_data = "#!/bin/bash
+/bin/sed -i 's/ requiretty/ !requiretty/' /etc/sudoers;"
+
+ when /.*centos.*/i
+ override.ssh.username = 'centos'
+
+ # take care of the tty requirement by centos for sudo
+ os.user_data = "#!/bin/bash
+/bin/sed -i 's/ requiretty/ !requiretty/' /etc/sudoers;"
+ end
end
- config.vm.provision "shell", inline: <<-SHELL
-
- # Standard update + upgrade dance
- apt-get update
- apt-get upgrade -y
-
- # Fix the silly notion that /bin/sh should point to dash by pointing it to bash
-
- sudo update-alternatives --install /bin/sh sh /bin/bash 100
-
- # Install build tools
- apt-get install -y build-essential autoconf automake bison libssl-dev ccache libtool git dkms debhelper libganglia1-dev libapr1-dev libconfuse-dev
-
- # Install other stuff
- apt-get install -y --force-yes bridge-utils vim gdb iproute2
-
- # Install debian packaging tools
- apt-get install -y debhelper dkms
-
- # Install uio
- apt-get install -y linux-image-extra-`uname -r`
-
- # Install jdk and maven
- apt-get install -y openjdk-7-jdk
- # $$$ comment out for the moment
- # apt-get install -y --force-yes maven3
-
- # Load the uio kernel module
- modprobe uio_pci_generic
-
- # Make sure uio loads at boot time
- echo uio_pci_generic >> /etc/modules
-
- # Setup for hugepages using upstart so it persists across reboots
- sysctl -w vm.nr_hugepages=1024
- mkdir -p /mnt/huge
- echo "hugetlbfs /mnt/huge hugetlbfs defaults 0 0" >> /etc/fstab
- mount /mnt/huge
-
- # Install virtualenv for test execution
- apt-get install -y --force-yes python-virtualenv python-pip python-dev
+ config.vm.synced_folder ".", "/vagrant"
+ config.vm.synced_folder "../lib/", "/vagrant/lib"
- SHELL
+ # Do a full system update and force enforcing on (it's in permissive
+ # by default in the rackspace base images)
+ config.vm.provision 'shell', path: 'bootstrap.sh'
#################
# FINAL CLEANUP #
diff --git a/vagrant/basebuild/bootstrap.sh b/vagrant/basebuild/bootstrap.sh
new file mode 100644
index 000000000..817de8f17
--- /dev/null
+++ b/vagrant/basebuild/bootstrap.sh
@@ -0,0 +1,39 @@
+# Standard update + upgrade dance
+apt-get update
+apt-get upgrade -y
+
+# Fix the silly notion that /bin/sh should point to dash by pointing it to bash
+
+sudo update-alternatives --install /bin/sh sh /bin/bash 100
+
+# Install build tools
+apt-get install -y build-essential autoconf automake bison libssl-dev ccache libtool git dkms debhelper libganglia1-dev libapr1-dev libconfuse-dev
+
+# Install other stuff
+apt-get install -y --force-yes bridge-utils vim gdb iproute2
+
+# Install debian packaging tools
+apt-get install -y debhelper dkms
+
+# Install uio
+apt-get install -y linux-image-extra-`uname -r`
+
+# Install jdk and maven
+apt-get install -y openjdk-7-jdk
+# $$$ comment out for the moment
+# apt-get install -y --force-yes maven3
+
+# Load the uio kernel module
+modprobe uio_pci_generic
+
+# Make sure uio loads at boot time
+echo uio_pci_generic >> /etc/modules
+
+# Setup for hugepages using upstart so it persists across reboots
+sysctl -w vm.nr_hugepages=1024
+mkdir -p /mnt/huge
+echo "hugetlbfs /mnt/huge hugetlbfs defaults 0 0" >> /etc/fstab
+mount /mnt/huge
+
+# Install virtualenv for test execution
+apt-get install -y --force-yes python-virtualenv python-pip python-dev \ No newline at end of file