Instalar e automatizar OpenERP (Servidor e Web)

Intenção principal
Instalar, testar e automatizar o OpenERP Server e o Web Client em um servidor Linux (Ubuntu), garantindo que os serviços iniciem/terminem corretamente e gravem logs acessíveis.
Passo 7 — Instalar o script de inicialização do servidor
O último passo para o servidor é instalar um script que inicia e encerra o serviço automaticamente e executa a aplicação com o usuário correto. Abaixo está o script usado neste guia. Cole-o em /etc/init.d/ e chame-o de 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
Depois de salvar o arquivo em /etc/init.d/openerp-server, torne-o executável e defina o proprietário como root:
sudo chmod 755 /etc/init.d/openerp-server
sudo chown root: /etc/init.d/openerp-server
Em seguida, crie o diretório de logs configurado no arquivo de configuração do servidor e dê permissão de escrita ao usuário openerp:
sudo mkdir /var/log/openerp
sudo chown openerp:root /var/log/openerp
Importante: manter logs acessíveis pelo usuário da aplicação é essencial para diagnosticar falhas e evitar erros de permissão em tempo de execução.
Passo 8 — Testar o servidor
Inicie o servidor com:
sudo /etc/init.d/openerp-server start
Verifique o arquivo de log para confirmar que o servidor iniciou corretamente:
less /var/log/openerp/openerp-server.log
Se o servidor não iniciar, volte e verifique permissões, caminho do daemon e arquivo de configuração. Não prossiga até resolver o problema.
Se estiver usando o cliente GTK, conecte-o ao servidor. Você deverá ver uma tela de primeiro acesso indicando que o servidor aceita conexões e ainda não há banco de dados configurado:
Recomendo alterar a senha de super admin imediatamente. Por padrão é “admin”. O super admin pode criar/backup/restaurar/remover bancos de dados. No cliente GTK, vá em Arquivo → Databases → Administrator Password para alterar.
Observação: a senha de super admin é gravada em texto simples em /etc/openerp-server.conf, portanto as permissões restritas (root e openerp) são necessárias.
Nota técnica: alterar a senha via cliente pode reescrever o arquivo de configuração, removendo comentários e reordenando entradas. Isso parece ser comportamento da aplicação.
Verifique também o stop do serviço:
sudo /etc/init.d/openerp-server stop
Cheque o log e a lista de processos para confirmar que parou.
Passo 9 — Automatizar inicialização e encerramento do servidor
Se tudo estiver OK, registre o script para inicializar automaticamente com o sistema:
sudo update-rc.d openerp-server defaults
Você pode reiniciar o servidor para testar. Após o boot, confirme com:
ps aux | grep openerp
Um processo em execução deve aparecer algo parecido com:
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
Verifique também os logs.
Passo 10 — Configurar e automatizar o Web Client
O web client é outra aplicação que serve OpenERP via navegador. A instalação segue os mesmos passos (configuração, script de inicialização, teste e automatização). A configuração padrão do web client pode ser encontrada em /opt/openerp/web/doc/openerp-web.cfg e um exemplo é mostrado abaixo.
[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 = ''
Copie esse arquivo para /etc/openerp-web.conf e ajuste proprietário e permissões como no servidor:
sudo chown openerp:root /etc/openerp-web.conf
sudo chmod 640 /etc/openerp-web.conf
Exemplo do script de boot do web client (coloque em /etc/init.d/openerp-web, proprietário root, executável):
#!/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
Defina permissões e teste:
sudo chmod 755 /etc/init.d/openerp-web
sudo chown root: /etc/init.d/openerp-web
sudo /etc/init.d/openerp-web start
O web client, por padrão, serve na porta 8080. Acesse via navegador:
Teste o stop e, se OK, registre para inicialização automática:
sudo /etc/init.d/openerp-web stop
sudo update-rc.d openerp-web defaults
Agora, após reiniciar o servidor, OpenERP (servidor e web client) devem subir automaticamente.
Verificação rápida e checklist operacional
Use este checklist antes de considerar a instalação concluída:
- Arquivos de script em /etc/init.d/ com dono root e modo 755.
- Arquivos de configuração em /etc/ com dono openerp:root e modo 640.
- Diretório /var/log/openerp existe e é gravável por openerp.
- PID files são criados em /var/run/ quando os serviços iniciam.
- Serviços iniciam e param com os comandos sudo /etc/init.d/
start|stop. - update-rc.d foi executado para ambos os serviços.
- A porta 8070 (servidor) e 8080 (web, se usado) estão acessíveis conforme esperado.
- Senha super admin alterada e armazenada com permissões restritas.
Mini-metodologia de implantação (3 fases)
- Preparação: valide usuário openerp, permissões e dependências do Python.
- Implantação: copie configs, instale scripts em /etc/init.d/, ajuste permissões.
- Teste e automação: start/stop manuais, verificar logs, registrar com update-rc.d e reiniciar para validar o boot.
Checklist por função
Administrador de sistema:
- Validar permissões de arquivos e diretórios.
- Configurar update-rc.d e testar reboot.
- Monitorar logs periodicamente.
Operações / DevOps:
- Integrar healthchecks e alertas (ex.: checar /var/log/openerp/openerp-server.log e processos).
- Automatizar deploy de configurações com ferramenta de gestão (Ansible, Puppet, etc.).
Desenvolvedor:
- Confirmar que o servidor usa a porta esperada (8070) e o web client 8080.
- Testar conexões do cliente GTK e do browser.
Segurança e endurecimento básico
- Proteja /etc/openerp-server.conf e /etc/openerp-web.conf com dono openerp:root e modo 640.
- Evite senha padrão do super admin; crie uma senha forte e única.
- Se expor web client publicamente, coloque-o atrás de um proxy reverso (Nginx/Apache) com TLS e cabeçalhos X-Forwarded configurados.
- Considere firewall (ufw/iptables) para limitar acesso às portas 8070/8080 somente a endereços autorizados.
- Faça backups regulares dos bancos de dados e teste restaurações.
Diagnóstico e resolução rápida
Se o serviço não iniciar:
- Verifique permissões de /var/log/openerp e de /etc/openerp-server.conf.
- Abra o último trecho do log: tail -n 200 /var/log/openerp/openerp-server.log.
- Confirme o binário apontado por DAEMON existe e é executável: ls -l /opt/openerp/server/bin/openerp-server.py.
- Confira se outro processo está usando a porta com: sudo netstat -plnt | grep 8080 (ou 8070).
Critérios de aceitação
- Serviços openerp-server e openerp-web iniciam com sucesso e criam seus PID files.
- Logs mostram mensagens de startup sem erros fatais.
- Conexão via Cliente GTK ou navegador retorna tela de login do OpenERP.
- Senha do super admin alterada e arquivo de configuração protegido.
Quando esta abordagem falha ou limitações
- Em instalações modernas com systemd, prefira criar unit files systemd em vez de scripts init.d; os scripts init.d ainda funcionam, mas podem não oferecer recursos avançados de gerenciamento.
- Se você tiver múltiplas instâncias ou balanceamento, scripts locais não substituem orquestração centralizada.
Resumo
Seguir estes passos garante que o OpenERP Server e o Web Client estejam corretamente instalados, testados e configurados para iniciar automaticamente no boot. Verifique logs, proteja credenciais e considere usar systemd ou uma solução de orquestração para ambientes maiores.
Nota: este guia foca na instalação e automação do serviço. A configuração funcional e o uso do OpenERP (criação de bases, módulos, personalizações) ficam fora do escopo.
Materiais semelhantes
OpenVPN + LinOTP: Autenticação OTP

Métricas do Instagram: medir e otimizar

Recuperar fotos/Vídeos Ver uma vez no WhatsApp
Instalar Icecast 2.3.3 no CentOS 6.3

Widget de chamada Google Voice no seu site
