Skip to content
Snippets Groups Projects
Commit 01cd180c authored by David Schmitz's avatar David Schmitz
Browse files

added systemd integration for DEBIAN/UBUNTU

parent 5c4fbeab
No related branches found
No related tags found
No related merge requests found
...@@ -73,6 +73,9 @@ Dockerfile* ...@@ -73,6 +73,9 @@ Dockerfile*
runfod-*.sh runfod-*.sh
supervisord.conf supervisord.conf
fod-gunicorn.service
fod-celeryd.service
############################################################################# #############################################################################
############################################################################# #############################################################################
......
[Unit]
Description=Firewall-On-Demand (FoD) celeryd (back-end)
#After=network.target auditd.service
Requires=fod-gunicorn.service redis-server.service
[Service]
#Type=forking
Type=simple
User=fod
WorkingDirectory=/srv/flowspy
#RuntimeDirectory=yourservice
#RuntimeDirectoryMode=0755
ExecStart=/srv/flowspy/pythonenv celery -A flowspy worker -B --concurrency=2 -l debug -f logs/celery.log
#PIDFile=/tmp/yourservice.pid
#StandardOutput=./log/celeryd-stderr.log
#StandardError=./log/celeryd-stderr.log
Restart=on-failure
###
[Install]
WantedBy=multi-user.target
[Unit]
Description=Firewall-On-Demand (FoD) gunicorn (front-end)
After=network.target auditd.service
Requires=fod-celeryd.service redis-server.service
[Service]
#Type=forking
Type=simple
User=fod
WorkingDirectory=/srv/flowspy
#RuntimeDirectory=yourservice
#RuntimeDirectoryMode=0755
ExecStart=/srv/flowspy/pythonenv gunicorn -b 0.0.0.0:8000 flowspy.wsgi -w 1 -k gevent --limit-request-fields 10000 --timeout 30
#PIDFile=/tmp/yourservice.pid
#StandardOutput=./log/gunicorn-stderr.log
#StandardError=./log/gunicorn-stderr.log
#StandardOutput=syslog
#StandardError=syslog
#SyslogIdentifier=test1
Restart=on-failure
###
[Install]
WantedBy=multi-user.target
...@@ -10,6 +10,16 @@ venv_dir="/srv/venv" ...@@ -10,6 +10,16 @@ venv_dir="/srv/venv"
install_basesw=1 install_basesw=1
install_fodproper=1 install_fodproper=1
install_systemd_services=0
if grep -q -E '^systemd$' /proc/1/comm; then
echo "system is running systemd as init process, setting default install_systemd_services=1" 1>&2
install_systemd_services=1
elif [ -e "/.dockenv" ]; then
echo "running inside docker assummed, setting default install_systemd_services=0" 1>&2
install_systemd_services=0
fi
# #
while [ $# -gt 0 ]; do while [ $# -gt 0 ]; do
...@@ -44,6 +54,12 @@ while [ $# -gt 0 ]; do ...@@ -44,6 +54,12 @@ while [ $# -gt 0 ]; do
shift 1 shift 1
install_basesw=0 install_basesw=0
install_fodproper=1 install_fodproper=1
elif [ $# -ge 1 -a "$1" = "--systemd" ]; then
shift 1
install_systemd_services=1
elif [ $# -ge 1 -a "$1" = "--no_systemd" ]; then
shift 1
install_systemd_services=0
else else
break break
fi fi
...@@ -55,7 +71,7 @@ done ...@@ -55,7 +71,7 @@ done
venv_dir_base="$(dirname "$venv_dir")" venv_dir_base="$(dirname "$venv_dir")"
static_dir="$fod_dir/static" static_dir="$fod_dir/static"
inst_dir="$(dirname "$0")" inst_dir="$(dirname "$0")"
mkdir -p "$fod_dir" || exit mkdir -p "$fod_dir" || exit
...@@ -126,78 +142,105 @@ else ...@@ -126,78 +142,105 @@ else
ln -sf "$venv_dir" "$fod_dir/venv" ln -sf "$venv_dir" "$fod_dir/venv"
( (
set +e set +e
#source /srv/venv/bin/activate #source /srv/venv/bin/activate
source "$venv_dir/bin/activate" source "$venv_dir/bin/activate"
#mkdir -p /srv/flowspy/ #mkdir -p /srv/flowspy/
mkdir -p "$fod_dir" mkdir -p "$fod_dir"
if [ "$inst_dir_is_fod_dir" = 0 ]; then if [ "$inst_dir_is_fod_dir" = 0 ]; then
# Select source dir and copy FoD into /srv/flowspy/ # Select source dir and copy FoD into /srv/flowspy/
if [ "`basename "$0"`" = install-debian.sh ]; then if [ "`basename "$0"`" = install-debian.sh ]; then
# this script is in the source directory # this script is in the source directory
#cp -f -r "`dirname $0`"/* /srv/flowspy/ #cp -f -r "`dirname $0`"/* /srv/flowspy/
cp -f -r "$inst_dir"/* "$fod_dir" cp -f -r "$inst_dir"/* "$fod_dir"
elif [ -e /vagrant ]; then elif [ -e /vagrant ]; then
# vagrant's copy in /vagrant/ # vagrant's copy in /vagrant/
#cp -f -r /vagrant/* /srv/flowspy/ #cp -f -r /vagrant/* /srv/flowspy/
cp -f -r /vagrant/* "$fod_dir" cp -f -r /vagrant/* "$fod_dir"
elif [ -e ./install-centos.sh ]; then elif [ -e ./install-centos.sh ]; then
# current directory is with the sourcecode # current directory is with the sourcecode
#cp -f -r ./* /srv/flowspy/ #cp -f -r ./* /srv/flowspy/
cp -f -r ./* "$fod_dir" cp -f -r ./* "$fod_dir"
else else
echo "Could not find FoD src directory tried `dirname $0`, /vagrant/, ./" echo "Could not find FoD src directory tried `dirname $0`, /vagrant/, ./"
exit 1 exit 1
fi fi
fi fi
#find "$fod_dir/" -not -user fod -exec chown -v fod: {} \; #find "$fod_dir/" -not -user fod -exec chown -v fod: {} \;
find "$fod_dir/" -not -user fod -exec chown fod: {} \; find "$fod_dir/" -not -user fod -exec chown fod: {} \;
set -e set -e
#cd /srv/flowspy/ #cd /srv/flowspy/
cd "$fod_dir" cd "$fod_dir"
( (
cd flowspy cd flowspy
if [ ! -e settings.py ]; then if [ ! -e settings.py ]; then
cp -f settings.py.dist settings.py cp -f settings.py.dist settings.py
patch settings.py < settings.py.patch patch settings.py < settings.py.patch
sed -i "s#/srv/flowspy#$fod_dir#" "settings.py" sed -i "s#/srv/flowspy#$fod_dir#" "settings.py"
fi fi
) )
if [ "$install_basesw" = 1 ]; then #are we running in --both mode, i.e. for the venv init is run for the first time, i.e. the problematic package having issues with to new setuptools is not yet installed? if [ "$install_basesw" = 1 ]; then #are we running in --both mode, i.e. for the venv init is run for the first time, i.e. the problematic package having issues with to new setuptools is not yet installed?
# fix # fix
pip install setuptools==57.5.0 pip install setuptools==57.5.0
: :
fi fi
pip install -r requirements.txt pip install -r requirements.txt
if [ ! -e "flowspy/settings_local.py" ]; then if [ ! -e "flowspy/settings_local.py" ]; then
touch flowspy/settings_local.py touch flowspy/settings_local.py
fi fi
mkdir -p "$fod_dir/log" "$fod_dir/logs"
chown -R fod: "$fod_dir/log" "$fod_dir/logs"
#./manage.py syncdb --noinput
#mkdir -p /srv/flowspy/static/
mkdir -p "$static_dir"
./manage.py collectstatic --noinput
./manage.py migrate
./manage.py loaddata initial_data
#
cp -f "$fod_dir/supervisord.conf.dist" "$fod_dir/supervisord.conf"
sed -i "s#/srv/flowspy#$fod_dir#" "$fod_dir/supervisord.conf"
#
mkdir -p /var/run/fod
chown fod: /var/run/fod
#
cp -f "$fod_dir/fod-gunicorn.service.dist" "$fod_dir/fod-gunicorn.service"
sed -i "s#/srv/flowspy#$fod_dir#" "$fod_dir/fod-gunicorn.service"
cp -f "$fod_dir/fod-celeryd.service.dist" "$fod_dir/fod-celeryd.service"
sed -i "s#/srv/flowspy#$fod_dir#" "$fod_dir/fod-celeryd.service"
mkdir -p "$fod_dir/log" "$fod_dir/logs" if [ "$install_systemd_services" = 1 ]; then
chown -R fod: "$fod_dir/log" "$fod_dir/logs" echo 1>&2
echo "Install_systemd_services" 1>&2
echo 1>&2
cp -f "$fod_dir/fod-gunicorn.service.dist" "$fod_dir/fod-celeryd.service.dist" "/etc/systemd/system/"
#./manage.py syncdb --noinput sleep 5
#mkdir -p /srv/flowspy/static/ SYSTEMD_COLORS=1 systemctl status fod-gunicorn | cat
mkdir -p "$static_dir" echo
./manage.py collectstatic --noinput SYSTEMD_COLORS=1 systemctl status fod-celeryd | cat
./manage.py migrate echo
./manage.py loaddata initial_data
cp -f "$fod_dir/supervisord.conf.dist" "$fod_dir/supervisord.conf" fi
sed -i "s#/srv/flowspy#$fod_dir#" "$fod_dir/supervisord.conf"
mkdir -p /var/run/fod
chown fod: /var/run/fod
) )
set +e set +e
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment