Índice de contenido
Instalación de openERP en Ubuntu 10.10
1Descargar los fuentes
2Instalar dependencias
3Instalación y configuración de Postgresql8.4
4Instalación parte servidor
5Instalación cliente web
6Añadir localización española y nuevos módulos a OpenERP
7Uso de bases de datos creadas anteriormente
Instalación de openERP en Ubuntu 10.10
WARNING:
Backup, copia de seguridad, salvar los datos antes de meteros a cambiar cosas.
No me responsabilizo de tus datos, sślvalos cada x tiempo, es totalmente necesario.
Descargar los fuentes
Repositorios a utilizar:
lp:openobject-server/5.0 El servidor
lp:openobject-addons/5.0 Los addons
lp:openobject-client/5.0 Cliente GTK
lp:openobject-client-web/5.0 Cliente web
lp:openobject-addons/extra-5.0 Extra addons
Los trunk (de la próxima versión, en fase de pruebas y NO estable, no los utilizaremos, pero por si queréis probar):
lp:~openerp/openobject-server/trunk Servidor
lp:~openerp/openobject-client-web/trunk Cliente web
lp:~openerp/openobject-client/trunk Cliente GTK
lp:~openerp/openobject-addons/trunk Addons
lp:~openerp/openobject-addons/trunk-extra-addons Extra addons
La localización española:
lp:openerp-spain
Algunos módulos tienen sus propios repositorios, como ocurre con Poweremail:
lp:poweremail
(Requiere python-django y python-mako, pero ya los he añadido en las dependencias)
Utilizaremos bazar para la descarga de los fuentes, así que lo instalamos:
$ sudo apt-get update
$ sudo apt-get install bzr
Descargamos los fuentes del servidor (lo guarda en el directorio_actual/openerp-server50):
$ bzr branch lp:openobject-server/5.0 openerp-server50
Cliente web:
$ bzr branch lp:openobject-client-web/5.0 cliente-web50
Addons:
$ bzr branch lp:openobject-addons/5.0 addons50
Extra-addons:
$ bzr branch lp:openobject-addons/extra-5.0 extra-addons50
Los módulos de la localización española:
$ bzr branch lp:openerp-spain openerp-spain
Si utilizas en la misma máquina el cliente GTK, puedes también descargarlo:
$ bzr branch lp:openobject-client/5.0 cliente-gtk50
Instalar dependencias
$ sudo apt-get update
$ sudo apt-get install python-lxml python-psycopg2 python-pydot python-reportlab
python-tz python-matplotlib python-pychart python-hippocanvas python-dev build-essential
python-setuptools python-mako python-django
Las 2 últimas dependencias son para poweremail, también para el módulo label, . . . en fin que las meto de antemano.
Instalación y configuración de Postgresql8.4
Lo instalamos y configuramos con el usuario que tengamos creado en la cuenta de usuario de ubuntu.
(Por defecto instalar la versión 8.4 de postgres)
$ sudo apt-get update
$ sudo apt-get install postgresql
Si ya lo teníamos instalado, sólo crearemos el usuario necesario para OpenErp, pero para ello debemos conocer que password tiene el administrador de postgresql8.4
Realmente los clientes que se conectan al servidor, desde otros equipos, no acceden directamente al gestor de bdd.
Sería
openerp-client
<–> openerp-server <–> postgresql
openerp-web
Debemos crear el usuario de la base de datos para OpenERP:
Entro como admin de postgres (es postgres) y creo la bdd, esto me
pedirá la clave del sudo, que es la del primer usuario creado en el sistema,
vamos, la creada en la instalación de Ubuntu 10.10
Crearemos acceso a postgresql de un usuario que ya exista en el sistema, por ejemplo, el mismo creado durante la instalación, aunque la contraseña la pondremos distinta.
$ sudo su – postgres
$ createuser –createdb –username postgres –no-createrole –pwprompt joseba
Enter password for new role: aqui la password para el usuario ‘joseba’ (p.e. de momento la misma)
Enter it again: repetimos
Shall the new role be a superuser? (y/n) N No lo ponemos superuser
Contraseña: esta es la contraseña del usuario postgres, para poder dar de alta al usuario ‘joseba’
Explicación:
–createdb el usuario ‘joseba’ puede crear bases de datos
–username postgres el superusuario ‘postgres’ crea a ‘joseba’
–no-createrole ‘joseba’ no puede crear usuarios
–pwprompt se te pregunta que contraseña asignar a ‘joseba’
Ahora exit del usuario postgres:
$ exit
Por defecto postgresql8.4 sólo permite conectarse a las bases de datos a aquellos usuarios que tienen cuenta en el sistema (ident), así que modificamos /etc/postgresql/8.4/main/pg_hba.conf la opción que permite conectarse a postgresql8.4 y las bases de datos que contiene a todos los usuarios dados de alta en el sistema postgres además de aquellos que no tienen cuenta del sistema linux. (Pero si tienen cuenta creada en postgresql8.4)
$ sudo nano /etc/postgresql/8.4/main/pg_hba.conf
Y modificar:
lo local all all ident
Por:
local all all md5
Ahora reiniciamos el servidor:
$ sudo /etc/init.d/postgresql-8.4 restart
Aquí ya puedes saltar al punto siguiente, lo que sigue es para salvar / restaurar bases de datos a través de los clientes de openerp (web o GTK)
Si además quiero poder salvar / restaurar las bases de datos desde los clientes openerp es necesario:
Cómo el sistema de backup de los clientes openerp no admiten la autenticación md5, podemos (aunque rebajaría la seguridad del servidor postgresql bastante) cambiar en el pg_hba.conf la línea
$ sudo nano /etc/postgresql/8.4/main/pg_hba.conf
Cambio:
host all all 127.0.0.1/32 md5
Por:
host all all 127.0.0.1/32 trust
Cómo es inseguro, cambialo sólo para pruebas o cuando lo necesites.
Lo mejor es manejar las bases de datos con pg_dump y pg_restore en el lado del servidor.
Instalación parte servidor
$ cd openerp-server50/
$ sudo ./setup.py install
Esto me instala el servidor de openerp en el directorio:
/usr/local/lib/python2.6/dist-packages/openerp-server/
Y el enlace al ejecutable en:
/usr/local/bin/openerp-server
Una vez instalado el servidor ya lo podemos ejecutar, pero aún no funcionará, debemos:
-
Crear archivo de configuración con los parámetros necesarios para conectar con la base de datos postgresql 8.4 que creamos anteriormente (mejor en el directorio /etc/ )
Además tendré que indicar al ejecutable donde encontrar el archivo de configuración durante la ejecución (parámetro –config=/etc/openerp-server.conf)
-
Establecer el fichero que permite ejecutar automáticamente el servidor openerp con cada reinicio del ordenador (ejecutable en /etc/init.d y los necesarios en los runlevel)
ARCHIVO DE CONFIGURACIÓN /etc/openerp.conf
Nota: Incluyo en el post el archivo de configuración, para que no tengáis que cortar y pegar, que puede ocasionar errores. Sólo bajarlo, modificarlo, y copiarlo a su ubicación correspondiente.
Creo /etc/openerp-server.conf con el siguiente contenido:
(debes ajustar db_user, db_password según lo que tengas puesto en el paso de la configuración de postgres)
Tener en cuenta que el usuario que aquí indicas puede realizar las operaciones normales desde los clientes de openerp, pero no el backup o restauración de bases de datos.
Para esto último se requiere acceso directo desde el cliente al servidor postgresql8.4, y permisos para realizarlo.
## Comienzo del archivo de configuración
[options]
#without_demo = False
netport = 8070
secure = False
demo = {}
#syslog = true
cache_timeout = 100000
port = 8069
smtp_password = False
secure_pkey_file = server.pkey
netinterface =
#log_level = 20
admin_passwd = admin
smtp_port = 25
smtp_server = localhost
price_accuracy = 2
import_partial =
soap = False
#pidfile = true
db_maxconn = 64
reportgz = False
xmlrpc = True
#db_port = False
debug_mode = False
netrpc = True
secure_cert_file = server.cert
#interface =
logfile = /var/log/openerp/openerp-server.log
csv_internal_sep = ,
pg_path = None
translate_modules = [‘all’]
stop_after_init = False
root_path = /usr/local/lib/python2.6/dist-packages/openerp-server
smtp_user = False
db_user = joseba
db_password = joseba
db_name = False
db_host = False
assert_exit_level = 30
email_from = False
addons_path = /usr/local/lib/python2.6/dist-packages/openerp-server/addons
## Fín del archivo de configuración
Como he indicado en el archivo de configuración, en /var/log/openerp/openerp-server.log
se guardarán los logs emitidos por el servidor, pero no antes de que tenga creados esos ficheros y directorio, con los permisos adecuados a mi configuración:
$ sudo mkdir /var/log/openerp
$ sudo touch /var/log/openerp/openerp-server.log
Ahora los permisos para que mi usuario ‘joseba’ pueda escribir en esos directorios / ficheros:
$ sudo chown -R joseba /var/log/openerp
Ahora lo puedo probar ejecutando e indicando el archivo de configuración:
$ openerp-server –config=”/etc/openerp-server.conf”
Si la añado al final & arrancará en background
Comentar que al tener configurado un archivo de log, al ejecutarlo en la consola no nos presentará nada de información, que si estará en /var/log/openerp/openerp-server.conf
SCRIPTS DE INICIO / RUNLEVELS EN /etc/init.d
Nota: Incluyo en el post el archivo de init.d, para que no tengáis que cortar y pegar, que puede ocasionar errores. Sólo bajarlo, modificarlo, y copiarlo a su ubicación correspondiente. Posiblemente también asignarle los permisos de ejecución, cómo dice el mismo tutorial.
El siguiente paso es hacer que el servidor tenga su script de inicio y se inicie con el ordenador.
Para ello necesito crear el script de inicio asi cómo propagarlo en los runlevel:
Para ello creo un archivo /etc/init.d/openerp-server con el siguiente contenido, pero OJO, tienes que cambiar el campo USER= por un usuario que ya
tenga tu sistema, en mi caso el mio mismo, joseba
También vigilar que DAEMON apunte al path correcto de openerp-server, visto anteriormente con whereis. (usr/local/bin/openerp-server)
Ojo a los errores producidos al cortar / pegarPara evitar errores al copiar / pegar con el tema de los formatos y los editores, mejor utilizar el fichero descargado desde alguna web.
## Comienzo script de init.d
#!/bin/sh
### BEGIN INIT INFO
# Provides: openerp-server
# Required-Start: $syslog
# Required-Stop: $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=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/bin/openerp-server
NAME=openerp-server
DESC=openerp-server
USER=joseba
test -x ${DAEMON} || exit 0
set -e
case “${1}” in
start)
echo -n “Starting ${DESC}: “
start-stop-daemon –start –quiet –pidfile /var/run/${NAME}.pid
–chuid ${USER} –background –make-pidfile
–exec ${DAEMON} — –config=/etc/openerp-server.conf
echo “${NAME}.”
;;
stop)
echo -n “Stopping ${DESC}: “
start-stop-daemon –stop –quiet –pidfile /var/run/${NAME}.pid
–oknodo
echo “${NAME}.”
;;
restart|force-reload)
echo -n “Restarting ${DESC}: “
start-stop-daemon –stop –quiet –pidfile /var/run/${NAME}.pid
–oknodo
sleep 1
start-stop-daemon –start –quiet –pidfile /var/run/${NAME}.pid
–chuid ${USER} –background –make-pidfile
–exec ${DAEMON} — –config=/etc/openerp-server.conf
echo “${NAME}.”
;;
restart|force-reload)
echo -n “Restarting ${DESC}: “
start-stop-daemon –stop –quiet –pidfile /var/run/${NAME}.pid
–oknodo
sleep 1
start-stop-daemon –start –quiet –pidfile /var/run/${NAME}.pid
–chuid ${USER} –background –make-pidfile
–exec ${DAEMON} — –config=/etc/openerp-server.conf
echo “${NAME}.”
;;
*)
N=/etc/init.d/${NAME}
echo “Usage: ${NAME} {start|stop|restart|force-reload}” >&2
exit 1
;;
esac
exit 0
## Fin de script
Ok, ahora lo hago ejecutable:
$ sudo chmod +x /etc/init.d/openerp-server
Lo probamos(verifica que lo tuvieras antes parado):
$ sudo /etc/init.d/openerp-server start
Compruebo que está cargado:
$ sudo ps aux | grep openerp-server
joseba 11376 1.5 2.4 36788 12780 ? Sl 20:16 0:00 /usr/bin/python ./openerp-server.py –config=/etc/openerp-server.conf
Y ahora lo pruebo con un cliente, con lo que debería conectar sin problemas, como hasta ahora.
Ya que tenemos el script, lo que nos falta es indicarle a Ubuntu que quiero que arranque con el inicio, y se desconecte al apagar:
$ sudo update-rc.d openerp-server defaults
Reiniciamos el ordenador y lo probamos.
Instalación cliente web
$ cd cliente-web50/lib
$ ./populate.sh
$ cd ..
$ sudo python setup.py install
O bien $ sudo easy_install .
Esto lo instala en /usr/local/bin/openerp-web
Copiamos el archivo de configuración incluido al directorio /etc
$ sudo cp /usr/local/lib/python2.6/dist-packages/openerp_web-5.0.15-py2.6.egg/config/openerp-web.cfg /etc/
(todo en una línea)
Asegurarnos que el archivo de configuración del cliente web tiene los datos correctos de acceso al servidor, descomentando las líneas para guardar los logs del cliente web:
$ sudo nano /etc/openerp-web.cfg
Cambiamos:
# logging
#log.access_file = “/var/log/openerp-web/access.log”
#log.error_file = “/var/log/openerp-web/error.log”
Por (ajústalo a tus necesidades):
# logging
log.access_file = “/var/log/openerp/openerp-web_access.log”
log.error_file = “/var/log/openerp/openerp-web_error.log”
El directorio ya está creado anteriormente, asi que sólo debemos crear los archivos:
$ touch /var/log/openerp/openerp-web_access.log
$ touch /var/log/openerp/openerp-web_error.log
No utilizo el sudo, recordemos que el directorio ya pertenecía al usuario ‘joseba’, que es el mío propio de Ubuntu, con lo que no necesito ser superusuario.
En el comando chown debemos especificar el usuario que ejecutará el cliente-web, especificado anteriomente mediante la clausula USER, y que además debe ser un usuario que exista en el sistema.
Para no tener que ejecutarlo manualmente (salvo para pruebas), ahora debemos copiar su script de arranque en /etc/init.d (también lo provee el mismo cliente):
$ sudo cp /usr/local/lib/python2.6/dist-packages/openerp_web-5.0.15-py2.6.egg/scripts/openerp-web /etc/init.d/
(todo en la misma línea)
Debemos modificar en el script de inicio el parámetro USER por un usuario del sistema que ya exista (el que ejecutará el cliente web), y también modifica el parámetro DAEMON que desde Ubuntu 9.10 cambia el path de instalación:
$ sudo nano /etc/init.d/openerp-web
USER=”joseba”
DAEMON=/usr/local/bin/openerp-web
Lo hacemos ejecutable:
$ sudo chmod +x /etc/init.d/openerp-web
Ahora propagar los scripts por los runlevel para que se inicie al inicio del sistema:
$ sudo update-rc.d openerp-web defaults
Lo arrancamos con (en background):
$ sudo /etc/init.d/openerp-web start
O bien en la consola, para ver la salida:
$ openerp-web
Y nos conectamos desde cualquier navegador web a la ip del servidor http://ip_servidor:8080
(Recuerda que tienen que estar corriendo primero la parte servidor)
Añadir localización española y nuevos módulos a OpenERP
Antes del siguiente punto, que indica cómo utilizar nuestras bases de datos creadas anteriormente o bien en otro OpenERP, indicaré cómo enlazar los nuevos módulos y la localización española al directorio addons del servidor.
Utilizaremos enlaces blandos desde addons en el servidor a las carpetas que creamos en el paso 1, de manera que si en un futuro actualizamos esas carpetas, no será necesario volcarlas de nuevo al servidor, aunque si será necesario y muy importante realizar lo que viene explicado en el paso 7
Paramos openerp-server y el cliente web. Esto dependerá de cómo tengas configurado el sistema, pero algo infalible es hallar el pid del server y matarlo con un kill -9
$ sudo ps aux | grep openerp-server
joseba 13830 1.9 0.3 50868 15376 pts/0 Sl+ 18:00 0:00 /usr/bin/python ./openerp-server.py –config=/etc/openerp-server.conf
joseba 13836 0.0 0.0 4020 764 pts/3 S+ 18:01 0:00 grep openerp-server
$ sudo kill -9 13830
Nos metemos en el directorio addons del servidor openerp:
$ cd /usr/local/lib/python2.6/dist-packages/openerp-server/addons/
Y ahora enlazamos a los directorios del paso 1:
$sudo ln -sf origen destino (-s para enlaces blandos, -f para forzar la copia aunque ya exista)
Así que:
$ sudo ln -sf /home/joseba/src/openerp/addons50/* .
$ sudo ln -sf /home/joseba/src/openerp/extra-addons50/* .
$ sudo ln -sf /home/joseba/src/openerp/openerp-spain/extra_addons/* .
$ sudo ln -sf /home/joseba/src/openerp/openerp-spain/l10n_es/* .
$ sudo ln -sf /home/joseba/src/openerp/openerp-spain/l10n_es_extras/* .
$ sudo ln -sf /home/joseba/src/openerp/openerp-spain/l10n_ca_ES/* .
Ya tenemos supervitaminado el directorio addons, podemos pasar al siguiente paso. (564 módulos me ha dado a mí)
Sólo recuerda en el cliente darle a actualizar los módulos para que aparezcan los nuevos y los modificados.
Uso de bases de datos creadas anteriormente
Para utilizar nuestras bases de datos ya creadas, necesitaremos actualizarlas con los nuevos módulos.
-
Tenemos los módulos enlazados en el directorio addons del servidor
-
Tengo la base de datos (bdd) importada al postgres, bien mediante el asistente del cliente web o bien con pgadmin3 (Depende de con cual realizara anteriormente el backup). Yo realizo las copias mediante PgAdmin3, que sirve para gestionar gráficamente bases de datos postgresql
-
Iniciamos openerp-server con un par de opciones para cada base de datos, –update=all y –datebase=nombre_de_mi_bdd
$ sudo python /usr/local/lib/python2.6/dist-packages/openerp-server/openerp-server.py –config=/etc/openerp-server.conf –update=all –database=malagaTIC
INFO:init:[01]: Assertions report:
[2010-12-29 18:49:48,485][malagaTIC] INFO:init:[02]: Level success failed
[2010-12-29 18:49:48,485][malagaTIC] INFO:init:[03]: error 1 0
[2010-12-29 18:49:48,485][malagaTIC] INFO:init:[04]: total 1 0
Hay un aviso o error, en concreto es que el módulo ‘Poweremail’ no se a podido cargar, y mi bdd si lo utiliza. Lo veo en el log del server:
[2010-12-29 18:49:48,286][malagaTIC] WARNING:init:module poweremail: module not found
El error se debe a que poweremail tiene su propio repositorio, así que lo descargo:
$ bzr branch lp:poweremail otros_modulos/poweremail
Lo enlazo al servidor:
$ sudo ln -sf /home/joseba/src/openerp/otros_modulos/* /usr/local/lib/python2.6/dist- packages/openerp-server/addons/
Paro el servidor y lo arranco de nuevo con la opción del –update y el –database
Y listo, base de datos actualizada con los nuevos módulos.
Es conveniente no dejar ningún ERROR o WARNING sin resolver (mirar los logs)
Ya me contáis como os ha ido.
Un saludo