Nesse tutorial irei demonstrar como instalar o OpenBravo ERP , usando banco de dados PostgreSQL dentro de um subsistema, usando o Jail. O OpenBravo é um sistema de gestão Enterprise Resource Planning e tem por função, basicamente o controle de informações financeiras, administrativas, logísticas, transacionais e contábeis de uma empresa. Estarei usando o FreeBSD 7.2-stable com uma placa sis0. Faça as mudanças em alguns paths caso necessário. Algumas coisas são opcionais, como o jail (o postgresql por exemplo, requer algumas mudanças para funcionar dentro da jail) e o DEVICE_POLLING. Isso é só para evitar dores de cabeça futuras.
Primeiramente, vamos atualizar o nosso sitema:
# portsnap fetch && portsnap extract (caso você use tcsh) # cp /usr/share/examples/cvsup/stable-supfile /home/diego/ # csup -g -L2 /home/diego/stable-supfile -h cvsup3.br.freebsd.org Compile o kernel do sistema e adicione as seguintes linhas
options DEVICE_POLLINGoptions HZ=1000
O OpenBravo funciona pela web e isso vai melhorar o desempenho da rede, porém não funciona com algumas placas de rede. A opção DEVICE_POLLING muda o método que os dados da interface são passadas para o kernel. Normalmente cada vez que a placa de rede precisa de "atenção" (por exemplo, quando recebe um pacote) é gerado um pedido de interrupção (interrupt request). Esse interrupt request causa um "context switch" e uma chamada para interrupção. O context switch é quando a CPU e Kernel tem que trocar do user land (programas de usuário ou daemons) para kernel land (driver, hardware, etc). Com o DEVICE_POLLING ativado você muda isso, em conjunto com a opção HZ=1000, ele vai deixar mais lento o clock interrupts para 1000 vezes por segundo. É necessário adicionar a linha kern.polling.enable=1 no /etc/sysctl.conf.
OBS: Se o SMP estiver ativado no seu kernel, ele certamente não irá compilar. Não tem problema usar o DEVICE_POLLING mesmo com mais de um processador, mas você terá que DELETAR algumas linhas no arquivo /usr/src/sys/kern/kern_poll.c:
#ifdef SMP #include "opt_lint.h" #ifndef COMPILING_LINT #error DEVICE_POLLING is not compatible with SMP #endif #endif Agora, make config nele! Caso não saiba compilar o kernel, acesse esse link!
Depois de uns cafezinhos, o sistema deve ta todo atualizado! E que tal montar um jail pra deixar mais seguro?
# vi /root/jail.sh
Insira as seguintes linhas:
D=/home/diego/JAIL cd /usr/src mkdir -p $D make world DESTDIR=$D make distribution DESTDIR=$D mount -t devfs devfs $D/dev
# sh /root/jail.sh
Esse vai demorar bastante! Ainda bem que é opcional ! Enquanto isso, adicione as seguintes linhas no /etc/rc.conf
sshd_enable="YES" ifconfig_INTERFACE="inet x.x.x.x m.m.m.m media 100baseTX mediaopt full-duplex"
OBS: Possivelmente sua placa de rede faz autonegociação de velocidade. Mas isso acarreta alguns contras, a placa para de transferir dados para fazer a alto negociação, por exemplo. Adicionando "media 100baseTX mediaopt full-duplex" você diminui o uso da CPU. Claro que sua placa não pode ser tão velha :)
defaultrouter="x.x.x." hostname="hostname.domain" sendmail_enable="NONE" firewall_enable="YES" firewall_script="/etc/firewall"
Vou por o nome da jail de skunk, mas esse não é o hostname, apenas um meio de "listar" as jail no rc.conf
jail_enable="YES" jail_list="skunk" jail_set_hostname_allow="NO" jail_socket_unixiproute_only="YES" jail_sysvipc_allow="YES" jail_skunk_rootdir="/usr/home/diego/JAIL" jail_skunk_hostname="hostname.domain" jail_skunk_ip="192.168.1.1" jail_skunk_interface="SUA_INTERFACE" jail_skunk_exec_start="/bin/sh /etc/rc" jail_skunk_flags="-l -u root" jail_skunk_procfs_enable="YES" jail_skunk_devfs_enable="YES"
# vi /etc/firewall ipfw add 50 divert natd ip4 from any to any via INTERFACE
Você precisa do divert para o jail acessar a net !
Agora digite:
# jail /usr/home/diego/JAIL skunk 192.168.1.1 /bin/sh
Pronto, você acessou o novo jail!
# touch /etc/fstab
Copie o resolv.conf do sistema anfitrião e cole no /usr/home/diego/JAIL/etc/resolv.conf
# touch /etc/resolv.conf # echo 'rpcbind_enable="NO"' >> /etc/rc.conf # passwd # adduser # /etc/rc.d/sshd start # echo 'sshd_enable="YES"' >> /etc/rc.conf # echo 'sendmail_enable="NONE"' >> /etc/rc.conf
Caso você queira o ports no jail:
# mkdir /usr/home/diego/JAIL/usr/ports
# mount_nullfs /usr/ports/ /usr/home/diego/JAIL/usr/ports/
O Jail está pronto para uso.
OBS: caso você nao consiga usar a internet no jail, verifica as entradas no sysctl
# sysctl -a | grep -i jail
O security.jail.allow_raw_sockets tem que ta como ligado (1)
Verifique também o NAT !
Beleza, agora vamos instalar o OpenBRAVO ERP !! Mas antes, entre no site da sun e baixe o tzupdater e o diablo jdk. Será necessário fazer um registro, mas nada muito demorado. Depois de baixar os dois pacotes, mova-os para o /usr/ports/distfiles. Vamos instalar o postgreSQL server também, porque durante a instalação do OpenBravo só o postgreSQL client é instalado, pule essa parte caso você já possua um servidor postgreSQL.
# cd /usr/ports/database/postgresql83-server; make install clean # echo 'postgresql_enable="YES"' >> /etc/rc.conf
O postgreSQL é um database que roda em sandbox, ou seja, todas as operações dele terá que ser feito pelo o seu usuário, que no caso é o pgsql (default).
# su -l pgsql # initdb -D /usr/local/pgsql/data/ # createuser --pwprompt postgres
Quando o prompt perguntar se o novo usuario será super usuario, responda que sim. O initdb irá povoar o diretório data. (Você provavelmente terá problemas relacionados a shared memory, insira as seguintes linhas no /boot/loader.conf:
kern.ipc.semaem=32767 kern.ipc.semvmx=65534 kern.ipc.semusz=184 kern.ipc.semume=80 kern.ipc.semopm=200 kern.ipc.semmsl=120 kern.ipc.semmnu=4096 kern.ipc.semmns=8192 kern.ipc.semmni=32767 kern.ipc.semmap=60
E no /etc/sysctl.conf:
security.jail.sysvipc_allowed=1 kern.ipc.shmall=65536 kern.ipc.shmmax=134217728 kern.ipc.semmap=4096
(Fonte: http://www.freebsddiary.org/jail-multiple.php) # cd /usr/ports/www/openbravoerp; make install clean
No final da instalação aparecerá um setup, aceite a licença e responda as questões referente ao PostgreSQL. Ponha o mesmo usuario e senha do createuser. Adicione a linha tomcat5.5_enable="YES", também adicione a linha referente ao apache, também verifique se o postgresql está presente no /etc/rc.conf. Depois de tudo isso dê um reboot
Agora acesse pelo navegador, não esqueça de configurar o httpd.conf !! As entradas Servername irá ficar com o nome do seu servidor, ou então o ip caso não existe /etc/hosts configurado. Por exemplo, se você definiu como ServerName 10.1.2.3, o OpenBravo deverá ser acessado pelo http://10.1.2.3:8180/openbravo. Tae! Espero que funcione ! :) Qualquer dúvida mail to:
Este endereço de e-mail está sendo protegido de spam, você precisa de Javascript habilitado para vê-lo
Abraços! |