6a6b50fb6c
The latest python 2.x release is 2.7.9 and not 2.7.7 so when people are using this script to build a useful environment (that is lacking py2.7) use this newer version instead. Change-Id: I2fdd035e0b4efcacd6ef2da04d6cd8a56dcca512
128 lines
3.8 KiB
Bash
128 lines
3.8 KiB
Bash
#!/bin/bash
|
|
|
|
# This sets up a developer testing environment that can be used with various
|
|
# openstack projects (mainly for taskflow, but for others it should work
|
|
# fine also).
|
|
#
|
|
# Some things to note:
|
|
#
|
|
# - The mysql server that is setup is *not* secured.
|
|
# - The zookeeper server that is setup is *not* secured.
|
|
# - The downloads from external services are *not* certificate verified.
|
|
#
|
|
# Overall it should only be used for testing/developer environments (it was
|
|
# tested on ubuntu 14.04 and rhel 6.x, for other distributions some tweaking
|
|
# may be required).
|
|
|
|
set -e
|
|
set -u
|
|
|
|
# If on a debian environment this will make apt-get *not* prompt for passwords.
|
|
export DEBIAN_FRONTEND=noninteractive
|
|
|
|
# http://www.unixcl.com/2009/03/print-text-in-style-box-bash-scripting.html
|
|
Box () {
|
|
str="$@"
|
|
len=$((${#str}+4))
|
|
for i in $(seq $len); do echo -n '*'; done;
|
|
echo; echo "* "$str" *";
|
|
for i in $(seq $len); do echo -n '*'; done;
|
|
echo
|
|
}
|
|
|
|
Box "Installing system packages..."
|
|
if [ -f "/etc/redhat-release" ]; then
|
|
yum install -y -q mysql-devel postgresql-devel mysql-server \
|
|
wget gcc make autoconf
|
|
mysqld="mysqld"
|
|
zookeeperd="zookeeper-server"
|
|
elif [ -f "/etc/debian_version" ]; then
|
|
apt-get -y -qq install libmysqlclient-dev mysql-server postgresql \
|
|
wget gcc make autoconf
|
|
mysqld="mysql"
|
|
zookeeperd="zookeeper"
|
|
else
|
|
echo "Unknown distribution!!"
|
|
lsb_release -a
|
|
exit 1
|
|
fi
|
|
|
|
set +e
|
|
python_27=`which python2.7`
|
|
set -e
|
|
|
|
build_dir=`mktemp -d`
|
|
echo "Created build directory $build_dir..."
|
|
cd $build_dir
|
|
|
|
# Get python 2.7 installed (if it's not).
|
|
if [ -z "$python_27" ]; then
|
|
py_version="2.7.9"
|
|
py_file="Python-$py_version.tgz"
|
|
py_base_file=${py_file%.*}
|
|
py_url="https://www.python.org/ftp/python/$py_version/$py_file"
|
|
|
|
Box "Building python 2.7 (version $py_version)..."
|
|
wget $py_url -O "$build_dir/$py_file" --no-check-certificate -nv
|
|
tar -xf "$py_file"
|
|
cd $build_dir/$py_base_file
|
|
./configure --disable-ipv6 -q
|
|
make --quiet
|
|
|
|
Box "Installing python 2.7 (version $py_version)..."
|
|
make altinstall >/dev/null 2>&1
|
|
python_27=/usr/local/bin/python2.7
|
|
fi
|
|
|
|
set +e
|
|
pip_27=`which pip2.7`
|
|
set -e
|
|
if [ -z "$pip_27" ]; then
|
|
Box "Installing pip..."
|
|
wget "https://bootstrap.pypa.io/get-pip.py" \
|
|
-O "$build_dir/get-pip.py" --no-check-certificate -nv
|
|
$python_27 "$build_dir/get-pip.py" >/dev/null 2>&1
|
|
pip_27=/usr/local/bin/pip2.7
|
|
fi
|
|
|
|
Box "Installing tox..."
|
|
$pip_27 install -q 'tox>=1.6.1,<1.7.0'
|
|
|
|
Box "Setting up mysql..."
|
|
service $mysqld restart
|
|
/usr/bin/mysql --user="root" --execute='CREATE DATABASE 'openstack_citest''
|
|
cat << EOF > $build_dir/mysql.sql
|
|
CREATE USER 'openstack_citest'@'localhost' IDENTIFIED BY 'openstack_citest';
|
|
CREATE USER 'openstack_citest' IDENTIFIED BY 'openstack_citest';
|
|
GRANT ALL PRIVILEGES ON *.* TO 'openstack_citest'@'localhost';
|
|
GRANT ALL PRIVILEGES ON *.* TO 'openstack_citest';
|
|
FLUSH PRIVILEGES;
|
|
EOF
|
|
/usr/bin/mysql --user="root" < $build_dir/mysql.sql
|
|
|
|
# TODO(harlowja): configure/setup postgresql...
|
|
|
|
Box "Installing zookeeper..."
|
|
if [ -f "/etc/redhat-release" ]; then
|
|
# RH doesn't ship zookeeper (still...)
|
|
zk_file="cloudera-cdh-4-0.x86_64.rpm"
|
|
zk_url="http://archive.cloudera.com/cdh4/one-click-install/redhat/6/x86_64/$zk_file"
|
|
wget $zk_url -O $build_dir/$zk_file --no-check-certificate -nv
|
|
yum -y -q --nogpgcheck localinstall $build_dir/$zk_file
|
|
yum -y -q install zookeeper-server java
|
|
service zookeeper-server stop
|
|
service zookeeper-server init --force
|
|
mkdir -pv /var/lib/zookeeper
|
|
python -c "import random; print random.randint(1, 16384)" > /var/lib/zookeeper/myid
|
|
elif [ -f "/etc/debian_version" ]; then
|
|
apt-get install -y -qq zookeeperd
|
|
else
|
|
echo "Unknown distribution!!"
|
|
lsb_release -a
|
|
exit 1
|
|
fi
|
|
|
|
Box "Starting zookeeper..."
|
|
service $zookeeperd restart
|
|
service $zookeeperd status
|