Skip to content
Snippets Groups Projects
Commit 6949506b authored by Sebastian Rieger's avatar Sebastian Rieger
Browse files

added aws install.sh in faafo to fix reqs install failed

parent 661b125e
No related branches found
No related tags found
No related merge requests found
#!/bin/bash
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
if [[ -e /etc/os-release ]]; then
# NOTE(berendt): support for CentOS/RHEL/openSUSE/SLES will be added in the future
source /etc/os-release
INSTALL_DATABASE=0
INSTALL_FAAFO=0
INSTALL_MESSAGING=0
RUN_API=0
RUN_DEMO=0
RUN_WORKER=0
URL_DATABASE='sqlite:////tmp/sqlite.db'
URL_ENDPOINT='http://127.0.0.1'
URL_MESSAGING='amqp://guest:guest@localhost:5672/'
while getopts e:m:d:i:r: FLAG; do
case $FLAG in
i)
case $OPTARG in
messaging)
INSTALL_MESSAGING=1
;;
database)
INSTALL_DATABASE=1
;;
faafo)
INSTALL_FAAFO=1
;;
esac
;;
r)
case $OPTARG in
demo)
RUN_DEMO=1
;;
api)
RUN_API=1
;;
worker)
RUN_WORKER=1
;;
esac
;;
e)
URL_ENDPOINT=$OPTARG
;;
m)
URL_MESSAGING=$OPTARG
;;
d)
URL_DATABASE=$OPTARG
;;
*)
echo "error: unknown option $FLAG"
exit 1
;;
esac
done
if [[ $ID = 'ubuntu' || $ID = 'debian' ]]; then
sudo apt-get update
elif [[ $ID = 'fedora' ]]; then
sudo dnf update -y
fi
if [[ $INSTALL_DATABASE -eq 1 ]]; then
if [[ $ID = 'ubuntu' || $ID = 'debian' ]]; then
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y mysql-server python-mysqldb
# HSFD changes for Ubuntu 18.04
sudo sed -i -e "/bind-address/d" /etc/mysql/mysql.conf.d/mysqld.cnf
#sudo sed -i -e "/bind-address/d" /etc/mysql/my.cnf
sudo service mysql restart
elif [[ $ID = 'fedora' ]]; then
sudo dnf install -y mariadb-server python-mysql
printf "[mysqld]\nbind-address = 127.0.0.1\n" | sudo tee /etc/my.cnf.d/faafo.conf
sudo systemctl enable mariadb
sudo systemctl start mariadb
else
echo "error: distribution $ID not supported"
exit 1
fi
sudo mysqladmin password password
sudo mysql -uroot -ppassword mysql -e "CREATE DATABASE IF NOT EXISTS faafo; GRANT ALL PRIVILEGES ON faafo.* TO 'faafo'@'%' IDENTIFIED BY 'password';"
URL_DATABASE='mysql://root:password@localhost/faafo'
fi
if [[ $INSTALL_MESSAGING -eq 1 ]]; then
if [[ $ID = 'ubuntu' || $ID = 'debian' ]]; then
sudo apt-get install -y rabbitmq-server
elif [[ $ID = 'fedora' ]]; then
sudo dnf install -y rabbitmq-server
sudo systemctl enable rabbitmq-server
sudo systemctl start rabbitmq-server
else
echo "error: distribution $ID not supported"
exit 1
fi
fi
if [[ $INSTALL_FAAFO -eq 1 ]]; then
if [[ $ID = 'ubuntu' || $ID = 'debian' ]]; then
sudo apt-get install -y python-dev python-pip supervisor git zlib1g-dev libmysqlclient-dev python-mysqldb
# Following is needed because of
# https://bugs.launchpad.net/ubuntu/+source/supervisor/+bug/1594740
if [ $(lsb_release --short --codename) = xenial ]; then
# Make sure the daemon is enabled.
if ! systemctl --quiet is-enabled supervisor; then
systemctl enable supervisor
fi
# Make sure the daemon is started.
if ! systemctl --quiet is-active supervisor; then
systemctl start supervisor
fi
fi
elif [[ $ID = 'fedora' ]]; then
sudo dnf install -y python-devel python-pip supervisor git zlib-devel mariadb-devel gcc which python-mysql
sudo systemctl enable supervisord
sudo systemctl start supervisord
#elif [[ $ID = 'opensuse' || $ID = 'sles' ]]; then
# sudo zypper install -y python-devel python-pip
else
echo "error: distribution $ID not supported"
exit 1
fi
# HSFD changed to local repo
git clone https://gogs.informatik.hs-fulda.de/srieger/cloud-computing-msc-ai-examples
cd cloud-computing-msc-ai-examples/faafo
# following line required by bug 1636150
sudo pip install --upgrade pbr
sudo pip install -r requirements.txt
# rerun install of reqs in AWS, as first run seams to be killed?
sudo pip install -r requirements.txt
sudo python setup.py install
sudo sed -i -e "s#transport_url = .*#transport_url = $URL_MESSAGING#" /etc/faafo/faafo.conf
sudo sed -i -e "s#database_url = .*#database_url = $URL_DATABASE#" /etc/faafo/faafo.conf
sudo sed -i -e "s#endpoint_url = .*#endpoint_url = $URL_ENDPOINT#" /etc/faafo/faafo.conf
fi
if [[ $RUN_API -eq 1 ]]; then
faafo_api="
[program:faafo_api]
command=$(which faafo-api)
priority=10"
if [[ $ID = 'ubuntu' || $ID = 'debian' ]]; then
echo "$faafo_api" | sudo tee -a /etc/supervisor/conf.d/faafo.conf
elif [[ $ID = 'fedora' ]]; then
echo "$faafo_api" | sudo tee -a /etc/supervisord.d/faafo.ini
else
echo "error: distribution $ID not supported"
exit 1
fi
fi
if [[ $RUN_WORKER -eq 1 ]]; then
faafo_worker="
[program:faafo_worker]
command=$(which faafo-worker)
priority=20"
if [[ $ID = 'ubuntu' || $ID = 'debian' ]]; then
echo "$faafo_worker" | sudo tee -a /etc/supervisor/conf.d/faafo.conf
elif [[ $ID = 'fedora' ]]; then
echo "$faafo_worker" | sudo tee -a /etc/supervisord.d/faafo.ini
else
echo "error: distribution $ID not supported"
exit 1
fi
fi
if [[ $RUN_WORKER -eq 1 || $RUN_API -eq 1 ]]; then
sudo supervisorctl reload
sleep 5
fi
if [[ $RUN_DEMO -eq 1 && $RUN_API -eq 1 ]]; then
faafo --endpoint-url $URL_ENDPOINT --debug create
fi
else
exit 1
fi
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment