openerp

Por qué OpenERP – Introducción

Ahora que está de moda eso de ser “emprendedor”, se necesitan aplicaciones o servicios web que nos ayuden a gestionar nuestra empresa y conseguir la organización eficiente del tiempo, marcar y cumplir objetivos, y llevar nuestra contabilidad. Después de valorar las alternativas disponibles, llegamos a la conclusión de que nuestro ganador era OpenERP.

¿Por qué nos decidimos por esta solución? Queríamos un “todo en uno”, una herramienta que cumpliera en todos los aspectos de la gestión. Además era obligatorio la sincronización en todo momento, y que fuese accesible desde cualquier lugar. Nos gustaba la idea de que fuera un servicio web, no una aplicación de escritorio, porque entre otras razones, usamos varios sistemas operativos y además un ordenador puede fallar cuando menos te lo esperas. Por último, que pudiésemos usar nuestro propio servidor y controlar toda nuestra información es un gran plus.

Una vez decidido esto, buscamos alguna guía que nos ayudara en la instalación. Después de bucear por Internet a la caza del manual perfecto durante días, llegamos a la página http://www.theopensourcerer.com/2012/12/how-to-install-openerp-7-0-on-ubuntu-12-04-lts/ (está en inglés). Lo bueno de esta ayuda es que no se limita a mostrarte el funcionamiento del instalador, sino que permite una instalación completamente manual para conseguir adaptarlo completamente a las necesidades de cada uno. Y gracias a esto, pudimos instalarlo en un servidor ‘limpio’ a nuestro antojo, y cuando lo dejamos funcionando instalamos virtualmin, un gestor de servidores como cpanel o zpanel, y conviven perfectamente sin ningún problema, lo que nos ahorra mucho tiempo en el mantenimiento de servidores.

Instalación

descargaropenerp

Lo primero, algunas aclaraciones.
– Puedes instalar un ‘.deb’ directamente en Ubuntu. Si quieres probarlo en tu ordenador o en un servidor, o vas a instalarlo solo, sin nada más en esa máquina, quizá sea tu mejor alternativa.
– Esta guía sigue en su gran parte lo explicado en el how-to de http://www.theopensourcerer.com/2012/12/how-to-install-openerp-7-0-on-ubuntu-12-04-lts/ . Todo el mérito y los créditos son para él. Aquí simplemente la hemos adaptado al español y hemos modificado alguna cosa para afinar la instalación a nuestras necesidades.
– 15 minutos. Son suficientes para hacerlo todo manualmente, y tendrás un sistema a tu gusto y fácilmente actualizable.

Sin más preámbulos, vayamos al meollo.

Instala tu servidor

No hace falta que instales apache, php o bases de datos. Simplemente el sistema básico es suficiente. Lo que sí quieres tener instalado es el paquete openssh-server, para poder acceder por ssh. Además te recomiento denyhosts para bloquear ataques de fuerza bruta. Y, por supuesto, te recomiendo encarecidamente que no uses contraseñas para acceder por terminal o ftp, sino acceso por claves pública-privada, así te cubrirás de la mayoría de ataques a tu servidor. No pretendo agobiarte, si no sabes de lo que hablo prueba a gastar 5 minutos buscando por internet y lo entenderás. No me voy a explayar más, pero seguro que antes o despues tendremos alguna guía de seguridad en la web. Como dato final, el comando para instalar los dos paquetes sería:

sudo apt-get install openssh-server denyhosts

Ahora deberías actualizar tu servidor:

sudo apt-get update
sudo apt-get dist-upgrade

Normalmente no es necesario, pero no está de más que reinicies el servidor, por si hubo alguna actualización del núcleo linux.

Crear el usuario que será dueño y ejecutará la aplicación

sudo adduser –system –home=/opt/openerp –group openerp

Esto no es un usuario corriente, sino “de sistema”. Esto significa que no es un usuario de tipo persona, con login, etc. Por ejemplo, en Ubuntu, no tiene terminal, no puede loguearse y la prioridad de sus tareas es muy baja. Fíjate en que tambien he creado la carpeta ‘home’ que será /opt/openerp , ahí es donde estarán los archivos de OpenERP. Por supuesto, puedes elegir la carpeta que quieras, pero recuerda que si lo haces tendrás que cambiar algunos archivos de configuración e instrucciones más abajo.

Se podrían instalar varias versiones de OpenERP en un mismo servidor. Habría que usar diferentes carpetas, con diferentes usuarios, y distintas bases de datos. Pero en esta guía no lo voy a explicar más a fondo. Necesitaría otro post completo, y no sé si merece la pena.
Un pequeño apunte. Si quisieras utilizar el usuario openerp desde ssh (que recuerdo que es de sistema y no tiene terminal ni login), puedes hacerlo de la siguiente forma:

sudo su – openerp -s /bin/bash

Esto hará que puedas usarlo en la terminal, y estarás situado en su carpeta personal, que es /opt/openerp. Cuando quieras terminar con el usuario, sólo tienes que escribir exit y pulsar enter.

Instalar y configurar el servidor de base de datos PostgreSQL

sudo apt-get install postgresql

Ahora configuraremos el usuario de la base de datos:

Primero nos cambiaremos al usuario postgres para tener los privilegios necesarios para configurar la base de datos.

sudo su – postgres

Ahora toca crear un nuevo usuario de la base de datos. Lo hacemos para que OpenERP tenga acceso para conectarse con PostgreSQL y poder administrar bases de datos. RECUERDA LA CONTRASEÑA; la necesitarás más adelante:

createuser –createdb –username postgres –no-createrole –no-superuser –pwprompt openerp
Enter password for new role: ********
Enter it again: ********

Por último sal de la cuenta de usuario postgres escribiendo exit.

Instalar las librerías necesarias de Python para el servidor

sudo apt-get install python-dateutil python-docutils python-feedparser python-gdata 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

Te recomiendo que lo copies 🙂
Listo. Se terminaron los preparativos. Vamos con lo interesante.

Instala el servidor OpenERP

Vamos a usar wget para copiar el archivo de instalación directamente en nuestra carpeta home. Si no lo conoces, no te preocupes, sigue la guía que es muy fácil.

Hay que recordar que no existe una versión 7.0 estática de OpenERP. Cada noche se actualiza con mejoras y correcciones, así estás seguro de que siempre descargas la versión más actualizada. Ejecuta:

cd /opt/openerp
wget http://nightly.openerp.com/7.0/nightly/src/openerp-7.0-latest.tar.gz

Ahora instalaremos el código:

sudo tar xvf ~/openerp-7.0-latest.tar.gz

Lo siguiente es cambiar el dueño de los archivos que usa OpenERP por el que creamos anteriormente:

sudo chown -R openerp: *

Finalmente, copiaremos todos los archivos a una carpeta con un nombre más fácil de recordar y escribir, para que los archivos de configuración y arranque no necesiten ser modificados cada vez que actualicemos el servidor (le voy a llamar serverserver). Así podemos descargar la actualización y copiarla sobre esta carpeta sin perder nuestras modificaciones.

sudo cp -a openerp-7.0 server

Por ejemplo, si saliese 7.0.1, puedo extraer el archivo comprimido en /opt/openerp/ como antes. Puedo testear lo que necesite, luego repetiré el comando de copia y los archivos modificados se sobrescribirán según sea necesario, y los módulos, plantillas y demás personalizados se mantendrán.

Hasta aquí la instalación. Ahora toca configurarlo

Configurar la aplicación OpenERP

El archivo de configuración que viene por defecto es mínimo, y con un pequeño cambio funcionará perfectamente, así que lo copiaremos a donde debe estar y le cambiaremos 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

Estos comandos hacen que el archivo pertenezca al usuario y grupo openerp y sólo él podrá modificarlo, y sólo openerp y root podrán leerlo.

Para que pueda arrarcar, sólo hay que cambiar una línea en este archivo. Cerca del comienzo del archivo, cambia la línea db_password = False por el valor que elegiste en la configuración de la base de datos PostgreSQL. Usa el editor que quieras. Yo uso nano, por ejemplo:

sudo nano /etc/openerp-server.conf

También añadiremos la ruta para que escriba el log:

logfile = /var/log/openerp/openerp-server.log

Cuando hayas guardado el archivo, prueba si funciona.

sudo su – openerp -s /bin/bash
/opt/openerp/server/openerp-server

Si después de algunas líneas ves que muestra ‘OpenERP is running and waiting for connections’ es que todo funciona. Si por el contrario no es así, revisa los pasos hasta ahora e intenta encontrar el error.

Ahora pulsa CTL+C para detener el servidor y escribe exit para salir de la cuenta de usuario openerp y volver a la nuestra.

Instalando script de arranque

El último paso es instalar un script que se usará para arrancar y detener el servidor automáticamente y además que lo haga con el usuario correcto. El archivo original está en /opt/openerp/server/install/openerp-server.init pero necesita algunas configuraciones para funcionar con los cambios que hemos realizado anteriormente. Aquí esta el enlace para descargarlo ya configurado, aunque lo más fácil es volver a usar wget:

cd /etc/init.d/ && wget http://www.theopensourcerer.com/wp-content/uploads/2012/12/openerp-server

Así se descargará un archivo llamado openerp-server en la carpeta /etc/init.d/ .Cuando ya se encuentre donde debe, hay que hacerlo ejecutable y del usuario root:

sudo chmod 755 /etc/init.d/openerp-server
sudo chown root: /etc/init.d/openerp-server

En la configuración hay una ruta para el archivo log. Necesitamos crear el directorio para que el servidor pueda guardarlo ahí.

sudo mkdir /var/log/openerp
sudo chown openerp:root /var/log/openerp

Probando el servidor

Para iniciar el servidor OpenERP escribe:

sudo /etc/init.d/openerp-server start

Ahora puedes ver el archivo log y leer los mensajes que se escribieron, y si ha arrancado sin problemas.

less /var/log/openerp/openerp-server.log

Si hay algún problema debes revisar esta última parte, ya que si arrancó en el apartado anterior, es un problema con la configuración.

Si funciona, puedes usar un navegador e ir al dominio o IP de tu servidor OpenERP (o localhost si es en la misma máquina) y usar el puerto 8069. Por ejemplo:

http://IP_or_domain.com:8069

¡IMPORTANTE! Ahora debes cambiar la clave de administrador por una fuerte (en el menú password), que por defecto es ‘admin’. Este usuario puede crear, respaldar, restaurar y borrar bases de datos, así que tiene que estar debidamente protegido. La contraseña se guarda como texto normal en el archivo /etc/openerp-server.conf ; por eso hemos restringido su acceso sólo a openerp y root.

También vamos a probar si el servidor se detiene correctamente.

sudo /etc/init.d/openerp-server stop

Comprueba una última vez el archivo log a ver si se detuvo sin problemas, o puedes comprobar los procesos de tu servidor.

Arranque y parada automáticos de OpenERP

Si todo lo anterior parece OK, el último paso es crear el script que iniciará y detendrá OpenERP con el servidor en el que esté instalado. Para hacerlo, escribe

sudo update-rc.d openerp-server defaults

Puedes reiniciar el servidor si lo deseas. OpenERP debería arrancar automáticamente cuando accedas al servidor.

Si quieres cerciorarte, puedes usar el comando

ps aux | grep openerp

que debería mostrar esto

openerp 1491 0.1 10.6 207132 53596 ? Sl 22:23 0:02 python /opt/openerp/server/openerp-server -c /etc/openerp-server.conf

Lo que significa que está funcionando sin problemas. Por supuesto, puedes revisar el archivo log o visitar la página desde el navegador.

Hasta aquí el tutorial. Lo siguiente sería crear una nueva base de datos rellenando los campos requeridos. Cuando se haya inicializado la base de datos, serás redirigido a la pantalla de configuración principal, donde podrás ver el funcionamiento de OpenERP 7.

logo openerp