From 502ffbd5e2364924bfad7cf800496b9680a69f9d Mon Sep 17 00:00:00 2001 From: "Martin H. J. Bramwell" Date: Wed, 4 Jun 2014 09:31:22 -0400 Subject: [PATCH 1/5] Not yet a working script! So far, various minor changes to : - call apt-get less often - make calls to GitHub idempotent - make mkdir calls idempotent - fix missing quote - remove superfluous whitespace modified: odoo-saas4/ubuntu-14-04/odoo_install.sh --- odoo-saas4/ubuntu-14-04/odoo_install.sh | 96 ++++++++++++++++++++----- 1 file changed, 78 insertions(+), 18 deletions(-) mode change 100644 => 100755 odoo-saas4/ubuntu-14-04/odoo_install.sh diff --git a/odoo-saas4/ubuntu-14-04/odoo_install.sh b/odoo-saas4/ubuntu-14-04/odoo_install.sh old mode 100644 new mode 100755 index b98ad60..76cb302 --- a/odoo-saas4/ubuntu-14-04/odoo_install.sh +++ b/odoo-saas4/ubuntu-14-04/odoo_install.sh @@ -3,7 +3,7 @@ # Script for Installation: ODOO Saas4/Trunk server on Ubuntu 14.04 LTS # Author: André Schenkels, ICTSTUDIO 2014 #------------------------------------------------------------------------------- -# +# # This script will install ODOO Server on # clean Ubuntu 14.04 Server #------------------------------------------------------------------------------- @@ -12,18 +12,59 @@ # odoo-install # # EXAMPLE: -# ./odoo-install +# ./odoo-install # ################################################################################ - +# +# Lazy call for apt updating +# . . . . . . . +function update_apt() { + if [[ -f /tmp/lastApt ]] + then + if [[ $(find "/tmp/lastApt" -mmin +721) ]] + then + echo "Apt lists are stale." + else + echo "Apt lists recently refreshed." + return + fi + else + echo "Apt lists are stale." + fi + sudo apt-get update + sudo apt-get upgrade -y + sudo apt-get dist-upgrade -y + # + touch /tmp/lastApt +} +export -f update_apt +# +# Idempotent call to GitHub +# . . . . . . . +function obtain_source() +{ +pushd $OE_HOME_EXT +if [[ -f $OE_HOME_EXT/odoo.py ]] +then + echo "Pulling . . . " + sudo git pull +else + echo "Cloning . . . " + sudo git clone --branch $OE_VERSION https://www.github.com/odoo/odoo +fi +popd +} +# +export -f obtain_source +# ##fixed parameters #openerp OE_USER="odoo" OE_HOME="/opt/$OE_USER" OE_HOME_EXT="/opt/$OE_USER/$OE_USER-server" -#Enter version for checkout "7.0" for version 7.0, "saas-4 and "master" for trunk -OE_VERSION="saas-4" +#Enter version for checkout "7.0" for version 7.0, "saas-4" and "master" for trunk +OE_VERSION="master" #set the superadmin password OE_SUPERADMIN="superadminpassword" @@ -32,16 +73,15 @@ OE_CONFIG="$OE_USER-server" #-------------------------------------------------- # Update Server #-------------------------------------------------- -echo -e "\n---- Update Server ----" -sudo apt-get update -sudo apt-get upgrade -y +echo -e "\n---- Update apt repos ----" +update_apt #-------------------------------------------------- # Install PostgreSQL Server #-------------------------------------------------- echo -e "\n---- Install PostgreSQL Server ----" sudo apt-get install postgresql -y - + echo -e "\n---- PostgreSQL $PG_VERSION Settings ----" sudo sed -i s/"#listen_addresses = 'localhost'"/"listen_addresses = '*'"/g /etc/postgresql/9.3/main/postgresql.conf @@ -53,29 +93,29 @@ sudo su - postgres -c "createuser -s $OE_USER" 2> /dev/null || true #-------------------------------------------------- echo -e "\n---- Install tool packages ----" sudo apt-get install wget subversion git bzr bzrtools python-pip -y - + echo -e "\n---- Install python packages ----" sudo apt-get install python-dateutil python-feedparser python-ldap python-libxslt1 python-lxml python-mako python-openid python-psycopg2 python-pybabel python-pychart python-pydot python-pyparsing python-reportlab python-simplejson python-tz python-vatnumber python-vobject python-webdav python-werkzeug python-xlwt python-yaml python-zsi python-docutils python-psutil python-mock python-unittest2 python-jinja2 python-pypdf -y - + echo -e "\n---- Install python libraries ----" sudo pip install gdata - + echo -e "\n---- Create ODOO system user ----" sudo adduser --system --quiet --shell=/bin/bash --home=$OE_HOME --gecos 'ODOO' --group $OE_USER echo -e "\n---- Create Log directory ----" -sudo mkdir /var/log/$OE_USER +sudo mkdir -p /var/log/$OE_USER sudo chown $OE_USER:$OE_USER /var/log/$OE_USER #-------------------------------------------------- # Install ODOO #-------------------------------------------------- -echo -e "\n==== Installing ODOO Server ====" -sudo git clone --branch $OE_VERSION https://www.github.com/odoo/odoo $OE_HOME_EXT/ +echo -e "\n==== Getting ODOO Source ====" +obtain_source 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 su $OE_USER -c "mkdir -p $OE_HOME/custom" +sudo su $OE_USER -c "mkdir -p $OE_HOME/custom/addons" echo -e "\n---- Setting permissions on home folder ----" sudo chown -R $OE_USER:$OE_USER $OE_HOME/* @@ -179,6 +219,26 @@ sudo chown root: /etc/init.d/$OE_CONFIG echo -e "* Start ODOO on Startup" sudo update-rc.d $OE_CONFIG defaults - + echo "Done! The ODOO server can be started with /etc/init.d/$OE_CONFIG" +----- + +Not yet a working script! So far, various minor changes to : + - call apt-get less often + - make calls to GitHub idempotent + - make mkdir calls idempotent + - fix missing quote + - remove superfluous whitespace +# Committer: yourself +# +# On branch master +# Your branch is up-to-date with 'origin/master'. +# +# Changes to be committed: +# modified: odoo-saas4/ubuntu-14-04/odoo_install.sh +# + + + + From d4349006623723bb14a5b06ea2feae152460b703 Mon Sep 17 00:00:00 2001 From: Martin 'Hasan' Bramwell Date: Wed, 4 Jun 2014 09:51:42 -0400 Subject: [PATCH 2/5] Not yet a working script! So far, various minor changes to : - call apt-get less often - make calls to GitHub idempotent - make mkdir calls idempotent - fix missing quote - remove superfluous whitespace modified: odoo-saas4/ubuntu-14-04/odoo_install.sh --- odoo-saas4/ubuntu-14-04/odoo_install.sh | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/odoo-saas4/ubuntu-14-04/odoo_install.sh b/odoo-saas4/ubuntu-14-04/odoo_install.sh index 76cb302..83f8a4d 100755 --- a/odoo-saas4/ubuntu-14-04/odoo_install.sh +++ b/odoo-saas4/ubuntu-14-04/odoo_install.sh @@ -64,7 +64,7 @@ OE_HOME="/opt/$OE_USER" OE_HOME_EXT="/opt/$OE_USER/$OE_USER-server" #Enter version for checkout "7.0" for version 7.0, "saas-4" and "master" for trunk -OE_VERSION="master" +OE_VERSION="saas-4" #set the superadmin password OE_SUPERADMIN="superadminpassword" @@ -221,24 +221,3 @@ echo -e "* Start ODOO on Startup" sudo update-rc.d $OE_CONFIG defaults echo "Done! The ODOO server can be started with /etc/init.d/$OE_CONFIG" - ------ - -Not yet a working script! So far, various minor changes to : - - call apt-get less often - - make calls to GitHub idempotent - - make mkdir calls idempotent - - fix missing quote - - remove superfluous whitespace -# Committer: yourself -# -# On branch master -# Your branch is up-to-date with 'origin/master'. -# -# Changes to be committed: -# modified: odoo-saas4/ubuntu-14-04/odoo_install.sh -# - - - - From f228b09b188de56a9fed923bfd93d2580fd8bf90 Mon Sep 17 00:00:00 2001 From: "Martin H. J. Bramwell" Date: Wed, 4 Jun 2014 15:32:37 -0400 Subject: [PATCH 3/5] Simplified generation/patching of files. Create config files using "here doc" rules, instead of patching &/or appending attributes Put complicated command groups into functions for improved readability. Force running script as root and eliminate all dependence on "sudo" modified: odoo-saas4/ubuntu-14-04/odoo_install.sh --- odoo-saas4/ubuntu-14-04/odoo_install.sh | 280 ++++++++++++++---------- 1 file changed, 170 insertions(+), 110 deletions(-) diff --git a/odoo-saas4/ubuntu-14-04/odoo_install.sh b/odoo-saas4/ubuntu-14-04/odoo_install.sh index 83f8a4d..9405905 100755 --- a/odoo-saas4/ubuntu-14-04/odoo_install.sh +++ b/odoo-saas4/ubuntu-14-04/odoo_install.sh @@ -16,6 +16,149 @@ # ################################################################################ # +[[ `id -u` -eq 0 ]] || { echo "Must be root to run script"; exit 1; } +# +# Create Start Up file +# . . . . . . . +function create_init_file() +{ + INIT_FILE=/etc/init.d/$OE_CONFIG + # + cat < ${INIT_FILE} +#!/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/openerp-server +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 +INITFILE +# +echo "Commented out >>>" +: <<'COMMENTEDBLOCK_1' +COMMENTEDBLOCK_1 +echo "End commented section. <<<" + chmod 755 ${INIT_FILE} + chown root: ${INIT_FILE} + echo "" + echo "Init file" + echo "............" + cat ${INIT_FILE} + echo "............" +} +export -f create_init_file +# +# +# Create Server Config file +# . . . . . . . +function create_server_config_file() +{ + cat << CONFIGFILE > /etc/$OE_CONFIG.conf +[options] +; This is the password that allows database operations: +admin_passwd = ${OE_SUPERADMIN} +db_host = False +db_port = False +db_user = ${OE_USER} +db_password = False +logfile = /var/log/$OE_USER/$OE_CONFIG$1.log +addons_path = $OE_HOME_EXT/addons,$OE_HOME/custom/addons +CONFIGFILE + chown $OE_USER:$OE_USER /etc/$OE_CONFIG.conf + chmod 640 /etc/$OE_CONFIG.conf + + echo "" + echo "Server Config file" + echo "............" + cat /etc/$OE_CONFIG.conf + echo "............" +} +export -f create_server_config_file +# +# +# Create Start Up file +# . . . . . . . +function create_startup_file() +{ + cat << STARTUPFILE > $OE_HOME_EXT/start.sh +#!/bin/sh +sudo -u $OE_USER $OE_HOME_EXT/openerp-server --config=/etc/$OE_CONFIG.conf +STARTUPFILE + chmod 755 $OE_HOME_EXT/start.sh + echo "" + echo "Startup file" + echo "............" + cat $OE_HOME_EXT/start.sh + echo "............" +} +export -f create_startup_file +# # Lazy call for apt updating # . . . . . . . function update_apt() { @@ -31,9 +174,9 @@ function update_apt() { else echo "Apt lists are stale." fi - sudo apt-get update - sudo apt-get upgrade -y - sudo apt-get dist-upgrade -y + apt-get update + apt-get upgrade -y + apt-get dist-upgrade -y # touch /tmp/lastApt } @@ -47,10 +190,10 @@ pushd $OE_HOME_EXT if [[ -f $OE_HOME_EXT/odoo.py ]] then echo "Pulling . . . " - sudo git pull + git pull else echo "Cloning . . . " - sudo git clone --branch $OE_VERSION https://www.github.com/odoo/odoo + git clone --branch $OE_VERSION https://www.github.com/odoo/odoo fi popd } @@ -70,6 +213,7 @@ OE_VERSION="saas-4" OE_SUPERADMIN="superadminpassword" OE_CONFIG="$OE_USER-server" + #-------------------------------------------------- # Update Server #-------------------------------------------------- @@ -80,32 +224,32 @@ update_apt # Install PostgreSQL Server #-------------------------------------------------- echo -e "\n---- Install PostgreSQL Server ----" -sudo apt-get install postgresql -y +apt-get install postgresql -y echo -e "\n---- PostgreSQL $PG_VERSION Settings ----" -sudo sed -i s/"#listen_addresses = 'localhost'"/"listen_addresses = '*'"/g /etc/postgresql/9.3/main/postgresql.conf +sed -i s/"#listen_addresses = 'localhost'"/"listen_addresses = '*'"/g /etc/postgresql/9.3/main/postgresql.conf echo -e "\n---- Creating the ODOO PostgreSQL User ----" -sudo su - postgres -c "createuser -s $OE_USER" 2> /dev/null || true +su - postgres -c "createuser -s $OE_USER" 2> /dev/null || true #-------------------------------------------------- # Install Dependencies #-------------------------------------------------- echo -e "\n---- Install tool packages ----" -sudo apt-get install wget subversion git bzr bzrtools python-pip -y +apt-get install wget subversion git bzr bzrtools python-pip -y echo -e "\n---- Install python packages ----" -sudo apt-get install python-dateutil python-feedparser python-ldap python-libxslt1 python-lxml python-mako python-openid python-psycopg2 python-pybabel python-pychart python-pydot python-pyparsing python-reportlab python-simplejson python-tz python-vatnumber python-vobject python-webdav python-werkzeug python-xlwt python-yaml python-zsi python-docutils python-psutil python-mock python-unittest2 python-jinja2 python-pypdf -y +apt-get install python-dateutil python-feedparser python-ldap python-libxslt1 python-lxml python-mako python-openid python-psycopg2 python-pybabel python-pychart python-pydot python-pyparsing python-reportlab python-simplejson python-tz python-vatnumber python-vobject python-webdav python-werkzeug python-xlwt python-yaml python-zsi python-docutils python-psutil python-mock python-unittest2 python-jinja2 python-pypdf -y echo -e "\n---- Install python libraries ----" -sudo pip install gdata +pip install gdata echo -e "\n---- Create ODOO system user ----" -sudo adduser --system --quiet --shell=/bin/bash --home=$OE_HOME --gecos 'ODOO' --group $OE_USER +adduser --system --quiet --shell=/bin/bash --home=$OE_HOME --gecos 'ODOO' --group $OE_USER echo -e "\n---- Create Log directory ----" -sudo mkdir -p /var/log/$OE_USER -sudo chown $OE_USER:$OE_USER /var/log/$OE_USER +mkdir -p /var/log/$OE_USER +chown $OE_USER:$OE_USER /var/log/$OE_USER #-------------------------------------------------- # Install ODOO @@ -114,110 +258,26 @@ echo -e "\n==== Getting ODOO Source ====" obtain_source echo -e "\n---- Create custom module directory ----" -sudo su $OE_USER -c "mkdir -p $OE_HOME/custom" -sudo su $OE_USER -c "mkdir -p $OE_HOME/custom/addons" +su $OE_USER -c "mkdir -p $OE_HOME/custom" +su $OE_USER -c "mkdir -p $OE_HOME/custom/addons" echo -e "\n---- Setting permissions on home folder ----" -sudo chown -R $OE_USER:$OE_USER $OE_HOME/* - -echo -e "* Create server config file" -sudo cp $OE_HOME_EXT/install/openerp-server.conf /etc/$OE_CONFIG.conf -sudo chown $OE_USER:$OE_USER /etc/$OE_CONFIG.conf -sudo chmod 640 /etc/$OE_CONFIG.conf - -echo -e "* Change server config file" -sudo sed -i s/"db_user = .*"/"db_user = $OE_USER"/g /etc/$OE_CONFIG.conf -sudo sed -i s/"; admin_passwd.*"/"admin_passwd = $OE_SUPERADMIN"/g /etc/$OE_CONFIG.conf -sudo su root -c "echo 'logfile = /var/log/$OE_USER/$OE_CONFIG$1.log' >> /etc/$OE_CONFIG.conf" -sudo su root -c "echo 'addons_path=$OE_HOME_EXT/addons,$OE_HOME/custom/addons' >> /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 - +chown -R $OE_USER:$OE_USER $OE_HOME/* +# #-------------------------------------------------- # Adding ODOO as a deamon (initscript) #-------------------------------------------------- echo -e "* 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=/bin:/sbin:/usr/bin' >> ~/$OE_CONFIG -echo "DAEMON=$OE_HOME_EXT/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_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 '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 'N=/etc/init.d/${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 "* 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 +create_init_file + +echo -e "\n* Create server config file" +create_server_config_file + +echo -e "\n* Create startup file" +create_startup_file echo -e "* Start ODOO on Startup" -sudo update-rc.d $OE_CONFIG defaults +update-rc.d $OE_CONFIG defaults echo "Done! The ODOO server can be started with /etc/init.d/$OE_CONFIG" From 43f8b308bad8a20d60ba8821fddf14a6ea4bcb62 Mon Sep 17 00:00:00 2001 From: "Martin H. J. Bramwell" Date: Thu, 5 Jun 2014 07:41:33 -0400 Subject: [PATCH 4/5] [FIX] Permissions on HOME directory Also: - relocate constants to top - detect presence of openerp-server file to distinguish pull vs clone - don't install unused packages (subversion, bzr, etc.) Changes to be committed: modified: odoo-saas4/ubuntu-14-04/odoo_install.sh --- odoo-saas4/ubuntu-14-04/odoo_install.sh | 44 ++++++++++++++----------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/odoo-saas4/ubuntu-14-04/odoo_install.sh b/odoo-saas4/ubuntu-14-04/odoo_install.sh index 9405905..1a7b17f 100755 --- a/odoo-saas4/ubuntu-14-04/odoo_install.sh +++ b/odoo-saas4/ubuntu-14-04/odoo_install.sh @@ -18,6 +18,19 @@ # [[ `id -u` -eq 0 ]] || { echo "Must be root to run script"; exit 1; } # +## Fixed parameters +#Enter version for checkout "7.0" for version 7.0, "saas-4" and "master" for trunk +OE_VERSION="saas-4" +# OE_VERSION="master" +# +OE_USER="odoo" +OE_HOME="/opt/${OE_USER}" +OE_HOME_EXT="/opt/${OE_USER}/${OE_VERSION}" + +#set the superadmin password +OE_SUPERADMIN="superadminpassword" +OE_CONFIG="${OE_USER}-server" + # Create Start Up file # . . . . . . . function create_init_file() @@ -177,6 +190,8 @@ function update_apt() { apt-get update apt-get upgrade -y apt-get dist-upgrade -y + apt-get autoremove -y + apt-get clean -y # touch /tmp/lastApt } @@ -187,7 +202,7 @@ export -f update_apt function obtain_source() { pushd $OE_HOME_EXT -if [[ -f $OE_HOME_EXT/odoo.py ]] +if [[ -f $OE_HOME_EXT/openerp-server ]] then echo "Pulling . . . " git pull @@ -200,20 +215,10 @@ popd # export -f obtain_source # -##fixed parameters -#openerp -OE_USER="odoo" -OE_HOME="/opt/$OE_USER" -OE_HOME_EXT="/opt/$OE_USER/$OE_USER-server" - -#Enter version for checkout "7.0" for version 7.0, "saas-4" and "master" for trunk -OE_VERSION="saas-4" - -#set the superadmin password -OE_SUPERADMIN="superadminpassword" -OE_CONFIG="$OE_USER-server" - - +# +################################################## +## Main Program +# #-------------------------------------------------- # Update Server #-------------------------------------------------- @@ -236,7 +241,7 @@ su - postgres -c "createuser -s $OE_USER" 2> /dev/null || true # Install Dependencies #-------------------------------------------------- echo -e "\n---- Install tool packages ----" -apt-get install wget subversion git bzr bzrtools python-pip -y +apt-get install wget git python-pip -y echo -e "\n---- Install python packages ----" apt-get install python-dateutil python-feedparser python-ldap python-libxslt1 python-lxml python-mako python-openid python-psycopg2 python-pybabel python-pychart python-pydot python-pyparsing python-reportlab python-simplejson python-tz python-vatnumber python-vobject python-webdav python-werkzeug python-xlwt python-yaml python-zsi python-docutils python-psutil python-mock python-unittest2 python-jinja2 python-pypdf -y @@ -255,14 +260,15 @@ chown $OE_USER:$OE_USER /var/log/$OE_USER # Install ODOO #-------------------------------------------------- echo -e "\n==== Getting ODOO Source ====" +mkdir -p $OE_HOME_EXT obtain_source +echo -e "\n---- Setting permissions on home folder ----" +chown -R $OE_USER:$OE_USER $OE_HOME + echo -e "\n---- Create custom module directory ----" su $OE_USER -c "mkdir -p $OE_HOME/custom" su $OE_USER -c "mkdir -p $OE_HOME/custom/addons" - -echo -e "\n---- Setting permissions on home folder ----" -chown -R $OE_USER:$OE_USER $OE_HOME/* # #-------------------------------------------------- # Adding ODOO as a deamon (initscript) From 7607390e66588e65fba6976a6ff8b82642fd8e49 Mon Sep 17 00:00:00 2001 From: "Martin H. J. Bramwell" Date: Thu, 5 Jun 2014 09:55:28 -0400 Subject: [PATCH 5/5] [FIX] use version name as directory so multiple parallel versions can be kept Changes to be committed: modified: odoo-saas4/ubuntu-14-04/odoo_install.sh --- odoo-saas4/ubuntu-14-04/odoo_install.sh | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/odoo-saas4/ubuntu-14-04/odoo_install.sh b/odoo-saas4/ubuntu-14-04/odoo_install.sh index 1a7b17f..532375e 100755 --- a/odoo-saas4/ubuntu-14-04/odoo_install.sh +++ b/odoo-saas4/ubuntu-14-04/odoo_install.sh @@ -201,14 +201,16 @@ export -f update_apt # . . . . . . . function obtain_source() { -pushd $OE_HOME_EXT if [[ -f $OE_HOME_EXT/openerp-server ]] then - echo "Pulling . . . " + echo "Pulling . . . $OE_HOME_EXT" + pushd $OE_HOME_EXT git pull else - echo "Cloning . . . " + pushd $OE_HOME + echo "Cloning . . . $OE_HOME_EXT $OE_HOME" git clone --branch $OE_VERSION https://www.github.com/odoo/odoo + mv odoo $OE_VERSION fi popd } @@ -260,7 +262,7 @@ chown $OE_USER:$OE_USER /var/log/$OE_USER # Install ODOO #-------------------------------------------------- echo -e "\n==== Getting ODOO Source ====" -mkdir -p $OE_HOME_EXT +mkdir -p $OE_HOME obtain_source echo -e "\n---- Setting permissions on home folder ----"