From 3c4c9a40b25fc53c873d516d925bd2b5ccd345e8 Mon Sep 17 00:00:00 2001 From: Thanh Ha Date: Wed, 4 May 2016 14:36:48 -0400 Subject: [PATCH] Update ubuntu-mininet vagrant definition for private cloud This updates the vagrant definition for ubuntu-mininet to be in line with the private cloud designs. Change-Id: If9cf9b686501371e89cb489e92e48bdd59d98e5c Signed-off-by: Thanh Ha --- vagrant/ubuntu-mininet/Vagrantfile | 88 +++++++++++++++-------------- vagrant/ubuntu-mininet/bootstrap.sh | 19 +++---- 2 files changed, 54 insertions(+), 53 deletions(-) diff --git a/vagrant/ubuntu-mininet/Vagrantfile b/vagrant/ubuntu-mininet/Vagrantfile index 54b001f3f..cb6b62793 100644 --- a/vagrant/ubuntu-mininet/Vagrantfile +++ b/vagrant/ubuntu-mininet/Vagrantfile @@ -5,46 +5,60 @@ VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| - # root off of the rackspace provider dummy box + # root off of the openstack provider dummy box config.vm.box = "dummy" - - # rackspace systems, even with cloud-init - # don't seem to have the cloud int user ${osname} (or similar) - # getting the ssh key for some reason, root does for sure - # so use that config.ssh.username = 'root' - # Only baseline image should have config.ssh.pty = true - # Ensure we disable it. - config.ssh.pty = false - # make sure to set the following in your - # ~/.vagrant.d/boxes/dummy/0/rackspace/Vagrantfile - # rs.username - # rs.api_key - # rs.rackspace_region + # ~/.vagrant.d/boxes/dummy/0/openstack/Vagrantfile + # + # os.openstack_auth_url + # os.endpoint_type + # os.flavor + # os.tenant_name + # os.username + # os.password + # os.networks # # If you are not using an SSH token / smartcard also set this - # rs.key_name - # config.ssh.private_key_path -- set this outside the rackspace block + # os.key_name + # config.ssh.private_key_path -- set this outside the openstack block # in your base box - config.vm.provider :rackspace do |rs| - # create these base builds always on the smallest system possible - rs.flavor = 'general1-1' - - # allow for switching to ORD cloud but default to DFW - if (ENV['RSREGION'] == 'ord') - rs.rackspace_region = :ord + config.vm.provider :openstack do |os, override| + if ENV['BOX'] + override.vm.box = ENV['BOX'] else - rs.rackspace_region = :dfw + override.vm.box = 'dummy' end + config.ssh.username = 'centos' + os.flavor = 'm1.small' - # Default the Ubuntu 14.04 - Vagrant ready image unless overriden by a RSIMAGE - # environment variable - if ENV['RSIMAGE'] - rs.image = ENV['RSIMAGE'] + # require an IMAGE to be passed in + # IMAGE must be a human name and not an image ID! + if ENV['IMAGE'] + os.image = ENV['IMAGE'] else - rs.image = 'Ubuntu 14.04 - Vagrant ready' + 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 @@ -52,19 +66,11 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.synced_folder ".", "/vagrant" config.vm.synced_folder "../lib/", "/vagrant/lib" - # run our bootstrapping for the system - config.vm.provision 'shell', path: 'bootstrap.sh' - - - ################# - # LF NETWORKING # - ################# + # Do a full system update and enable enforcing if needed + config.vm.provision 'shell', path: '../lib/baseline.sh' - if ENV['LFNETWORK'] - # reconfigure the network setup to support our special private setup - config.vm.provision 'shell', path: '../lib/lf-networking/configure_lf_infra.sh', - args: ENV['RSSUBDOMAIN'] - end + # run our bootstrapping + config.vm.provision 'shell', path: 'bootstrap.sh' ################# diff --git a/vagrant/ubuntu-mininet/bootstrap.sh b/vagrant/ubuntu-mininet/bootstrap.sh index 361eb8220..2bafedfac 100644 --- a/vagrant/ubuntu-mininet/bootstrap.sh +++ b/vagrant/ubuntu-mininet/bootstrap.sh @@ -2,10 +2,9 @@ # vim: sw=4 ts=4 sts=4 et tw=72 : -echo "---> Updating operating system" -apt-get update -qq -DEBIAN_FRONTEND=noninteractive apt-get upgrade -y --force-yes -qq \ - -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" +# Ensure that necessary variables are set to enable noninteractive mode in +# commands. +export DEBIAN_FRONTEND=noninteractive # To handle the prompt style that is expected all over the environment # with how use use robotframework we need to make sure that it is @@ -13,10 +12,7 @@ DEBIAN_FRONTEND=noninteractive apt-get upgrade -y --force-yes -qq \ # ups echo 'PS1="[\u@\h \W]> "' >> /etc/skel/.bashrc -# Install mininet -# apt-get install -y --force-yes -qq mininet - -# Install mininet with OF13 patch +echo '---> Install mininet with OF13 patch' cd /tmp cat > newOptions.patch < Install CPqD and dependencies' apt-get install -y --force-yes -qq build-essential cmake flex apt-get install -y --force-yes -qq libpcre++-dev libxerces-c-dev libpcap-dev libboost-all-dev @@ -81,8 +77,7 @@ make make install cd .. -# cbench installation for running openflow performance tests - +echo '---> Installing cbench installation for running openflow performance tests' OF_DIR=$HOME/openflow # Directory that contains OpenFlow code OFLOPS_DIR=$HOME/oflops # Directory that contains oflops repo @@ -97,5 +92,5 @@ cd $OFLOPS_DIR make make install -# Install vlan for vlan based tests in VTN suites +echo '---> Installing vlan for vlan based tests in VTN suites' apt-get install -y --force-yes -qq vlan -- 2.36.6