infra-ansible/setup_env.sh
Simon McCartney e49b679956 Reworked setup_env.sh to support Debian & Darwin/OSX
* Linux/Debian - ensure python-pip & python-dev are installed
* LinuxRHEL/CentOS - ensure python-virtualenv & python-devel are
  installed
* Darwin/OSX - check & exit if pip not installed
* Always rebuild the venv
* Dropped the path on wget, to allow for platform path differences
* Dropped the -N on wget, as it has no effect when using -O and
  github aren't returning the Last-Modified header

Change-Id: I221965ee1b1776d46f4b6fba00ffb7069e5b34f8
2016-03-12 23:10:46 +00:00

46 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
#
# Install python pip & virtualenv packages & then create
# a python virtualenv & install the infra-ansible dependencies in it
# 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
;;
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
mkdir inventory
fi
# Install Ansible openstack inventory
wget https://raw.githubusercontent.com/ansible/ansible/devel/contrib/inventory/openstack.py -O inventory/openstack.py
chmod +x inventory/openstack.py