Refactor basebuild in prep to add Centos image 04/604/4
authorEd Warnicke <eaw@cisco.com>
Thu, 24 Mar 2016 13:33:44 +0000 (08:33 -0500)
committerEd Warnicke <eaw@cisco.com>
Thu, 24 Mar 2016 20:08:19 +0000 (15:08 -0500)
Change-Id: I9583a1e3a64c40460d5196ce28261230234ff80b
Signed-off-by: Ed Warnicke <eaw@cisco.com>
vagrant/basebuild/Vagrantfile
vagrant/basebuild/bootstrap.sh [new file with mode: 0644]

index c1cb5f4..e8d6a0a 100644 (file)
@@ -2,74 +2,51 @@
 # 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
diff --git a/vagrant/basebuild/bootstrap.sh b/vagrant/basebuild/bootstrap.sh
new file mode 100644 (file)
index 0000000..817de8f
--- /dev/null
@@ -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