Hiparco

Recetas y trucos de GNU/Linux e informática en general

Alojado en http://guimi.net

Instalación de OpenERP 6.0.3 en Debian GNU/Linux

Con esta entrada empiezo una pequeña serie sobre la puesta en marcha y disfrute de OpenERP (antes TinyERP), un ERP de software libre, adaptado a la legislación española y muy completo. [Entradas sobre OpenERP].
Estas entradas se han realizado gracias a la colaboración de Servi3, tu experto en OpenERP.

La documentación oficial recomienda realizar una instalación manual sobre GNU/Linux para las instalaciones en producción. Una instalación manual permite un mayor control sobre la misma, controlando qué módulos están disponibles. Aunque mucha gente usa Ubuntu (una versión LTS), yo recomiendo Debian (estable).

En esta entrada explicaré cómo hacer una buena instalación de OpenERP 6.0.3. sobre un Debian 6.0.3 (¡qué coincidencia!). Sirve igual para sus derivados, como Ubuntu, y prácticamente para cualquier GNU/Linux.
El siguiente paso es instalar un cliente de OpenERP en Debian.
Una vez instalado el servidor, desde el cliente no se distingue si el servidor es un GNU/Linux, un Mac, un Windows… así que el resto de entradas sobre OpenERP sirven para cualquier sistema.
Después debemos hacer una configuración inicial de OpenERP.
Con eso ya estaremos listos para Instalar en OpenERP los módulos de la localización española para su uso conforme a la normativa española (valga la redundancia), donde de paso veremos cómo instalar módulos en general en OpenERP.
Para acabar esta serie veremos cómo configurar la localización española de OpenERP y cómo importar/exportar datos en OpenERP.

La instalación automática, para entornos de prueba o incluso para pequeñas organizaciones, tarda medio minuto con el siguiente comando:
# aptitude install openerp-server
Aunque en el caso de Debian estable, instala la versión anterior (5.x).

La mayor parte de esta entrada se debe a esta explicación de the open sourcerer sobre cómo instalar OpenERP 6 en Ubuntu 10.
De hecho ahí llegan un poco más lejos que aquí y también explican cómo instalar el “servidor web” (que en realidad es un cliente web) y cómo usar conexiones SSL. Otro modo de diferente de cifrar la conexión es usar túneles SSH.

PREPARACIÓN DEL SISTEMA

Actualizamos el sistema e instalamos los paquetes base que vamos a necesitar: Bazaar y Python (2.6.6).
# aptitude update && aptitude safe-upgrade
# aptitude install bzr
# aptitude install python python-psycopg2 python-reportlab python-egenix-mxdatetime python-tz python-pychart python-pydot python-lxml python-vobject python-mako python-pydot python-lxml python-vobject python-yaml python-dateutil python-pychart python-webdav

INSTALACIÓN DE POSTGRESQL (8.4)

Instalamos el motor de base de datos postgres (y un cliente gráfico):
# aptitude install postgresql pgadmin3

Generamos una clave para el usuario postgres:
# passwd postgres

Configuramos el servidor para que acepte conexiones de por usuario/clave:
# vi /etc/postgresql/8.4/main/pg_hba.conf

#local   all         all                               ident
local   all         all                               md5

 
Reiniciamos postgres
# /etc/init.d/postgresql restart
Y abrimos sesión como usuario postgres
# su – postgres

Como usuario postgres verificamos la instalación de postgres:
$ psql -l

                               Listado de base de datos
  Nombre   |  Dueño   | Codificación | Collation  |   Ctype    |      Privilegios      
-----------+----------+--------------+------------+------------+-----------------------
 postgres  | postgres | UTF8         | es_ES.utf8 | es_ES.utf8 | 
 template0 | postgres | UTF8         | es_ES.utf8 | es_ES.utf8 | =c/postgres
                                                               : postgres=CTc/postgres
 template1 | postgres | UTF8         | es_ES.utf8 | es_ES.utf8 | =c/postgres
                                                               : postgres=CTc/postgres
(3 filas)

 
Creamos un usuario de PostgreSQL con contraseña para OpenERP
$ createuser –pwprompt

Ingrese el nombre del rol a agregar: openerp
Ingrese la contraseña para el nuevo rol: 
Ingrésela nuevamente: 
¿Será el nuevo rol un superusuario? (s/n) n
¿Debe permitírsele al rol la creación de bases de datos? (s/n) s
¿Debe permitírsele al rol la creación de otros roles? (s/n) n

 
Verificamos que podemos acceder con el usuario accediendo a la BD postgres
(la BD de OpenERP la crearemos después en la instalación de OpenERP).
$ psql -U openerp -d postgres

Contraseña para usuario openerp: 
psql (8.4.9)
Digite «help» para obtener ayuda.

postgres=> \q

 
Cerramos la sesión del usuario postgres
$ exit

A no ser que solo estemos haciendo pruebas, es fundamental hacer copias de seguridad de PostgreSQL.

INSTALACIÓN DE OPENERP-SERVER

Creamos un usuario de sistema para la aplicación.
# adduser –system –home=/opt/openerp –group openerp
El resto de la instalación lo haremos desde el nuevo directorio de OpenERP.
# cd /opt/openerp

