11c8f513cb
This patch adds logic to install_valence.sh to install and add initial directories to the ectd database when running valence_install.sh Change-Id: Iec4e1fff16ae3a92163f026ee231be09fcbb0865 Closes-Bug: #1668438
90 lines
3.0 KiB
Bash
Executable File
90 lines
3.0 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"/doc/source/init/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
|
|
|
|
# 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
|
|
cp etc/valence/valence.conf.sample /etc/valence/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"/doc/source/init/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" |