Use systemd daemon

pull/87/head
Paul Aswa 8 years ago
parent bf50956675
commit 4ae0a73322

@ -1,6 +1,6 @@
#!/bin/bash
################################################################################
# Script for installing Odoo 11 on OpenSUSE 42.3 (could be used for other version too)
# Script for installing Odoo 11 on OpenSUSE 42.2 (could be used for other version too)
# Author: Yenthe Van Ginneken
# Author: Aswa Paul
#-------------------------------------------------------------------------------
@ -17,7 +17,7 @@
##fixed parameters
#odoo
OE_USER="odoo"
OE_USER="openerp"
OE_HOME="/$OE_USER"
OE_HOME_EXT="/$OE_USER/${OE_USER}-server"
#The default port where this Odoo instance will run under (provided you use the command -c in the terminal)
@ -27,12 +27,13 @@ INSTALL_WKHTMLTOPDF="True"
OE_PORT="8069"
#Choose the Odoo version which you want to install. For example: 11.0, 10.0, 9.0 or saas-18. When using 'master' the master version will be installed.
#IMPORTANT! This script contains extra libraries that are specifically needed for Odoo 11.0
OE_VERSION="11.0"
OE_VERSION="7.0"
# Set this to True if you want to install Odoo 11 Enterprise!
IS_ENTERPRISE="True"
#set the superadmin password
OE_SUPERADMIN="admin"
OE_CONFIG="${OE_USER}-server"
OE_SERVICE="${OE_USER}.service"
##
### WKHTMLTOPDF download links
@ -66,7 +67,7 @@ sudo zypper install python3 python3-pip python-devel python3-devel bzr python-su
sudo zypper install -y libxslt
echo -e "\n---- Install tool packages ----"
sudo zypper install wget git bzr python-pip -y
sudo zypper install -y wget git bzr python-pip
echo -e "\n---- Install PyChart ----"
sudo zypper addrepo https://download.opensuse.org/repositories/spins:invis:common/openSUSE_Leap_42.3/spins:invis:common.repo
@ -82,13 +83,13 @@ sudo pip3 install python-dateutil docutils feedparser jinja2 ldap lxml mako mock
sudo pip3 install python-openid psycopg2 psutil babel pydot pyparsing reportlab simplejson pytz
sudo pip3 install unittest2 vatnumber vobject pywebdav werkzeug xlwt pyyaml pypdf passlib decorator
sudo pip3 install markupsafe pyusb pyserial paramiko utils pdftools requests xlsxwriter
sudo pip3 install psycogreen ofxparse gevent argparse pyOpenSSL>=16.2.0
sudo pip3 install pypdf2 Babel Werkzeug html2text pillow ninja2 gdata XlsxWriter ebaysdk suds-jurko greenlet xlrd
sudo pip3 install psycogreen ofxparse gevent argparse pyOpenSSL>=16.2.0 lessc
sudo pip3 install pypdf2 Babel Werkzeug html2text Pillow>=3.4.2 ninja2 gdata XlsxWriter ebaysdk suds-jurko greenlet xlrd
echo -e "\n--- Install other required packages"
sudo zypper install node-clean-css -y
sudo zypper install node-less -y
sudo zypper install python-gevent -y
echo -e "\n--- Install other required packages"
sudo zypper install -y python-gevent
sudo ln -s /usr/local/bin/lessc /usr/bin/lessc
#--------------------------------------------------
# Install Wkhtmltopdf if needed
@ -110,9 +111,10 @@ else
fi
echo -e "\n---- Create ODOO system user ----"
sudo useradd -r --shell=/bin/bash -d $OE_HOME -m -g $OE_USER odoo
sudo groupadd $OE_USER
sudo useradd -r --shell /bin/bash -d $OE_HOME -m -g $OE_USER $OE_USER
#The user should also be added to the sudo'ers group.
sudo useradd $OE_USER sudo
sudo usermod -a -G root $OE_USER # Edit appropriately
echo -e "\n---- Create Log directory ----"
sudo mkdir /var/log/$OE_USER
@ -122,9 +124,9 @@ sudo chown $OE_USER:$OE_USER /var/log/$OE_USER
# Install ODOO
#--------------------------------------------------
echo -e "\n==== Installing ODOO Server ===="
sudo git clone --depth 1 --branch $OE_VERSION https://www.github.com/odoo/odoo $OE_HOME_EXT/
sudo git clone --depth 1 --branch $OE_VERSION https://www.github.com/odoo/odoo "$OE_HOME_EXT/"
if [ $IS_ENTERPRISE = "True" ]; then
if [ $IS_ENTERPRISE == "True" ]; then
# Odoo Enterprise install!
echo -e "\n--- Create symlink for node"
sudo ln -s /usr/bin/nodejs /usr/bin/node
@ -151,8 +153,8 @@ if [ $IS_ENTERPRISE = "True" ]; then
fi
echo -e "\n---- Create custom module directory ----"
sudo su $OE_USER -c "mkdir $OE_HOME/custom"
sudo su $OE_USER -c "mkdir $OE_HOME/custom/addons"
sudo mkdir $OE_HOME/custom
sudo mkdir $OE_HOME/custom/addons
echo -e "\n---- Setting permissions on home folder ----"
sudo chown -R $OE_USER:$OE_USER $OE_HOME/*
@ -163,8 +165,12 @@ sudo touch /etc/${OE_CONFIG}.conf
echo -e "* Creating server config file"
sudo su root -c "printf '[options] \n; This is the password that allows database operations:\n' >> /etc/${OE_CONFIG}.conf"
sudo su root -c "printf 'admin_passwd = ${OE_SUPERADMIN}\n' >> /etc/${OE_CONFIG}.conf"
sudo su root -c "printf 'db_host = False\n' >> /etc/${OE_CONFIG}.conf"
sudo su root -c "printf 'db_port = False\n' >> /etc/${OE_CONFIG}.conf"
sudo su root -c "printf 'db_user = ${OE_USER}\n' >> /etc/${OE_CONFIG}.conf"
sudo su root -c "printf 'db_password = False\n' >> /etc/${OE_CONFIG}.conf"
sudo su root -c "printf 'xmlrpc_port = ${OE_PORT}\n' >> /etc/${OE_CONFIG}.conf"
sudo su root -c "printf 'logfile = /var/log/${OE_USER}/${OE_CONFIG}\n' >> /etc/${OE_CONFIG}.conf"
sudo su root -c "printf 'logfile = /var/log/${OE_USER}/${OE_CONFIG}.log\n' >> /etc/${OE_CONFIG}.conf"
if [ $IS_ENTERPRISE = "True" ]; then
sudo su root -c "printf 'addons_path=${OE_HOME}/enterprise/addons,${OE_HOME_EXT}/addons\n' >> /etc/${OE_CONFIG}.conf"
else
@ -173,92 +179,35 @@ fi
sudo chown $OE_USER:$OE_USER /etc/${OE_CONFIG}.conf
sudo chmod 640 /etc/${OE_CONFIG}.conf
echo -e "* Create startup file"
sudo su root -c "echo '#!/bin/sh' >> $OE_HOME_EXT/start.sh"
sudo su root -c "echo 'sudo -u $OE_USER $OE_HOME_EXT/openerp-server --config=/etc/${OE_CONFIG}.conf' >> $OE_HOME_EXT/start.sh"
sudo chmod 755 $OE_HOME_EXT/start.sh
#--------------------------------------------------
# Adding ODOO as a deamon (initscript)
# Adding ODOO as a deamon (systemd)
#--------------------------------------------------
echo -e "* Create init file"
cat <<EOF > ~/$OE_CONFIG
#!/bin/sh
### BEGIN INIT INFO
# Provides: $OE_CONFIG
# Required-Start: \$remote_fs \$syslog
# Required-Stop: \$remote_fs \$syslog
# Should-Start: \$network
# Should-Stop: \$network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Enterprise Business Applications
# Description: ODOO Business Applications
### END INIT INFO
PATH=/bin:/sbin:/usr/bin
DAEMON=$OE_HOME_EXT/odoo-bin
NAME=$OE_CONFIG
DESC=$OE_CONFIG
# Specify the user name (Default: odoo).
USER=$OE_USER
# Specify an alternate config file (Default: /etc/openerp-server.conf).
CONFIGFILE="/etc/${OE_CONFIG}.conf"
# pidfile
PIDFILE=/var/run/\${NAME}.pid
# Additional options that are passed to the Daemon.
DAEMON_OPTS="-c \$CONFIGFILE"
[ -x \$DAEMON ] || exit 0
[ -f \$CONFIGFILE ] || exit 0
checkpid() {
[ -f \$PIDFILE ] || return 1
pid=\`cat \$PIDFILE\`
[ -d /proc/\$pid ] && return 0
return 1
}
case "\${1}" in
start)
echo -n "Starting \${DESC}: "
start-stop-daemon --start --quiet --pidfile \$PIDFILE \
--chuid \$USER --background --make-pidfile \
--exec \$DAEMON -- \$DAEMON_OPTS
echo "\${NAME}."
;;
stop)
echo -n "Stopping \${DESC}: "
start-stop-daemon --stop --quiet --pidfile \$PIDFILE \
--oknodo
echo "\${NAME}."
;;
restart|force-reload)
echo -n "Restarting \${DESC}: "
start-stop-daemon --stop --quiet --pidfile \$PIDFILE \
--oknodo
sleep 1
start-stop-daemon --start --quiet --pidfile \$PIDFILE \
--chuid \$USER --background --make-pidfile \
--exec \$DAEMON -- \$DAEMON_OPTS
echo "\${NAME}."
;;
*)
N=/etc/init.d/\$NAME
echo "Usage: \$NAME {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
EOF
echo -e "* Security Init File"
sudo mv ~/$OE_CONFIG /etc/init.d/$OE_CONFIG
sudo chmod 755 /etc/init.d/$OE_CONFIG
sudo chown root: /etc/init.d/$OE_CONFIG
cat <<EOF > ~/$OE_SERVICE
[Unit]
Description=Odoo Server Service
Requires=postgresql.service
After=network.target
[Service]
Type=simple
User=$OE_USER
WorkingDirectory=$OE_HOME
ExecStart=$OE_HOME_EXT/$OE_CONFIG --config=/etc/openerp-server.conf
[Install]
WantedBy=multi-user.target
EOF
echo -e "* Start ODOO on Startup"
sudo update-rc.d $OE_CONFIG defaults
echo -e "* Systemd Service"
sudo mv ~/$OE_SERVICE /etc/systemd/system/$OE_SERVICE
sudo chmod 664 /etc/systemd/system/$OE_SERVICE
sudo chown root: /etc/systemd/system/$OE_SERVICE
echo -e "* Starting Odoo Service"
sudo su root -c "/etc/init.d/$OE_CONFIG start"
sudo systemctl start $OE_SERVICE
echo "-----------------------------------------------------------"
echo "Done! The Odoo server is up and running. Specifications:"
echo "Port: $OE_PORT"
@ -266,7 +215,7 @@ echo "User service: $OE_USER"
echo "User PostgreSQL: $OE_USER"
echo "Code location: $OE_USER"
echo "Addons folder: $OE_USER/$OE_CONFIG/addons/"
echo "Start Odoo service: sudo service $OE_CONFIG start"
echo "Stop Odoo service: sudo service $OE_CONFIG stop"
echo "Restart Odoo service: sudo service $OE_CONFIG restart"
echo "Start Odoo service: sudo systemctl start $OE_SERVICE"
echo "Stop Odoo service: sudo systemctl stop $OE_SERVICE"
echo "Restart Odoo service: sudo systemctl restart $OE_SERVICE"
echo "-----------------------------------------------------------"

Loading…
Cancel
Save