summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2014-12-03 21:01:01 +0000
committerGerrit Code Review <review@openstack.org>2014-12-03 21:01:01 +0000
commit87abb27f1759fdce06c72fcbd2ece69ab06c5ea4 (patch)
tree249c955da869fc38a4a84cf06b2abdb9829b294c /tools
parent7d13bfd5ba0c711458803e496c97356662a4ba71 (diff)
parent8dc6e4f0fdb88aace0b4b127fe22ef4b9ab12928 (diff)
downloadtaskflow-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.sh121
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