Instalar y automatizar OpenERP: servidor y cliente web

Objetivo y contexto
Este documento recoge los pasos para instalar los scripts de arranque de OpenERP (ahora conocido como Odoo en versiones posteriores) en sistemas basados en Debian/Ubuntu, probar que el servidor y el cliente web funcionen correctamente y configurarlos para que se inicien y detengan automáticamente con el sistema. Definición breve: init script — script de sistema que inicia y detiene servicios en /etc/init.d/.
Antes de empezar
- Usuario con privilegios sudo.
- Archivos de configuración principales: /etc/openerp-server.conf y /etc/openerp-web.conf.
- Directorio de instalación por defecto mostrado en los scripts: /opt/openerp/.
Paso 7. Instalar el script de arranque del servidor
A continuación está el script utilizado para iniciar y detener el servidor y ejecutar la aplicación con el usuario adecuado. Copia o pega este contenido en un archivo dentro de /etc/init.d/ llamado openerp-server (respeta el contenido tal cual):
#!/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
Una vez guardado en /etc/init.d/openerp-server, marca el archivo como ejecutable y cambia el propietario a root:
sudo chmod 755 /etc/init.d/openerp-server
sudo chown root: /etc/init.d/openerp-server
Crear el directorio de logs y dar permisos para que el usuario openerp pueda escribir en él (según la configuración del archivo de configuración del servidor):
sudo mkdir /var/log/openerp
sudo chown openerp:root /var/log/openerp
Notas importantes:
- No dejes el archivo de configuración con permisos demasiado abiertos: debe quedar accesible solo para root y openerp según el ejemplo posterior.
- Los scripts deben conservar el shebang y las rutas tal como están si tu instalación sigue la misma estructura.
Paso 8. Probar el servidor
Arranca el servidor con:
sudo /etc/init.d/openerp-server start
Después, consulta el fichero de registro para verificar que el proceso ha arrancado correctamente:
less /var/log/openerp/openerp-server.log
Si el servidor no arranca, detente y revisa mensajes de error en el log y permisos de archivos antes de proseguir. No continúes hasta corregir los errores de arranque.
Si abres el cliente GTK y apuntas al servidor verás una pantalla de primer inicio de sesión similar a esta:
OpenERP indica que está aceptando conexiones pero que aún no hay bases de datos configuradas.
Recomiendo cambiar la contraseña superadmin inmediatamente (por defecto es “admin”). Esa cuenta puede crear, respaldar, restaurar y eliminar bases de datos. En el cliente GTK: menú Archivo -> Bases de datos -> Contraseña de administrador.
Observación sobre la configuración: la contraseña superadmin se escribe en texto plano en /etc/openerp-server.conf, por eso es crucial restringir el acceso de ese archivo a root y openerp.
Un comportamiento peculiar: al cambiar la contraseña superadmin desde la interfaz, OpenERP reescribe el archivo de configuración, eliminando comentarios y reordenando las entradas. No es algo que debas modificar a mano tras ese cambio porque la aplicación puede sobrescribirlo.
Para detener el servidor y verificar parada correcta:
sudo /etc/init.d/openerp-server stop
Comprueba el proceso y el log para confirmar que el servicio se ha detenido.
Paso 9. Automatizar arranque y parada del servidor con el sistema
Para registrar el script en los runlevels por defecto en Debian/Ubuntu, ejecuta:
sudo update-rc.d openerp-server defaults
Puedes reiniciar la máquina para comprobar que OpenERP se inicia automáticamente. Para verificar procesos en ejecución usa:
ps aux | grep openerp
Deberías ver una salida similar a esta (ejemplo):
openerp 708 3.8 5.8 181716 29668 ? Sl 21:05 0:00 python /opt/openerp/server/bin/openerp-server.py -c /etc/openerp-server.conf
Comprueba siempre el log además del proceso.
Paso 10. Configurar y automatizar el cliente web
El “web client” es otro servicio que sirve OpenERP vía navegador. Su instalación y automatización repiten los pasos 6–9: crear/configurar su archivo de configuración, instalar el script de arranque, probar y registrar con update-rc.d.
Ejemplo de archivo de configuración por defecto (puede estar en /opt/openerp/web/doc/openerp-web.cfg). Se muestra tal cual y puede necesitar pocos cambios cuando servidor y web client están en la misma máquina:
[global]
server.environment = "development"
# Some server parameters that you may want to tweak
server.socket_host = "0.0.0.0"
server.socket_port = 8080
# Sets the number of threads the server uses
server.thread_pool = 10
tools.sessions.on = True
tools.sessions.persistent = False
# Simple code profiling
server.profile_on = False
server.profile_dir = "profile"
# if this is part of a larger site, you can set the path
# to the TurboGears instance here
#server.webpath = ""
# Set to True if you are deploying your App behind a proxy
# e.g. Apache using mod_proxy
#tools.proxy.on = True
# If your proxy does not add the X-Forwarded-Host header, set
# the following to the *public* host url.
#tools.proxy.base = 'http://mydomain.com'
# logging
#log.access_file = "/var/log/openerp-web/access.log"
log.error_file = "/var/log/openerp/openerp-web-error.log"
log.access_level = "INFO"
log.error_level = "INFO"
# Set to false to disable CSRF checks
tools.csrf.on = True
# replace builtin traceback tools by cgitb
tools.log_tracebacks.on: False
tools.cgitb.on: True
# a default install can probably avoid logging those via cgitb as they're
# available in the server log
tools.cgitb.ignore=(
openobject.errors.Concurrency,
openobject.errors.TinyException)
# OpenERP Server
openerp.server.host = 'localhost'
openerp.server.port = '8070'
openerp.server.protocol = 'socket'
openerp.server.timeout = 450
# Web client settings
[openerp-web]
# filter dblists based on url pattern?
# NONE: No Filter
# EXACT: Exact Hostname
# UNDERSCORE: Hostname_
# BOTH: Exact Hostname or Hostname_
dblist.filter = 'NONE'
# whether to show Databases button on Login screen or not
dbbutton.visible = True
# will be applied on company logo
company.url = ''
Coloca el archivo en /etc/ con nombre openerp-web.conf y ajusta propietario y permisos tal como en el servidor:
sudo chown openerp:root /etc/openerp-web.conf
sudo chmod 640 /etc/openerp-web.conf
Script de arranque del web client (guardar como /etc/init.d/openerp-web):
#!/bin/sh
### 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
Asegúrate de los permisos y arranca el web client:
sudo chmod 755 /etc/init.d/openerp-web
sudo chown root: /etc/init.d/openerp-web
sudo /etc/init.d/openerp-web start
El web client, por defecto, escucha en el puerto 8080. Accede desde un navegador a:
http://:8080
Para detenerlo:
sudo /etc/init.d/openerp-web stop
Y para automatizarlo en el arranque:
sudo update-rc.d openerp-web defaults
Tras un reinicio, tanto el servidor como el cliente web deberían iniciarse automáticamente.
Verificaciones y comandos útiles
- Ver procesos relacionados: ps aux | grep openerp
- Revisar logs: less /var/log/openerp/openerp-server.log y /var/log/openerp/openerp-web-error.log
- Comprobar permisos de configuración: ls -l /etc/openerp*.conf
- Comprobar puertos: ss -tlnp | grep -E “:8069|:8070|:8080”
Caja de datos (factos clave)
- Puerto web por defecto: 8080.
- Puerto de servidor por defecto en el ejemplo: 8070 (con protocolo socket).
- Hilo de servidor por defecto en el ejemplo: 10.
- Timeout por defecto en el ejemplo: 450 segundos.
- Rutas importantes: /opt/openerp/, /etc/openerp-server.conf, /etc/openerp-web.conf, /var/log/openerp/.
Listas de verificación (checklists)
Checklist rápido — Antes de arrancar por primera vez:
- /etc/openerp-server.conf existe y es legible sólo por root/openerp.
- /etc/init.d/openerp-server está en su sitio y es ejecutable por root.
- /var/log/openerp/ existe y pertenece a openerp:root.
- El usuario openerp existe y tiene acceso a /opt/openerp/.
Checklist de producción — Seguridad y operación mínima:
- Cambiar contraseña superadmin distinta a “admin”.
- Revisar permisos del archivo de configuración: chmod 640.
- Limitar acceso SSH y controlar firewall para puertos 8069/8080/8070 según corresponda.
- Implementar copias de seguridad periódicas de las bases de datos.
Checklist para web client:
- /etc/openerp-web.conf presente y con permisos 640.
- /etc/init.d/openerp-web instalado y registrado en update-rc.d.
- Verificar que el proxy (si existe) reenvía cabeceras X-Forwarded-Host si procede.
Solución de problemas común (troubleshooting)
- El servicio no arranca: revisa /var/log/openerp/openerp-server.log por errores de Python o rutas faltantes.
- Permisos denegados al abrir el fichero de configuración: verifica owner y chmod 640.
- El PID file no se crea: el script puede no tener permisos para /var/run/, o el proceso muere al iniciar; arranca en foreground para ver errores.
- Error en el web client al conectar con el servidor: comprueba openerp.server.host y openerp.server.port en /etc/openerp-web.conf.
- Reinicios inesperados: comprueba uso de memoria y logs del sistema (dmesg, /var/log/syslog).
Criterios de aceptación
- El servicio openerp-server se inicia y su proceso aparece en ps.
- Al menos un log (openerp-server.log) muestra mensajes de arranque sin errores críticos.
- El web client responde en http://
:8080 y muestra la pantalla de login. - Los scripts openerp-server y openerp-web están registrados en update-rc.d y se inician tras reinicio.
Roles y responsabilidades (lista breve)
- Administrador del sistema: instalar paquetes base, configurar permisos, registrar scripts en update-rc.d y gestionar firewall.
- Administrador de OpenERP: cambiar contraseña superadmin, crear bases de datos y políticas de backup.
- Desarrollador/Integrador: verificar conectividad entre módulos, ajustar openerp-web.conf y depurar excepciones en los logs.
Mini-metodología de despliegue
- Preparar usuario y directorios (/opt/openerp, /var/log/openerp).
- Copiar archivos de configuración a /etc/ y ajustar permisos.
- Instalar scripts en /etc/init.d/ y probar start/stop en caliente.
- Ver logs y solucionar errores hasta que el servicio esté estable.
- Registrar con update-rc.d y verificar tras reboot.
- Documentar contraseñas y procedimiento de recuperación.
Glosario (una línea por término)
- init script: Script en /etc/init.d/ que controla inicio/parada de servicios en sistemas SysV.
- PID file: Archivo que contiene el identificador de proceso (PID) del servicio en ejecución.
- CSRF: Mecanismo de protección contra solicitudes falsificadas entre sitios.
Resumen final
- Instala los scripts de arranque en /etc/init.d/, ajusta permisos y propietarios.
- Crea y asegura /var/log/openerp para registrar eventos.
- Prueba start/stop y revisa logs antes de automatizar el arranque.
- Registra ambos servicios con update-rc.d para que se inicien automáticamente al arrancar.
Importante: revisa siempre los logs y los permisos antes de poner en producción. Los cambios en la contraseña superadmin afectan al archivo de configuración, que la aplicación puede sobrescribir.
Materiales similares
Instalar Icecast 2.3.3 en CentOS 6.3

Widget de llamada Google Voice para tu web

Ver publicaciones a las que diste Me gusta en Instagram

Mostrar información del sistema en el escritorio (Windows)

Instalar y automatizar OpenERP en Ubuntu
