jueves, 7 de junio de 2012

Ubuntu instalador de OpenERP 6.0.4 de un golpe

Simplificando las tareas de HowtoForge para la instalación de OpenERP 6.0.4 he creado un script que en dos simples pasos se instala todo.
Inicialmente hay que crear 3 ficheros aquí os dejo el contenido de los ficheros:
Código del fichero openerp-server este contiene el código que se va a usar para iniciar el servicio automáticamente
#!/bin/sh

### BEGIN INIT INFO
# Provides:             openerp-server
# 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 Resource Management software
# Description:          Open ERP is a complete ERP and CRM software.
### END INIT INFO

PATH=/bin:/sbin:/usr/bin
DAEMON=/opt/openerp/server/bin/openerp-server.py
NAME=openerp-server
DESC=openerp-server

# Specify the user name (Default: openerp).
USER=openerp

# Specify an alternate config file (Default: /etc/openerp-server.conf).
CONFIGFILE="/etc/openerp-server.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


Código del fichero openerp-web este contiene el código que se va a usar para iniciar el servicio web automáticamente.


### BEGIN INIT INFO
# Provides:             openerp-web
# 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:    OpenERP Web - the Web Client of the OpenERP
# Description:          Open ERP is a complete ERP and CRM software.
### END INIT INFO

PATH="/sbin:/bin:/usr/sbin:/usr/bin"
DAEMON="/opt/openerp/web/openerp-web.py"
NAME="openerp-web"
DESC="openerp-web"

# Specify the user name (Default: openerp).
USER=openerp

# Specify an alternate config file (Default: /etc/openerp-web.conf).
CONFIGFILE="/etc/openerp-web.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

Por último este es el fichero instalador.sh es la base de todo con el siguiente código procederemos a instalar el servidor.

if [ $1 == 2 ]; then
 sudo apt-get install python python-psycopg2 python-reportlab \
 python-egenix-mxdatetime python-tz python-pychart python-mako \
 python-pydot python-lxml python-vobject python-yaml python-dateutil \
 python-pychart python-pydot python-webdav
 sudo apt-get install python-cherrypy3 python-formencode python-pybabel \
 python-simplejson python-pyparsing
 wget http://www.openerp.com/download/stable/source/openerp-server-6.0.4.tar.gz
 wget http://www.openerp.com/download/stable/source/openerp-web-6.0.4.tar.gz
 cd /opt/openerp
 sudo tar xvf ~/openerp-server-6.0.4.tar.gz
 sudo tar xvf ~/openerp-web-6.0.4.tar.gz
 sudo chown -R openerp: *
 sudo cp -a openerp-server-6.0.4 server
 sudo cp -a openerp-web-6.0.4 web
 sudo cp /opt/openerp/server/doc/openerp-server.conf /etc/
 sudo chown openerp:root /etc/openerp-server.conf
 sudo chmod 640 /etc/openerp-server.conf
 #configuramos que se inicie el servidor al arranque
 sudo cp openerp-server /etc/init.d/openerp-server
 sudo chmod 755 /etc/init.d/openerp-server
 sudo chown root: /etc/init.d/openerp-server
 sudo mkdir /var/log/openerp
 sudo chown openerp:root /var/log/openerp
 sudo update-rc.d openerp-server defaults
 #configuramos que se inicie el servicio web al arranque
 sudo cp /opt/openerp/web/doc/openerp-web.cfg /etc/openerp-web.conf
 sudo chown openerp:root /etc/openerp-web.conf
 sudo chmod 640 /etc/openerp-web.conf
 sudo cp openerp-web /etc/init.d/openerp-web
 sudo chmod 755 /etc/init.d/openerp-web
 sudo chown root: /etc/init.d/openerp-web
 sudo update-rc.d openerp-web defaults
else
 sudo apt-get install openssh-server denyhosts
 sudo apt-get update
 sudo apt-get dist-upgrade
 sudo adduser --system --home=/opt/openerp --group openerp
 sudo apt-get install postgresql
 sudo su - postgres
 createuser --createdb --username postgres --no-createrole --pwprompt openerp
 echo "Ahora ejecuta la segunda parte del programa primero escribe exit y despues ./instalador.sh 2"
fi

#fuente http://www.howtoforge.com/how-to-install-openerp-6-on-ubuntu-10.04-lts-server
 
Después de crear los tres ficheros openerp-server, openerp-web y instalador.sh los tenemos que alojar en la misma carpeta de nuestro servidor Ubuntu. Para comenzar con la instalación ejecutamos:

sudo chmod 777 instalador.sh
sudo chmod 777 openerp-web
sudo chmod 777 openerp-servidor
#y comenzamos la instalación ejecutando
./instalador.sh

En principio el instalador.sh instalará los paquetes iniciales para preparar el usuario postgresql y openerp. Una vez terminado tenemos que ejecutar exit y nos pedirá introducir la clave del usuario postgres. Es muy probable que durante este breve proceso necesite confirmación del usuario para instalar los paquetes. Una vez listo y escrito exit volveremos a nuestro usuario inicial y nos aparecerá un mensaje donde nos pide que ejecutemos la segunda parte de la instalación.

./instalador.sh 2

En esta segunda parte se instalaran TODOS los paquetes necesarios. Como he dicho antes es posible que se necesite confirmación del usuario. Después se descarga el instalador OpenERP del server y web. Descomprime los ficheros y los instala en el servidor y los prepara para que al reiniciar el equipo arranquen solos automáticamente. Una vez echo esto si entramos en http://localhost:8069 accederemos a nuestro servidor OpenERP. Lo único que falta es configurar la clave de la BBDD en nuestro servidor.

Y esto es todo espero que os sirva de algo

un saludo