BSD | OpenBR.org
OpenBR.org
O administrador de sistemas e seu Blog
Arquivos da categoria: BSD
FreeBSD e Redmine com Mongrel Cluster e Apache
4 respostas	Na procura de um software para substituir um sistema de "controle de chamados" ( tickets ) acabei esbarrando com o Redmine, que é um excelente gerenciador de projetos, escrito em Ruby on Rails e totalmente customizável.
Já que meu sistema operacional predileto é o FreeBSD e nele existe um port do Redmine resolvi subir esse ambiente usando um FreeBSD 8.0, Mongrel Cluster e Apache 2.2 com proxy_balance.
As imagens para download do FreeBSD estão disponíveis aqui: 32 bits e 64 bits
Com o FreeBSD instalado, precisamos atualizar o ports, que é uma coleção de programas instalada a partir do seu fonte:
Terminada a atualização do arvore do ports, vamos instalar os arquivos do Redmine:
cd /usr/ports/www/redmine; make install clean
No decorrer da instalação ele pedirá a confirmação de algumas opções e também vai instalar algumas dependências necessários. Primeiro ele pedirá qual o banco de dados a ser utilizado pelo Redmine, neste caso escolhi o Mysql.
Em seguida ele pede as configurações necessárias para compilar o Ruby.
Também são pedidas configurações de compilação para as dependências como o Perl, M4 e Libiconv, nestas basta deixar padrão e clicar em Ok.
Instalando o Mongrel para fazer o cluster com o módulo proxy_balance do apache:
cd /usr/ports/www/rybygen-mongrel_cluster; make install clean
E também o Apache 2.2:
cd /usr/ports/www/apache22; make install clean
Para compilar o Apache com o módulo proxy_balance temos que selecionar a opção quando a caixa de dialogo de configuração aparecer:
Por fim, instalamos o Mysql:
Com todos os softwares que precisamos instalados, agora podemos configurar o sistema para o rodar o Redmine com o apache e o mongrel_cluster.
Primeiramente vamos configurar o Mysql para subir automaticamente e também criar uma base de dados para o Redmine:
Adicione a seguinte linha no arquivo /etc/rc.conf do FreeBSD para o Mysql subir automaticamente:
mysql_enable="YES"
Para iniciar o Mysql:
A senha do usuário root no Mysql vai estar em branco, e para conectar no basta digitar:
Voilá, você esta conectado e agora criamos a base e também um usuário para acessar ela:
grant all privileges on redmine.* to 'redmine'@'localhost' identified by 'minhasenha';
Após criar a base de dados vamos configurar e testar o Redmine.
cd /usr/local/www/redmine/
Precisamos editar o arquivo database.yml e adicionar as seguintes linhas abaixo para o Redmine conectar no Mysql:
password: minhasenha
Agora geramos alguns arquivos e alimentamos a base de dados do Redmine
rake db:migrate RAILS_ENV="production"
rake redmine:load_default_data RAILS_ENV="production"
chown -R www:www files log tmp public/plugin_assets
Neste momento podemos testar o Redmine apenas usando o WEBrick:
ruby script/server -b 0.0.0.0 -p 3000 -e production
Agora basta apontar seu browser para url http://localhost:3000
Assim que o Redmine for testado podemos finalizar com o Mongre_Cluster e o Apache:
Para rodar o mongrel_cluster automaticamente, basta fazer os seguintes passos:
mkdir /usr/local/etc/mongrel_cluster
touch /usr/local/etc/mongrel_cluster/redmine.yml
Adicionar as seguintes linhas no arquivo /usr/local/etc/mongrel_cluster/redmine.yml:
user: www
cwd: /usr/local/www/redmine
port: "10000"
group: www
O mongrel vai subir 3 servidores escutando na porta 10000, 10001 e 10002 do endereço local (127.0.0.1), você pode usar estas configurações para ter um alta performance ou mesmo alta disponibilidade se rodar em servidores separados.
mongrel_rails cluster::start -C /usr/local/etc/mongrel_cluster/redmine.yml
mongrel_rails cluster::stop -C /usr/local/etc/mongrel_cluster/redmine.yml
Reinicializando
mongrel_rails cluster::restart -C /usr/local/etc/mongrel_cluster/redmine.yml
Em fim, vamos configurar o proxy_balance do apache, primeiro vamos criar e editar o seguinte arquivo:
vi /usr/local/etc/apache22/extra/httpd-redmine.conf
Neste arquivo adicionamos as seguintes configurações e substitua o "dominio.com" pelo seu domino:
ServerName balance.dominio.com
BalancerMember http://127.0.0.1:10000
BalancerMember http://127.0.0.1:10001
BalancerMember http://127.0.0.1:10002
ServerName redmine.dominio.com
ProxyPass / balancer://redmine/
ProxyPassReverse / balancer://redmine/
RewriteRule ^/(.*) balancer://redmine/$1 [L,P]
O host virtual de exemplo que criei como "balancer.dominio.com" é onde você vai gerenciar o seu cluster:
E apontando para o "redmine.dominio.com" tenho o sistema rodando perfeitamente:
E para finalizar e deixar tudo rodando automaticamente quando seu sistema FreeBSD subir, deixe seu /etc/rc.conf com as seguintes linhas:
mongrel_cluster_enable="YES"
mongrel_cluster_conf_dir="/usr/local/etc/mongrel_cluster"
apache22_enable="YES"
Site do Redmine: www.redmine.org
Documentação: www.redmine.org/wiki/redmine/Guide
Plugin para o Firefox: addons.mozilla.org/firefox/addon/11545
Plugin para o Chrome: chrome.google.com/extensions/detail/maognoipicmbggkgjihiaimhpmnaaggm
Este post foi publicado em BSD, Destaque, FreeBSD, Geral, Project Management, Sem categoria, Software Livre e marcado com a tag Apache, Chamados, Cluster, FreeBSD, FreeBSD ports, Mongrel, ports, Project Management, Proxy Balance, Rails, Redmine, Ror, Ruby, Ticket em 31 de março de 2010 por Chimbida.	Ads	Esta página no seu celular:	Orgulhosamente mantido com WordPress