diff options
author | Jenkins <jenkins@review.openstack.org> | 2014-12-03 21:01:01 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2014-12-03 21:01:01 +0000 |
commit | 87abb27f1759fdce06c72fcbd2ece69ab06c5ea4 (patch) | |
tree | 249c955da869fc38a4a84cf06b2abdb9829b294c /tools | |
parent | 7d13bfd5ba0c711458803e496c97356662a4ba71 (diff) | |
parent | 8dc6e4f0fdb88aace0b4b127fe22ef4b9ab12928 (diff) | |
download | taskflow-87abb27f1759fdce06c72fcbd2ece69ab06c5ea4.tar.gz |
Merge "Add a sample script that can be used to build a test environment"
Diffstat (limited to 'tools')
-rw-r--r-- | tools/env_builder.sh | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/tools/env_builder.sh b/tools/env_builder.sh new file mode 100644 index 0000000..b6171c7 --- /dev/null +++ b/tools/env_builder.sh @@ -0,0 +1,121 @@ +#!/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 +} + +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_file="Python-2.7.7.tgz" + py_base_file=${py_file%.*} + py_url="https://www.python.org/ftp/python/2.7.7/$py_file" + + Box "Building python 2.7..." + 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..." + 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 "Installing system packages..." +if [ -f "/etc/redhat-release" ]; then + yum install -y -q mysql-devel postgresql-devel mysql-server + mysqld="mysqld" +elif [ -f "/etc/debian_version" ]; then + apt-get -y -qq install libmysqlclient-dev mysql-server postgresql + mysqld="mysql" +else + echo "Unknown distribution!!" + lsb_release -a + exit 1 +fi + +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 + +Box "Installing zookeeper..." +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" +if [ -f "/etc/redhat-release" ]; then + 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 + zookeeperd="zookeeper-server" +elif [ -f "/etc/debian_version" ]; then + apt-get install -y -qq zookeeperd + zookeeperd="zookeeper" +else + echo "Unknown distribution!!" + lsb_release -a + exit 1 +fi + +Box "Starting zookeeper..." +service $zookeeperd restart +service $zookeeperd status |