Refactor basebuild in prep to add Centos image
[ci-management.git] / vagrant / basebuild / Vagrantfile
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