From c74bd778b32f58464314ce78d22a6295745aa417 Mon Sep 17 00:00:00 2001 From: Andrew Grimberg Date: Wed, 4 May 2016 08:58:14 -0700 Subject: [PATCH] Update robot vagrant definition for private cloud This updates the vagrant definition for the integration-robotframework to be in line with the private cloud designs. Change-Id: I3ad7d91f6543efb511d01dcc7582e5ea78f94696 Signed-off-by: Andrew Grimberg --- .../integration-robotframework/Vagrantfile | 95 ++++++++++--------- .../integration-robotframework/bootstrap.sh | 9 -- 2 files changed, 49 insertions(+), 55 deletions(-) diff --git a/vagrant/integration-robotframework/Vagrantfile b/vagrant/integration-robotframework/Vagrantfile index 9fa6a79fc..0622a7a78 100644 --- a/vagrant/integration-robotframework/Vagrantfile +++ b/vagrant/integration-robotframework/Vagrantfile @@ -5,78 +5,81 @@ 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' - # Fedora and EL systems default to requiring tty for sudo - # This should have been disabled with the Vagrant ready - # base box conversion (see rackspace-convert-base vagrant) - # but just to be safe - config.ssh.pty = true - # 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 CentOS 6.5 - 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 = 'CentOS 6.5 - Vagrant ready' + os.image = 'BAD IMAGE' + override.ssh.username = 'baduser' end - end - # Explicitlly set default shared folder and load lib folder - config.vm.synced_folder ".", "/vagrant" - config.vm.synced_folder "../lib/", "/vagrant/lib" + case ENV['IMAGE'] + when /.*ubuntu.*/i + override.ssh.username = 'ubuntu' - # run our bootstrapping for the robotframework system - config.vm.provision 'shell', path: 'bootstrap.sh' + 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;" - ################# - # LF NETWORKING # - ################# + when /.*centos.*/i + override.ssh.username = 'centos' - 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'] + # 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 + # Explicitlly set default shared folder and load lib folder + config.vm.synced_folder ".", "/vagrant" + config.vm.synced_folder "../lib/", "/vagrant/lib" + + # Do a full system update and enable enforcing if needed + config.vm.provision 'shell', path: '../lib/baseline.sh' + + # run our bootstrapping + config.vm.provision 'shell', path: 'bootstrap.sh' ################# # FINAL CLEANUP # ################# - # set RSRESEAL to... anything if you want to snap an image of this box + # set RESEAL to... anything if you want to snap an image of this box # not setting the environment variable will cause the system to come # up fully and not be in a resealable state - if ENV['RSRESEAL'] + if ENV['RESEAL'] config.vm.provision 'shell', path: '../lib/system_reseal.sh' end end diff --git a/vagrant/integration-robotframework/bootstrap.sh b/vagrant/integration-robotframework/bootstrap.sh index 53cd42651..90b4e068e 100644 --- a/vagrant/integration-robotframework/bootstrap.sh +++ b/vagrant/integration-robotframework/bootstrap.sh @@ -2,9 +2,6 @@ # vim: sw=4 ts=4 sts=4 et tw=72 : -yum clean all -yum update -q -y - # Install minimal python requirements to get virtualenv going # Additional python dependencies should be installed via JJB configuration # inside project jobs using a virtualenv setup. @@ -23,9 +20,3 @@ make &> /dev/null && cp udpreplay /usr/local/bin # Chrome need a other library named chromedriver so let start with # one already supported with selenium. yum install -y -q firefox xorg-x11-server-Xvfb - -# 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 -# consistent for any of the users that are created during dynamic spin -# ups -echo 'PS1="[\u@\h \W]> "' >> /etc/skel/.bashrc -- 2.36.6