From b5d3c99b40298b0959355545a06ba27d08ec4101 Mon Sep 17 00:00:00 2001 From: Andrew Grimberg Date: Wed, 4 May 2016 13:43:02 -0700 Subject: [PATCH] Update docker vagrant definition for private cloud Updates the docker vagrant definition for the new private cloud Change-Id: Id0c986d8303a6959bd0a1a3a9b0e510b63ef3878 Signed-off-by: Andrew Grimberg --- vagrant/docker/Vagrantfile | 95 +++++++++++++++++++------------------ vagrant/docker/bootstrap.sh | 13 ++--- 2 files changed, 52 insertions(+), 56 deletions(-) diff --git a/vagrant/docker/Vagrantfile b/vagrant/docker/Vagrantfile index df954e618..0622a7a78 100644 --- a/vagrant/docker/Vagrantfile +++ b/vagrant/docker/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 = 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 Fedora 20 (Heisenbug) - 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 = 'Fedora 20 (Heisenbug) - 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 ovsdb-devstack 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/docker/bootstrap.sh b/vagrant/docker/bootstrap.sh index ebafa994f..23b1fc042 100644 --- a/vagrant/docker/bootstrap.sh +++ b/vagrant/docker/bootstrap.sh @@ -3,11 +3,7 @@ # vim: sw=4 ts=4 sts=4 et : rh_changes() { - # make sure we're fully updated - echo "---> Updating OS" - yum clean all - yum update -y -q - + echo "---> RH changes" # install docker and enable it echo "---> Installing docker" yum install -y docker supervisor bridge-utils @@ -28,13 +24,10 @@ EOL } ubuntu_changes() { - # make sure we're fully updated - echo "---> Updating OS" - apt-get update - apt-get upgrade -y -qq + echo "---> Ubuntu changes" } -OS=`/usr/bin/facter operatingsystem` +OS=$(/usr/bin/facter operatingsystem) case "$OS" in CentOS|Fedora|RedHat) rh_changes -- 2.36.6