Instalación de OpenERP Server 6.1 en Ubuntu 12.0.4
Descripción: en este artículo vamos a describir los pasos a realizar para la configuración básica de la contabilidad española en OpenERP 6.1
Requisitos previos: Tener Instalado Ubuntu server 12.0.4
Introducción
Antes de nada comentar que puede instalar la versión 6.1 en Ubuntu simplemente descargando el paquete “.deb” y ejecutándolo. Pero eso no da el suficiente control sobre donde se instalan las cosas y se restringe la flexibilidad de modificar y personalizar el proceso de instalación por lo cual es preferible de forma manual...
Paso 1. Preparando el servidor
Partimos de una instalación mínima de Ubuntu Server 12.0.4.
Después de que el servidor sea reiniciado por primera vez instalamos el paquete openssh-server , para conectar de forma remota al server, y el paquete denyhosts para añadir protección ante ataques.
sudo apt-get install openssh-server denyhosts
Ahora asegurémonos de que disponemos de las últimas actualizaciones del sistema:
sudo apt-get update
sudo apt-get dist-upgrade
Llegado aquí es una buena idea reiniciar nuestro servidor y asegurarnos de que todo inicia correctamente y podemos acceder vía ssh. ( para acceder vía SSH yo recomiendo WindSCP Putty ).
Si no encontramos problemas, estamos preparados para llevar acabo la instalación de OpenERP 6.1.
Paso 2. Creando el usuario que será propietario de OpenERP y llevará a cabo la ejecución de la aplicación
sudo adduser --system --home=/opt/openerp --group openerp
Se trata de un usuario del “sistema”. Es creado para ser propietario de la aplicación y hacerla correr, se presupone que no va a ser un tipo de usuario de una persona física con una sesión de login, etc. En Ubuntu a un usuario del sistema le es asignado un UID por debajo de 1000, no dispone de shell (es actualmente /bin/false) y su login se encuentra deshabilitado. Debemos tener en cuenta que he especificado como “home” el directorio /opt/openerp, y es ahí donde se alojará el código del servidor de OpenERP y se crea automáticamente mediante la ejecución del comando anterior. La ubicación del código del servidor es elección de cada uno, pero tengamos en cuenta que si elegimos otra ubicación hemos de modificar algunas de las instrucciones que se llevan a cabo más adelante en este manual.
Una de las preguntas que me realizaron varias veces en el anterior manual de la versión 6.0 fue como hacer correr la aplicación desde la línea de comandos si éste no dispone de shell. Esto se puede llevar a cabo de una manera muy sencilla:
sudo su - openerp -s /bin/bash
Mediante este comando se logueará en la terminal actual el usuario openerp con privilegios de Superadministrador (el “-” entre su y openerp es correcto) y usará la shell /bin/bash. Tras correr este comando nos encontraremos en el directorio/opt/openerp.
Después de realizar las tareas necesarias podemos salir de la sesión tecleando exit.
Paso 3. Instando y configurando el servidor de bases de datos PostgreSQL
sudo apt-get install postgresql
Configuramos el usuario postgres para OpenERP:
Nos logueamos como usuario postgres para disponer de los privilegios necesarios en postgresql.
sudo su – postgres
Ahora creamos un usuario de bases de datos. Mediante este usuario OpenERP podrá conectar con PostgreSQL y dispondrá de privilegios para crear y borrar bases de datos. Debemos recordar la contraseña que elijamos para nuestro usuario ya que será necesaria más adelante.
createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt openerp
Enter password for new role: ********
Enter it again: ********
Finalmente saldremos de la sesión del usuario postgres mediante el siguiente comando:
exit
Paso 4. Instalando en el servidor las librerías python necesarias reporting. Have added python-simplejson to the package list.
sudo apt-get install python-dateutil python-feedparser python-gdata \
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
Debido a mi experiencia puedo decir que en Ubuntu 10.04 el paquete python-werkzeug es demasiado antiguo y esto puede desembocar en que el servidor no se inicie correctamente. Si estamos relizando la instalación en una versión posterior de Ubuntu posiblemente esté todo OK, pero en el caso contrario podemos realizar lo siguiente.
He visto necesario instalar una versión más reciente de Werkzeug usando la librería PIP para gestión de paquetes python. La herramienta PIP puede ser instalado de la siguiente forma:
sudo apt-get install python-pip
Desinstalamos la versión de Werkzeug suministrada por Ubuntu:
sudo apt-get remove python-werkzeug
Instalamos la versión más reciente:
sudo pip install werkzeug
Una vez realizado esto tenemos satisfechas todas las dependencias para OpenERP 6.1 , incluso las necesarias para la nueva interfaz web.
Paso 5. Instalando el servidor de OpenERP
Yo tiendo a usar el comando wget para este tipo de cosas y descargar archivos a mi directorio home.
Asegurémonos de que disponemos de la última versión de la aplicación. En el momento de la realización de este artículo la versión es la 6.1-1, cogemos los enlaces de descarga de su pagína de descargas.
Para continuar con la instalación nos posicionamos en el directorio /opt/openerp/
cd /opt/openerp
y
sudo wget http://nightly.openerp.com/6.1/releases/openerp-6.1-1.tar.gz
extraemos el archivo tar.gz .
sudo tar xvf openerp-6.1-1.tar.gz
Lo siguiente es cambiar el propietario de todos los archivos poniendo a openerp como usuario y grupo.
sudo chown -R openerp: *
Y finalmente, lo que hecho es copiar el directorio a otro con un nombre más simple para que no sea necesario estar editando constantemente los scripts de arranque y los archivos de configuración (haciendo uso de una gran imaginación lo he llamado server). Comencé usando enlaces simbólicos, pero me encontré con que al actualizar tiene más sentido para mí mantener sólo una copia de los archivos en un mismo lugar y sobreescribir los cambios. De este modo podemos mantener todo lo necesario como módulos, informes, etc... en el lugar correcto.
sudo cp -a openerp-6.1-1 server
Por ejemplo, pronto tendremos la versión de OpenERP 6.1-2, podemos extraer los archivos en /opt/openerp/ como hemos realizado arriba. Podemos realizar cualquier prueba que necesitemos, luego repetimos el comando de copia para sobreescribir los modulos necesarios, informes, etc... Una vez satisfecha la actualización si todo es estable podemos proceder al borrado de los antiguos directorios de la versión 6.1-1.
El servidor de OpenERP ha sido instalado. Los últimos pasos que nos quedan para que el sistema esté configurado al 100% son crear un archivo de configuración y un script de arranque para que OpenERP incie y paré el servicio junto con el sistema operativo.
Paso 6. Configurando OpenERP
El archivo de configuración por defecto del servidor (en /opt/openerp/server/install/) con unos pequeños cambios funciona correctamente, así que simplemente vamos a copiar el archivo donde sea necesario y cambiar el propietario y los permisos:
sudo cp /opt/openerp/server/install/openerp-server.conf /etc/
sudo chown openerp: /etc/openerp-server.conf
sudo chmod 640 /etc/openerp-server.conf
Los comandos anteriores hacen que el archivo sea propiedad del usuario openerp y escribible por él y solamente de lectura para openerp y root.
Para iniciar el servidor de OpenERP, debemos hacer unos cambios en el archivo de configuración.
Si vamos a la parte de arriba del archivo cambiamos la linea db_password = Falsepor la misma contraseña que hemos creado en el paso 3. Cada cual puede usar el editor de textos que prefiera, yo tiendo a usar nano por ejemplo.
sudo nano /etc/openerp-server.conf
Otra linea que también es recomendable cambiar dentro del archivo de configuración es la que hace referencia al archivo log :
logfile = /var/log/openerp/openerp-server.log
Una vez terminamos de editar el archivo y lo guardamos, y creamos el directorio donde se guardaran los logs
sudo mkdir /var/log/openerp
sudo chown openerp:root /var/log/openerp
y ya podemos inciar el servidor de OpenERP para confirmar que todo funciona correctamente.
sudo su - openerp -s /bin/bash
/opt/openerp/server/openerp-server -c /etc/openerp-server.conf
Para comprobar que funciona correctamente debemos comprobamos el log, para esto hacemos ( en una nueva consola )
sudo tail -f /var/log/openerp/openerp-server.log
debe mostrar algo asi:
2013-10-11 18:25:49,807 6963 INFO ? openerp: OpenERP version 6.1-1
2013-10-11 18:25:49,808 6963 INFO ? openerp: addons paths: /opt/openerp/server/openerp/addons
2013-10-11 18:25:49,808 6963 INFO ? openerp: database hostname: localhost
2013-10-11 18:25:49,808 6963 INFO ? openerp: database port: 5432
2013-10-11 18:25:49,808 6963 INFO ? openerp: database user: openerp
2013-10-11 18:25:49,808 6963 INFO ? openerp.service.netrpc_server: starting NET-RPC service on 0.0.0.0:8070
2013-10-11 18:25:49,809 6963 INFO ? openerp.netsvc: Starting 1 services
2013-10-11 18:25:49,969 6963 INFO ? openerp.addons.web: embedded mode
2013-10-11 18:25:49,970 6963 INFO ? openerp.wsgi.core: HTTP service (werkzeug) running on 0.0.0.0:8069
2013-10-11 18:25:50,551 6963 INFO ? openerp: OpenERP server is running, waiting for connections...
Paso 7. Instalando el script de inicio
Como último paso necesitamos instalar un script de inicio el cual será usado para que OpenERP se inicie con el servidor y se apague junto a él corriendo la aplicación además con el usuario correcto. Hay un script que podemos usar en /opt/openerp/server/install/openerp-server.initpero este script necesitará unas pequeñas modificaciones para trabajar de la manera que hemos descrito anteriormente. Asiq ue usaremos este que ya está modificado:
#!/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/openerp-server 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
|
creatmos el archivo de inicio en blanco:
sudo touch /etc/init.d/openerp-server
Y pegamos el contenido anterior
Además de colocarlo en el lugar correcto tenemos que hacerlo ejecutable y poner de propietario a root:
sudo chmod 755 /etc/init.d/openerp-server
sudo chown root: /etc/init.d/openerp-server
Paso 8. Probando el servidor
Para iniciar el servidor de openerp escribimos en una terminal:
sudo /etc/init.d/openerp-server start
Ahora deberiamos ver la salida del log y ver que el servidor ha iniciado correctamente.
less /var/log/openerp/openerp-server.log
Si experimentamos algún problema al iniciar el servidor debemos volver atrás y realizar las comprobaciones pertinentes.
Si el archivo log parece OK, pondremos en nuestro navegador el dominio o la IP de nuestro servidor de OpenERP (o localhost si nos encontramos en la misma máquina) y usaremos el puerto 8069.
La URL quedaría algo como esto:
http://IP_or_domain.com:8069
Y deberiamos ver una ventana como esta:
Ventana de Login de OpenERP 6.1
Llegados a este punto es recomendable es cambiar el password de super administrador.
Vamos a “Manage Databases” (un link que hay debajo del recuadro de login). Después a Password ( en la izquierda)
Y cambiamos la contraseña (Por defecto la contraseña es “admin
La contraseña se guarda como texto plano en el archivo de configuración en /etc/openerp-server.conf; Cuando cambiemos y guardemos el nuevo password el archivo /etc/openerp-server.conf será reescrito y pasará a tener más opciones..
Ahora es momento de comprobar que el servidor de OpenERP también se detiene correctamente:
sudo /etc/init.d/openerp-server stop
Asegurémonos de que se ha parado comprobando el archivo log o mirando la lista de procesos python activos en el servidor.
Paso 9. Automatizando el inicio y apagado de OpenERP
Por último, si todo funciona correctamente, debemos crear el script para que OpenERP se inicie y se pare junto a Ubuntu Server.
Para esto escribimos en la terminal:
sudo update-rc.d openerp-server defaults
Ya podemos reiniciar el servidor. OpenERP debería estar en funcionamiento tras iniciar sesión en el servidor.
Para comprobar que realmente está funcionando escribimos:
ps aux | grep openerp
y deberiamos ver algo parecido a:
openerp 1491 0.1 10.6 207132 53596 ? Sl 22:23 0:02 python /opt/openerp/server/openerp-server -c /etc/openerp-server.conf
Si aparece algo así en nuestro terminal el servidor está corriendo.
También podemos comprobar el archivo del log o conectarnos desde el navegador.