Descargamos las fuentes desde http://www.openerp.com/downloads.
# wget http://www.openerp.com/download/stable/source/openerp-server-6.0.3.tar.gz
Descomprimimos los paquetes
# tar xfz openerp-server-6.0.3.tar.gz
Limpiamos
# rm openerp-*gz
Asignamos el usuario y grupo a todas las fuentes
# chown -R openerp:openerp *

Hacemos una copia del directorio. La idea es mantener en /opt/openerp/server” la versión en producción y disponer de copias de las fuentes en directorios separados para las pruebas y desarrollos.
# cp -Rp openerp-server-6.0.3 server

Configuramos el servidor (basta cambiar ‘********’ por las claves que deseemos).
[Fichero de theopensourcerer]
# vi server/doc/openerp-server.conf

[options]
; This is the password that allows database operations
; Will be written to by the server when password is changed
; !! Keep this file secure !!
admin_passwd = ********

root_path = /opt/openerp/server/bin

without_demo = False
verbose = False

; Database settings
db_user = openerp
db_password = ********
; Please uncomment the following line *after* you have created the
; database. It activates the auto module check on startup.
; db_name = False
db_port = False
db_host = False
db_maxconn = 64

; Networking Settings
xmlrpc = True
xmlrpc_interface =
xmlrpc_port = 8069

netrpc = True
netrpc_interface = 
netrpc_port = 8070

; Uncomment these for xml-rpc over SSL
;xmlrpcs = True
;xmlrpcs_interface =
;xmlrpcs_port = 8071
;secure_pkey_file = /etc/ssl/openerp/server.key
;secure_cert_file = /etc/ssl/openerp/server.crt

; Log settings
logfile = /var/log/openerp/openerp-server.log
syslog = False
logrotate = True
log_level = info

; False prevents the client displaying the list of databases
list_db = True
addons_path = /opt/openerp/server/bin/addons
demo = {}
soap = False
reportgz = False
translate_modules = ['all']

; Static http parameters
static_http_enable = False
static_http_document_root = /var/www/html
static_http_url_prefix = /

; Outbound email configuration
;smtp_user = info@example.com
;email_from = "OpenERP Support" 
;smtp_port = 25
;smtp_password = ********
;smtp_ssl = True
;smtp_server = mail.example.com

 
Preparamos el directorio para los logs:
# mkdir /var/log/openerp
# chown openerp:root /var/log/openerp

Copiamos el fichero de configuración al sistema y ajustamos los permisos.
# cp server/doc/openerp-server.conf /etc/
# chown openerp:root /etc/openerp-server.conf
# chmod 640 /etc/openerp-server.conf

Generamos un fichero para iniciar y parar el servidor.
[Fichero de theopensourcerer]
# vi openerp-server

#!/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

 
Preparamos el fichero para que el servidor arranque normalmente.
# cp openerp-server /etc/init.d/
# chmod 755 /etc/init.d/openerp-server
# chown root: /etc/init.d/openerp-server
# update-rc.d openerp-server defaults

Para acabar, iniciamos el sistema:
# /etc/init.d/openerp-server start
Si todo ha ido bien el log nos dirá:
# cat /var/log/openerp/openerp-server.log

[2012-01-13 11:45:55,678][?] INFO:server:OpenERP version - 6.0.3
[2012-01-13 11:45:55,678][?] INFO:server:addons_path - /opt/openerp/server/bin/addons
[2012-01-13 11:45:55,678][?] INFO:server:database hostname - localhost
[2012-01-13 11:45:55,679][?] INFO:server:database port - 5432
[2012-01-13 11:45:55,679][?] INFO:server:database user - openerp
[2012-01-13 11:45:55,679][?] INFO:server:initialising distributed objects services
[2012-01-13 11:45:56,729][?] INFO:web-services:starting HTTP service at 0.0.0.0 port 8069
[2012-01-13 11:45:56,730][?] INFO:web-services:starting HTTPS service at 0.0.0.0 port 8071
[2012-01-13 11:45:56,730][?] INFO:web-services:Registered XML-RPC over HTTP
[2012-01-13 11:45:56,738][?] INFO:web-services:starting NET-RPC service at 0.0.0.0 port 8070
[2012-01-13 11:45:56,738][?] INFO:server:Starting 3 services
[2012-01-13 11:45:56,739][?] INFO:server:OpenERP server is running, waiting for connections...

 
Ahora, como hemos comentado al principio, el siguiente paso es instalar un cliente de OpenERP en Debian.
Después debemos hacer una configuración inicial de OpenERP.
Con eso ya estaremos listos para Instalar en OpenERP los módulos de la localización española para su uso conforme a la normativa española (valga la redundancia), donde de paso veremos cómo instalar módulos en general en OpenERP.
Para acabar esta serie veremos cómo configurar la localización española de OpenERP y cómo importar/exportar datos en OpenERP.

Instalación de OpenERP 6 en Debian GNU/Linux, OpenERP, Debian

  • german comentó:

    Impecable. Bien explicado. Siento no recordar donde, pero en alguno de los comandos falta algún parametro ( se soluciona facilmente gracias a la exlicación previa del efecto esperado del comando).
    Gracias

    2 October 2012 - 12:15
  • Güimi comentó:

    Gracias por tu comentario.
    Es una lástima que no recuerdes el detalle, pero me alegro que lo solucionases :-)

    Saludos

    2 October 2012 - 19:51