Created
November 10, 2015 22:35
-
-
Save bistaray/55d79a1838376a876c4a to your computer and use it in GitHub Desktop.
Ubuntu Scripts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
################################################################################ | |
# Script for Installation: ODOO Saas4/Trunk server on Ubuntu 14.04 LTS | |
# Author: Andre Schenkels, ICTSTUDIO 2014 | |
# Modified: Ron McBean, Ursa Information Systems 2014 | |
#——————————————————————————- | |
# | |
# This script will install ODOO Server on a clean Ubuntu 14.04 Server | |
# | |
#——————————————————————————- | |
# USAGE: | |
# | |
# sudo odoo-install | |
# | |
# EXAMPLE: | |
# sudo ./odoo-install | |
# | |
################################################################################ | |
################################################################################ | |
######################### User Configurable Parameters ######################### | |
################################################################################ | |
###### OpenERP parameters | |
# Specify the Odoo user name (Default = "odoo"). | |
OE_USER="odoo" | |
# Specify the Odoo user password (Default = "odoo"). | |
OE_USERPWD="odoo" | |
# Specify the Odoo user's group (Default = "odoo"). | |
OE_GROUP="odoo" | |
# Specify the parent directory for all users (Default = "/home"). | |
USER_PARENT="/home" | |
# Specify the parent directory for all Odoo installations (Default = "/opt"). | |
OE_PARENT="opt" | |
# Specify the parent directory for all Odoo log files (Default = "/var/log"). | |
OE_LOG="/var/log" | |
# Specify Odoo log reporting level to info (Default = "info"). | |
LOG_LEVEL="info" | |
# Specify the version for checkout "8.0" for version 8.0, "7.0 (version 7), | |
#### These options are for later versions of this script: saas-4, saas-5 (opendays version) and "master" for trunk | |
OE_VERSION="8.0" | |
# Specify superadmin password (Default = "admin"). | |
OE_SUPERADMIN="admin" | |
##### PostgreSQL parameters | |
# Specify the url pointing to the location of the database (Default = "localhost"). | |
DB_HOST="localhost" | |
# Specify the port used by the database (Default ="5432"). | |
DB_PORT="5432" | |
# Specify the database user name assigned to Odoo user (Default = $OE_USER). | |
DB_USER="$OE_USER" | |
# Specify the database password assigned to the Odoo user named above (Default = $OE_USERPWD). | |
DB_PWD="$OE_USERPWD" | |
################################################################################ | |
############ In most cases, no edits should be made below this line ############ | |
################################################################################ | |
OE_HOME="/$OE_PARENT/$OE_USER" | |
OE_CONFIG="$OE_USER-server" | |
OE_LOG_EXT="$OE_LOG/$OE_USER/$OE_CONFIG.log" | |
USER_HOME="$USER_PARENT/$OE_USER" | |
case "$OE_VERSION" in | |
8.0) | |
OE_SUB="debian" | |
;; | |
7.0) | |
OE_SUB="install" | |
;; | |
*) | |
echo -e "\nUnknown or invalid version selection, script execution halted!!" | |
exit 1 | |
esac | |
echo -e "\nThe version selection is $OE_VERSION, the $OE_CONFIG config file is located in the $OE_SUB directory." | |
#————————————————– | |
# Update Server | |
#————————————————– | |
echo -e "\n—- Update Server —-" | |
apt-get update | |
apt-get dist-upgrade -y | |
apt-get install python-software-properties -y | |
#————————————————– | |
# Install PostgreSQL Server | |
#————————————————– | |
echo -e "\n—- Install PostgreSQL Server —-" | |
apt-get install postgresql-9.3 -y | |
echo -e "\n—- PostgreSQL $PG_VERSION Settings —-" | |
sed -i s/"#listen_addresses = 'localhost'"/"listen_addresses = '*'"/g /etc/postgresql/9.3/main/postgresql.conf | |
echo -e "\n—- Creating the ODOO PostgreSQL User —-" | |
PG_CMD="psql –command=\"CREATE ROLE $DB_USER CREATEDB LOGIN ENCRYPTED PASSWORD '$DB_PWD';\"" | |
su – postgres -c "$PG_CMD" 2> /dev/null || true | |
#————————————————– | |
# Create Odoo system group and user | |
#————————————————– | |
echo -e "\n—- Create ODOO system group and user —-" | |
addgroup –system –quiet $OE_GROUP | |
adduser –system –quiet –shell=/bin/bash –home=$USER_HOME –gecos 'ODOO' –ingroup $OE_GROUP $OE_USER | |
#————————————————– | |
# Install Dependencies | |
#————————————————– | |
echo -e "\n—- Install tool packages —-" | |
apt-get install wget git -y | |
echo -e "\n—- Install python packages —-" | |
apt-get install python-dateutil python-docutils python-feedparser python-jinja2 python-ldap python-libxslt1 python-lxml python-mako python-mock python-openid python-psycopg2 python-psutil python-pybabel python-pychart python-pydot python-pyparsing python-reportlab python-simplejson python-tz python-unittest2 python-vatnumber python-vobject python-webdav python-werkzeug python-xlwt python-yaml python-zsi poppler-utils python-pip python-docutils python-psutil python-mock python-unittest2 python-jinja2 python-pypdf python-decorator python-requests python-passlib -y | |
echo -e "\n—- Install font-config packages if not already installed —-" | |
apt-get install fontconfig | |
echo -e "\n—- Install wkhtmltopdf —-" | |
cd $USER_HOME | |
wget http://download.gna.org/wkhtmltopdf/0.12/0.12.1/wkhtmltox-0.12.1_linux-trusty-amd64.deb | |
# the following requires fontconfig and other related packages to be installed or else errors will result | |
dpkg -i wkhtmltox-0.12.1_linux-trusty-amd64.deb #modified version | |
echo -e "\n—- Install GData python libraries —-" | |
wget http://gdata-python-client.googlecode.com/files/gdata-2.0.17.tar.gz | |
tar zxvf gdata-2.0.17.tar.gz | |
chown -R $OE_USER:odoo gdata-2.0.17 | |
cd gdata-2.0.17/ | |
python setup.py install | |
cd .. | |
echo -e "\n—- Install and configure GIT —-" | |
apt-get install git | |
echo -e "\n—- Create Log directory —-" | |
mkdir "$OE_LOG/$OE_USER" | |
chown -R $OE_USER:root "$OE_LOG/$OE_USER" | |
#————————————————– | |
# Install ODOO | |
#————————————————– | |
echo -e "\n==== Installing ODOO Server ====" | |
cd $USER_HOME | |
git clone –branch $OE_VERSION –single-branch "https://www.github.com/odoo/odoo" | |
chown -R $OE_USER:odoo * | |
echo -e "\n==== Copy ODOO Server to final location ====" | |
mkdir $OE_HOME | |
chown -R $OE_USER:odoo $OE_HOME | |
cp -R ./odoo/. $OE_HOME | |
echo -e "\n—- Create custom module directory —-" | |
mkdir "$OE_HOME/custom-addons" | |
echo -e "\n—- Setting permissions on final location folder —-" | |
chown -R $OE_USER:odoo $OE_HOME/* | |
echo -e "\n—- Create server config file in etc folder —-" | |
mkdir "/etc/$OE_USER" | |
cp $OE_HOME/$OE_SUB/openerp-server.conf /etc/$OE_USER/$OE_CONFIG.conf | |
chown $OE_USER:odoo /etc/$OE_USER/$OE_CONFIG.conf | |
chmod 640 /etc/$OE_USER/$OE_CONFIG.conf | |
echo -e "\n—- Change server config file —-" | |
if [ "$OE_VERSION" = "7.0" ] | |
then | |
su root -c "echo 'addons_path = addon_path_7u0_values' >> /etc/$OE_USER/$OE_CONFIG.conf" | |
fi | |
sed -i s/"; admin_passwd.*"/"admin_passwd = $OE_SUPERADMIN"/g /etc/$OE_USER/$OE_CONFIG.conf | |
sed -i s/"db_host = .*"/"db_host = $DB_HOST"/g /etc/$OE_USER/$OE_CONFIG.conf | |
sed -i s/"db_port = .*"/"db_port = $DB_PORT"/g /etc/$OE_USER/$OE_CONFIG.conf | |
sed -i s/"db_user = .*"/"db_user = $DB_USER"/g /etc/$OE_USER/$OE_CONFIG.conf | |
sed -i s/"db_password = .*"/"db_password = $DB_PWD"/g /etc/$OE_USER/$OE_CONFIG.conf | |
sed -i s/"addons_path = .*"/"addons_path = \/$OE_PARENT\/$OE_USER\/addons,\/$OE_PARENT\/$OE_USER\/custom-addons"/g /etc/$OE_USER/$OE_CONFIG.conf | |
su root -c "echo 'log_level = $LOG_LEVEL' >> /etc/$OE_USER/$OE_CONFIG.conf" | |
su root -c "echo 'logfile = /var/log/$OE_USER/$OE_CONFIG.log' >> /etc/$OE_USER/$OE_CONFIG.conf" | |
echo -e "\n—- Create startup file —-" | |
su root -c "echo '#!/bin/sh' >> $OE_HOME/start.sh" | |
su root -c "echo 'sudo -u $OE_USER $OE_HOME/openerp-server –config=/etc/$OE_USER/$OE_CONFIG.conf' >> $OE_HOME/start.sh" | |
chmod 755 $OE_HOME/start.sh | |
#————————————————– | |
# Adding ODOO as a daemon (initscript) | |
#————————————————– | |
echo -e "\n—- Create init file —-" | |
echo '#!/bin/sh' >> ~/$OE_CONFIG | |
echo '### BEGIN INIT INFO' >> ~/$OE_CONFIG | |
echo '# Provides: $OE_CONFIG' >> ~/$OE_CONFIG | |
echo '# Required-Start: $remote_fs $syslog' >> ~/$OE_CONFIG | |
echo '# Required-Stop: $remote_fs $syslog' >> ~/$OE_CONFIG | |
echo '# Should-Start: $network' >> ~/$OE_CONFIG | |
echo '# Should-Stop: $network' >> ~/$OE_CONFIG | |
echo '# Default-Start: 2 3 4 5' >> ~/$OE_CONFIG | |
echo '# Default-Stop: 0 1 6' >> ~/$OE_CONFIG | |
echo '# Short-Description: Enterprise Business Applications' >> ~/$OE_CONFIG | |
echo '# Description: ODOO Business Applications' >> ~/$OE_CONFIG | |
echo '### END INIT INFO' >> ~/$OE_CONFIG | |
echo 'PATH=/usr/local/bin:/bin:/sbin:/usr/bin' >> ~/$OE_CONFIG | |
echo "DAEMON=$OE_HOME/openerp-server" >> ~/$OE_CONFIG | |
echo "NAME=$OE_CONFIG" >> ~/$OE_CONFIG | |
echo "DESC=$OE_CONFIG" >> ~/$OE_CONFIG | |
echo " >> ~/$OE_CONFIG | |
echo '# Specify the user name (Default: odoo).' >> ~/$OE_CONFIG | |
echo "USER=$OE_USER" >> ~/$OE_CONFIG | |
echo " >> ~/$OE_CONFIG | |
echo '# Specify an alternate config file (Default: /etc/openerp-server.conf).' >> ~/$OE_CONFIG | |
echo "CONFIGFILE=\"/etc/$OE_USER/$OE_CONFIG.conf\"" >> ~/$OE_CONFIG | |
echo " >> ~/$OE_CONFIG | |
echo '# pidfile' >> ~/$OE_CONFIG | |
echo 'PIDFILE=/var/run/$NAME.pid' >> ~/$OE_CONFIG | |
echo " >> ~/$OE_CONFIG | |
echo '# Additional options that are passed to the Daemon.' >> ~/$OE_CONFIG | |
echo 'DAEMON_OPTS="-c $CONFIGFILE"' >> ~/$OE_CONFIG | |
echo '[ -x $DAEMON ] || exit 0' >> ~/$OE_CONFIG | |
echo '[ -f $CONFIGFILE ] || exit 0' >> ~/$OE_CONFIG | |
echo 'checkpid() {' >> ~/$OE_CONFIG | |
echo '[ -f $PIDFILE ] || return 1' >> ~/$OE_CONFIG | |
echo 'pid=`cat $PIDFILE`' >> ~/$OE_CONFIG | |
echo '[ -d /proc/$pid ] && return 0' >> ~/$OE_CONFIG | |
echo 'return 1' >> ~/$OE_CONFIG | |
echo '}' >> ~/$OE_CONFIG | |
echo " >> ~/$OE_CONFIG | |
echo 'case "${1}" in' >> ~/$OE_CONFIG | |
echo 'start)' >> ~/$OE_CONFIG | |
echo 'echo -n "Starting ${DESC}: "' >> ~/$OE_CONFIG | |
echo 'start-stop-daemon –start –quiet –pidfile ${PIDFILE} \' >> ~/$OE_CONFIG | |
echo '–chuid ${USER} –background –make-pidfile \' >> ~/$OE_CONFIG | |
echo '–exec ${DAEMON} — ${DAEMON_OPTS}' >> ~/$OE_CONFIG | |
echo 'echo "${NAME}."' >> ~/$OE_CONFIG | |
echo ';;' >> ~/$OE_CONFIG | |
echo " >> ~/$OE_CONFIG | |
echo 'stop)' >> ~/$OE_CONFIG | |
echo 'echo -n "Stopping ${DESC}: "' >> ~/$OE_CONFIG | |
echo 'start-stop-daemon –stop –quiet –pidfile ${PIDFILE} \' >> ~/$OE_CONFIG | |
echo '–oknodo' >> ~/$OE_CONFIG | |
echo 'echo "${NAME}."' >> ~/$OE_CONFIG | |
echo ';;' >> ~/$OE_CONFIG | |
echo " >> ~/$OE_CONFIG | |
echo 'restart|force-reload)' >> ~/$OE_CONFIG | |
echo 'echo -n "Restarting ${DESC}: "' >> ~/$OE_CONFIG | |
echo 'start-stop-daemon –stop –quiet –pidfile ${PIDFILE} \' >> ~/$OE_CONFIG | |
echo '–oknodo' >> ~/$OE_CONFIG | |
echo 'sleep 1' >> ~/$OE_CONFIG | |
echo 'start-stop-daemon –start –quiet –pidfile ${PIDFILE} \' >> ~/$OE_CONFIG | |
echo '–chuid ${USER} –background –make-pidfile \' >> ~/$OE_CONFIG | |
echo '–exec ${DAEMON} — ${DAEMON_OPTS}' >> ~/$OE_CONFIG | |
echo 'echo "${NAME}."' >> ~/$OE_CONFIG | |
echo ';;' >> ~/$OE_CONFIG | |
echo " >> ~/$OE_CONFIG | |
echo '*)' >> ~/$OE_CONFIG | |
echo 'N=/etc/init.d/$OE_USER/${NAME}' >> ~/$OE_CONFIG | |
echo 'echo "Usage: ${NAME} {start|stop|restart|force-reload}" >&2' >> ~/$OE_CONFIG | |
echo 'exit 1' >> ~/$OE_CONFIG | |
echo ';;' >> ~/$OE_CONFIG | |
echo " >> ~/$OE_CONFIG | |
echo 'esac' >> ~/$OE_CONFIG | |
echo 'exit 0' >> ~/$OE_CONFIG | |
echo -e "\n— Create security init file and move to init.d folder —-" | |
mv ~/$OE_CONFIG /etc/init.d/$OE_CONFIG | |
chmod 755 /etc/init.d/$OE_CONFIG | |
chown root: /etc/init.d/$OE_CONFIG | |
echo -e "\n—- Start ODOO on Startup —-" | |
update-rc.d $OE_CONFIG defaults | |
echo "Done! The ODOO server can be started with /etc/init.d/$OE_CONFIG" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment