valence/install_valence.sh
Anusha Ramineni b19420fd04 Move all the config items to etc folder
Currently the service startup files are placed in doc folder.
Moving the same to etc for better maintenance of all the conf
files.

Change-Id: I16be81b161263d7f2c446fd31cf92170f1091f60
2017-05-02 15:09:11 +05:30

107 lines
3.7 KiB
Bash
Executable File

#!/bin/bash
#title :install_valence.sh
#description :This script will install valence package and deploys conf files
#author :Intel Corporation
#date :17-10-2016
#version :0.1
#usage :sudo -E bash install_valence.sh
#notes :Run this script as sudo user and not as root.
# This script is needed still valence is packaged in to .deb/.rpm
#==============================================================================
install_log=install_valence.log
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
CURR_USER="$(whoami)"
cd "$DIR"
echo "Current directory: $DIR" >> $install_log
if [ "$CURR_USER" != 'root' ]; then
echo "You must be root to install."
exit
fi
PYHOME="/usr/local/bin"
echo "Detected PYTHON HOME: $PYHOME" >> $install_log
# Copy the config files
echo "Setting up valence config" >> $install_log
sed "s/\${CHUID}/$CURR_USER/" "$DIR"/etc/services-startup-conf/valence.conf > /tmp/valence.conf
# Use alternate sed delimiter because path will have /
sed -i "s#PYHOME#$PYHOME#" /tmp/valence.conf
mv /tmp/valence.conf /etc/init/valence.conf
# Generate initial sample config file.
echo "Generating sample config file" >> $install_log
pip install tox
tox -egenconfig
# create conf directory for valence if it doesn't exist
if [ ! -d "/etc/valence" ]; then
mkdir /etc/valence
fi
chown "$CURR_USER":"$CURR_USER" /etc/valence
VALENCE_CONF=/etc/valence/valence.conf
cp etc/valence.conf.sample /etc/valence/valence.conf
sudo sed -i "s/#debug\s*=.*/debug=true/" $VALENCE_CONF
sudo sed -i "s/#log_level\s*=.*/log_level=debug/" $VALENCE_CONF
sudo sed -i "s/#log_file\s*=.*/log_file=/var/log/valence/valence.log/" $VALENCE_CONF
sudo sed -i "s/#bind_host\s*=.*/bind_host=0.0.0.0/" $VALENCE_CONF
sudo sed -i "s/#bind_port\s*=.*/bind_port=8181/" $VALENCE_CONF
sudo sed -i "s/#timeout\s*=.*/timeout=1000/" $VALENCE_CONF
sudo sed -i "s/#workers\s*=.*/workers=4/" $VALENCE_CONF
sudo sed -i "s/#host\s*=.*/host=localhost/" $VALENCE_CONF
sudo sed -i "s/#port\s*=.*/port=2379/" $VALENCE_CONF
# create log directory for valence if it doesn't exist
if [ ! -d "/var/log/valence" ]; then
mkdir /var/log/valence
fi
chown "$CURR_USER":"$CURR_USER" /var/log/valence
echo "Installing dependencies from requirements.txt" >> $install_log
pip install -r requirements.txt
echo "Installing the etcd database" >> $install_log
ETCD_VER=v3.1.2
DOWNLOAD_URL=https://github.com/coreos/etcd/releases/download
curl -L ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz -o /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
mkdir -p /var/etcd && tar xzvf /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz -C /var/etcd --strip-components=1
chown "$CURR_USER":"$CURR_USER" /var/etcd
mv /var/etcd/etcd /usr/local/bin/etcd && mv /var/etcd/etcdctl /usr/local/bin/etcdctl
sed "s/\${CHUID}/$CURR_USER/" "$DIR"/etc/services-startup-conf/etcd.conf > /etc/init/etcd.conf
echo "Starting etcd database" >> $install_log
service etcd start
sleep 2
timeout=30
attempt=1
until [[ $(service etcd status) = "etcd start/running"* ]]
do
sleep 1
attempt=$((attempt+1))
if [[ $attempt -eq timeout ]]
then
echo "Database failed to start, aborting installation."
rm -rf /var/etcd /usr/local/bin/etcd /usr/local/bin/etcdctl
exit
fi
done
echo "Adding database directories" >> $install_log
etcdctl --endpoints=127.0.0.1:2379 mkdir /nodes
etcdctl --endpoints=127.0.0.1:2379 mkdir /flavors
etcdctl --endpoints=127.0.0.1:2379 mkdir /pod_managers
echo "Invoking setup.py" >> $install_log
python setup.py install
if [ $? -ne 0 ]; then
echo "ERROR: setup.py failed. Please check $install_log for details.
Please fix the error and retry."
exit
fi
echo "Installation Completed"
echo "To start valence : sudo service valence start"