Merge "Reworked setup_env.sh to support Debian & Darwin/OSX"

This commit is contained in:
Jenkins 2016-04-12 00:35:31 +00:00 committed by Gerrit Code Review
commit b022c4d1e4
2 changed files with 54 additions and 8 deletions

22
Vagrantfile vendored Normal file
View File

@ -0,0 +1,22 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :
# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure(2) do |config|
# vagrant box to sanity check setup_env.sh
config.vm.define :trusty64, autostart: false do |trusty|
trusty.vm.box = "ubuntu/trusty64"
trusty.vm.provision "shell", :inline => "apt-get update -y"
trusty.vm.provision "shell", :inline => "cd /vagrant ; ./setup_env.sh"
end
# vagrant box to sanity check setup_env.sh
config.vm.define :centos7, autostart: false do |centos|
centos.vm.box = "centos/7"
centos.vm.provision "shell", :inline => "cd /home/vagrant/sync ; ./setup_env.sh"
end
end

View File

@ -1,21 +1,45 @@
#!/bin/bash
#
# Install python pip & virtualenv packages & then create
# a python virtualenv & install the infra-ansible dependencies in it
# Install virtualenv package if not installed
if [ ! -f /usr/bin/pip ]; then
sudo -E apt-get install python-pip
# check platform prerequisites
case $(uname) in
Linux)
# check if the apt-get executable is available
if hash apt-get 2>/dev/null; then
# check for & install the various packages
hash pip 2>/dev/null || { sudo -E apt-get install -y python-pip; }
[[ -z "$(dpkg -l python-dev | grep '^ii python-dev')" ]] && sudo -E apt-get install -y python-dev
hash virtualenv 2>/dev/null || { sudo pip install virtualenv; }
elif hash yum 2>/dev/null; then
# on RHEL/CentOS, pip is installed during the virtualenv setup
hash virtualenv 2>/dev/null || { sudo -E yum install -y python-virtualenv python-devel gcc gcc-c++; }
hash wget 2>/dev/null || { sudo -E yum install -y wget; }
else
echo "ERROR: Zoinks, I only know about Debian and RHEL"
exit 1
fi
# Create infra-ansible virtual environment
pip install virtualenv
;;
Darwin)
hash pip 2>/dev/null || { echo "ERROR: pip isn't installed, please rectify this!" ; exit 1; }
hash virtualenv 2>/dev/null || { sudo pip install virtualenv; }
;;
esac
# Create a fresh infra-ansible virtual environment
[[ -e venv ]] && rm -rf venv
virtualenv venv
source venv/bin/activate
pip install -r requirements.txt
# Create inventory folder
if [ ! -d inventory ]; then
if [[ ! -d inventory ]]; then
mkdir inventory
fi
# Install Ansible openstack inventory
/usr/bin/wget -N https://raw.githubusercontent.com/ansible/ansible/devel/contrib/inventory/openstack.py -O inventory/openstack.py
wget https://raw.githubusercontent.com/ansible/ansible/devel/contrib/inventory/openstack.py -O inventory/openstack.py
chmod +x inventory/openstack.py