Cómo instalar OpenERP 6 en Ubuntu 10.04 LTS Server
Objetivo y alcance
Este tutorial fue originalmente escrito por Alan Lord. Puedes encontrar el tutorial original aquí: http://www.theopensourcerer.com/2011/04/19/how-to-install-openerp-6-on-ubuntu-10-04-lts-server-part-1/ http://www.theopensourcerer.com/2011/04/21/how-to-install-openerp-6-on-ubuntu-10-04-lts-server-part-2-ssl/
Hemos preparado esta versión en español manteniendo la intención técnica original y añadiendo buenas prácticas y pasos adicionales para producción. Está pensada para administradores de sistemas y técnicos que despliegan OpenERP (ahora Odoo en versiones posteriores) en servidores expuestos a Internet.
Importante: Ubuntu 10.04 LTS es una versión antigua; si es posible, planifica migrar a una versión soportada por razones de seguridad. Esta guía se mantiene fiel al entorno original (Ubuntu 10.04) por compatibilidad con instalaciones heredadas.
Resumen de objetivos de seguridad y mantenimiento
Nuestro objetivo al instalar OpenERP en servidores expuestos a Internet suele ser:
- A: Accesible solo mediante servicios cifrados (SSL/TLS) desde el cliente GTK, el navegador, WebDAV y CalDAV.
- B: Fácil de actualizar y personalizar, con control sobre el código y las dependencias.
Hay paquetes disponibles (apt-get install openerp-server) que simplifican la instalación, pero pueden quedarse desactualizados, limitar el control y complicar actualizaciones/patches. Esta guía explica una instalación manual que da mayor control sobre versiones y personalizaciones.
Índice
- Construir el servidor
- Crear el usuario OpenERP
- Instalar y configurar PostgreSQL
- Instalar dependencias Python
- Descargar y desplegar el código de OpenERP
- Configurar la aplicación OpenERP
- Arranque, comprobaciones y recomendaciones de seguridad
- Mantenimiento, actualización y reversión
- Listas de comprobación por rol
- Criterios de aceptación y pruebas
- Casos de uso y problemas comunes
- Resumen y siguientes pasos
Paso 1. Construir tu servidor
Instala únicamente lo mínimo desde el instalador de Ubuntu. Puedes instalar openssh-server durante la instalación o después, según prefieras.
Tras el primer reinicio instala openssh-server y denyhosts para mitigación básica de ataques por fuerza bruta. Hay otras herramientas (fail2ban, UFW) que también son válidas; elige la que prefieras.
sudo apt-get install openssh-server denyhosts
Actualiza todos los paquetes:
sudo apt-get update
sudo apt-get dist-upgrade
Es recomendable reiniciar y comprobar acceso por SSH antes de continuar.
Nota: considera configurar autenticación por clave pública SSH y deshabilitar el acceso por contraseña cuando sea posible.
Paso 2. Crear el usuario que ejecutará OpenERP
Crea un usuario de sistema para ejecutar el servicio OpenERP (sin shell interactivo):
sudo adduser --system --home=/opt/openerp --group openerp
Explicación breve: un usuario de sistema en Ubuntu tiene UID < 1000, suele tener /bin/false como shell y no está pensado para sesiones interactivas. El directorio /opt/openerp será la ubicación del código.
Paso 3. Instalar y configurar la base de datos PostgreSQL
Instala PostgreSQL:
sudo apt-get install postgresql
Cambia al usuario postgres para crear un rol dedicado a OpenERP:
sudo su - postgres
Crea el usuario de base de datos para OpenERP (recuerda la contraseña que elijas):
createuser --createdb --username postgres --no-createrole --pwprompt openerp
Entrada de ejemplo:
Enter password for new role: <–
Enter it again: <–
Shall the new role be a superuser? (y/n) <– y
Sal del usuario postgres:
exit
Breve consejo: si prefieres no dar superusuario al rol de OpenERP, puedes otorgar solo los permisos necesarios y crear bases de datos con un DBA. Algunos administradores optan por seguridad reducida (rol con menos privilegios) en producción.
Paso 4. Instalar las bibliotecas Python necesarias
Instala las dependencias necesarias para el servidor OpenERP:
sudo apt-get install python python-psycopg2 python-reportlab \
python-egenix-mxdatetime python-tz python-pychart python-mako \
python-pydot python-lxml python-vobject python-yaml python-dateutil \
python-pychart python-pydot python-webdav
Si vas a usar el cliente web, instala además:
sudo apt-get install python-cherrypy3 python-formencode python-pybabel \
python-simplejson python-pyparsing
Nota: las versiones disponibles en los repositorios coinciden con la época de Ubuntu 10.04. Para módulos adicionales o versiones más recientes podrías necesitar paquetes pip o compilación manual.
Paso 5. Descargar e instalar el servidor y el cliente web
Descarga los tarballs de OpenERP (usa la versión disponible en el momento de instalar). En el ejemplo original la versión era 6.0.2:
wget http://www.openerp.com/download/stable/source/openerp-server-6.0.2.tar.gz
Cliente web (opcional):
wget http://www.openerp.com/download/stable/source/openerp-web-6.0.2.tar.gz
Extrae los ficheros en /opt/openerp y cambia la propiedad a openerp:
cd /opt/openerp
sudo tar xvf ~/openerp-server-6.0.2.tar.gz
sudo tar xvf ~/openerp-web-6.0.2.tar.gz
Cambia la propiedad:
sudo chown -R openerp: *
Para facilitar actualizaciones, copia los directorios a nombres simples (server, web):
sudo cp -a openerp-server-6.0.2 server
sudo cp -a openerp-web-6.0.2 web
Estrategia de actualización: extrae la nueva versión en /opt/openerp, realiza pruebas en directorios temporales, y cuando todo esté validado copia (cp -a) sobre los directorios “server” y “web” para preservar módulos personalizados.
Paso 6. Configurar la aplicación OpenERP
El fichero de configuración de ejemplo del servidor está en /opt/openerp/server/doc/. A continuación se muestra el contenido que usó el autor (mantener este bloque tal cual si se sigue su configuración):
[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 = admin
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.pkey
;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 = [email protected]
;email_from = "OpenERP Support" <[email protected]>
;smtp_port = 25
;smtp_password = ******
;smtp_ssl = True
;smtp_server = mail.example.com
Copia este contenido a /etc/openerp-server.conf y protege el fichero:
sudo chown openerp:root /etc/openerp-server.conf
sudo chmod 640 /etc/openerp-server.conf
Edita la línea db_password = y pon la contraseña que creaste en PostgreSQL. Por ejemplo usa nano:
sudo nano /etc/openerp-server.conf
Arranque manual para pruebas (se detendrá con Ctrl+C):
/opt/openerp/server/bin/openerp-server.py --config=/etc/openerp-server.conf
Nota: si se ejecuta como tu usuario, no podrá acceder a la base de datos con permisos del usuario openerp. En pruebas ejecuta como el usuario openerp usando su entorno o crea un init script/service que haga el chuid.
Arranque automático y scripts de init
Ubuntu 10.04 usa Upstart/sysvinit. Debes crear un script de inicio en /etc/init.d/ o un job de Upstart. A continuación un ejemplo mínimo de script sysvinit (editar rutas si cambias):
#!/bin/sh
### BEGIN INIT INFO
# Provides: openerp-server
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: OpenERP Server
### END INIT INFO
DAEMON=/opt/openerp/server/bin/openerp-server.py
NAME=openerp-server
DESC="OpenERP Server"
USER=openerp
PIDFILE=/var/run/$NAME.pid
CONFIG=/etc/openerp-server.conf
case "$1" in
start)
echo "Starting $DESC"
start-stop-daemon --start --quiet --pidfile $PIDFILE --chuid $USER --background --exec $DAEMON -- --config=$CONFIG
;;
stop)
echo "Stopping $DESC"
start-stop-daemon --stop --quiet --pidfile $PIDFILE
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
;;
esac
exit 0
Guarda como /etc/init.d/openerp-server, hazlo ejecutable y registra para el arranque:
sudo chmod +x /etc/init.d/openerp-server
sudo update-rc.d openerp-server defaults
Comprueba logs en /var/log/openerp/openerp-server.log.
SSL y acceso seguro
OpenERP soporta XML-RPC/TCP. Para exponerlo de forma segura en Internet normalmente se recomienda usar un proxy inverso que gestione SSL (nginx o Apache) y deje la comunicación backend por loopback. También es posible configurar xmlrpcs y certificados directamente, pero en entornos modernos es más sencillo usar nginx/Apache por flexibilidad y manejo de certificados.
Ejemplo conceptual (nginx):
- Instala nginx
- Configura un server block con ssl_certificate y ssl_certificate_key
- Redirige / a la interfaz web y proxypass a http://127.0.0.1:8069
No incluimos aquí un archivo de configuración nginx completo para evitar suposiciones de certificado o dominio, pero esta es la arquitectura recomendada: cliente TLS -> nginx (termina TLS) -> OpenERP en localhost.
Buenas prácticas de seguridad inicial
- Limita el acceso SSH por IP o usa autenticación por clave.
- Usa un firewall (ufw o iptables) para permitir solo los puertos necesarios (SSH, 80/443 para proxy).
- Mantén actualizado el sistema y aplica parches.
- Protege /etc/openerp-server.conf con permisos 640 y propietario openerp:root.
- Considera separar la base de datos en otro host para producción.
Mantenimiento, actualización y reversión
Estrategia de actualización segura:
- Clonar la instalación actual en un entorno de pruebas o en otra máquina.
- Extraer la nueva versión en /opt/openerp/openerp-server-X.Y.Z.
- Ejecutar pruebas funcionales con módulos críticos y scripts de migración de base de datos.
- Si todo es correcto, parar servicios en producción, copiar ficheros con cp -a para preservar add-ons personalizados y arrancar de nuevo.
- Si hay problemas, revertir: restaurar los directorios antiguos desde la copia de seguridad y restaurar la base de datos si hubo cambios.
Backup mínimo recomendado:
- Copia de seguridad diaria de la base de datos (pg_dumpall o pg_dump por base de datos).
- Copia de los directorios personalizados (addons) y del archivo /etc/openerp-server.conf.
Ejemplo de dump rápido:
sudo -u postgres pg_dump openerp_dbname > /root/backups/openerp_dbname_$(date +%F).sql
Listas de comprobación por rol
Administrador del sistema:
- SSH con clave pública configurado
- Firewall configurado
- Ficheros de configuración con permisos correctos
- Backups automáticos configurados
DBA:
- Rol openerp creado en PostgreSQL
- Backups de DB probados y restaurados en env. de staging
- Monitoreo de conexiones y uso de disco configurado
Desarrollador / Integrador:
- Entorno de pruebas con la misma versión de OpenERP
- Procedimiento de despliegue documentado
- Addons versionados en control de código
Criterios de aceptación
Antes de considerar la instalación “lista para producción” asegúrate de que:
- El servicio arranca automáticamente tras reinicio del servidor.
- OpenERP se conecta a PostgreSQL con el usuario configurado.
- Las páginas del cliente web se sirven correctamente a través del proxy TLS si aplica.
- Las funciones críticas de negocio han pasado pruebas de regresión en staging.
- Backups y procedimientos de restauración documentados y verificados.
Casos de prueba / aceptación
Pruebas mínimas a ejecutar después de la instalación:
- Iniciar sesión con un usuario de prueba y crear una factura o un registro crítico.
- Crear y restaurar un backup de la base de datos en un entorno de pruebas.
- Probar acceso WebDAV/CalDAV si se utiliza.
- Verificar logs por errores tras 24 horas de funcionamiento.
Problemas comunes y soluciones rápidas
- Error de conexión a la base de datos: comprobar db_user, db_password en /etc/openerp-server.conf y que PostgreSQL permite conexiones locales.
- Permisos archivos: asegurar owner openerp y permisos 640 para ficheros sensíbles.
- Puerto ocupado: confirmar que nada más está escuchando en 8069/8070.
Alternativas y cuándo elegirlas
- Paquete del repositorio (apt-get install openerp-server): útil para pruebas rápidas o entornos no productivos pero puede quedarse desactualizado.
- Contenerización (Docker): opción moderna para aislar dependencias y facilitar despliegues, aunque en Ubuntu 10.04 puede requerir backporting.
- Migrar a versiones posteriores (Odoo): recomendado si buscas soporte activo, nuevas funcionalidades y seguridad.
Modelo mental y heurísticas rápidas
- Minimiza la superficie de ataque: solo abre puertos necesarios y terminal TLS en el perímetro.
- Mantén separadas las responsabilidades: base de datos en host distinto si es posible.
- Versionado y pruebas: nunca actualizar en producción sin validar en staging.
Fact box: puntos clave
- Usuario de sistema: openerp en /opt/openerp
- Puerto por defecto: 8069 (xmlrpc)
- Configuración principal: /etc/openerp-server.conf
- Logs: /var/log/openerp/openerp-server.log
- Backup recomendado: pg_dump regular + copia de addons
Plan de reversión rápido
- Si una actualización falla, detener el servicio.
- Restaurar ficheros del directorio server/web desde backup.
- Restaurar la base de datos desde el dump más reciente si hubo cambios críticos.
- Arrancar el servicio y verificar operaciones básicas.
Snippets y cheatsheet
Comandos frecuentes:
# Reiniciar el servicio
sudo /etc/init.d/openerp-server restart
# Ver logs en tiempo real
sudo tail -f /var/log/openerp/openerp-server.log
# Backup manual de la BD
sudo -u postgres pg_dump openerp_dbname > /root/backups/openerp_dbname_$(date +%F).sql
Edge cases y cuándo puede fallar
- Si usas add-ons que requieren versiones más recientes de Python o librerías del sistema, la instalación en Ubuntu 10.04 puede no ser suficiente.
- Entornos con alta concurrencia pueden necesitar ajustar db_maxconn y recursos de hardware.
- Si la base de datos está en otro host, asegúrate de permitir conexiones TCP y ajustar db_host/db_port en la configuración.
Compatibilidad y notas de migración
OpenERP 6 es una versión mayor anterior a Odoo 7 y posteriores. Migraciones entre major versions a menudo requieren scripts de migración de datos o uso de servicios de migración especializados. Planifica pruebas y backups antes de intentar migrar a una versión mayor.
Resumen y siguientes pasos
Esta guía traduce y expande el procedimiento clásico para instalar OpenERP 6 en Ubuntu 10.04 LTS, enfatizando seguridad, control de versiones y procedimientos de actualización. Recomendaciones prácticas:
- Si puedes, actualiza tu sistema operativo a una versión soportada.
- Implementa un proxy TLS (nginx) para terminar certificados.
- Automatiza backups y pruebas de restauración.
- Versiona tus add-ons y documenta el procedimiento de actualización.
Importante: esta instalación manual ofrece control y flexibilidad, pero requiere disciplina en gestión de parches y backups.
Resumen final: instala dependencias, crea el usuario openerp, configura PostgreSQL, extrae y despliega el código en /opt/openerp, protege /etc/openerp-server.conf, configura un init script para arranque automático y protege el servidor con un proxy TLS y un firewall. Sigue la lista de comprobación por rol y valida con los criterios de aceptación antes de considerar la instalación lista para producción.
Materiales similares

Arreglar android.process.media se ha detenido

Solución: KB5062553 no se instala en Windows 11

Cómo desarrollar una app iOS exitosa desde cero

Pantalla negra en Chrome: soluciones rápidas
