Há algumas semanas estamos utilizando o Redmine na Conio Soluções em Tecnologia como ferramenta principal de gestão de projetos e suas tarefas. O Redmine é uma ferramenta simples e funcional escrita em Ruby que, neste momento, atende as necessidades da Conio. Você pode optar por instalá-la manualmente em seu ambiente ou então, pegar imagens prontas.
Destaco como principais características do Redmine:
- Suporte a múltiplos projetos
- Responsabilidades e acessos facilmente configuráveis
- Sistema de tracking para issues smplificado
- Gráficos de desempenho e um calendário bem eficiente
- Notícias sobre os projetos e gerenciamento de arquivos simplificado
- Notificações de operações e ocorrências por email
- Fóruns e wikis para cada projeto
- Integração com alguns dos principais source codes (SVN, CVS, Git, Mercurial, Bazaar e Darcs)
- Suporte para autenticação via LDAP
Como utilizamos o Microsoft Azure para praticamente tudo aqui na empresa, com o Redmine não foi diferente. Fomos até o marketplace do Azure e criamos uma máquina virtual que já implementa o ambiente operacional do Redmine. Quem disponibiliza esta imagem é uma empresa chamada Bitnami. O Redmine que ela entrega através desta VM no Azure possui as seguintes características:
- Redmine 3.1.1′
- Apache 2.4.16
- ImageMagick 6.7.5
- MySQL 5.5.45
- Subversion 1.8.13
- Git 1.9.5
- Ruby 2.0.0-p647
- Rails 4.2.2
- RubyGems 1.8.12
Tudo isso rodando sobre o Ubuntu Server. Você pode criar um ambiente semelhante a este que me refiro de forma simplificada (nos mesmos moldes com o que se faz no Azure). Basta seguir o link a seguir e começar.
Criar máquina virtual com Bitnami:
https://azure.microsoft.com/en-us/marketplace/partners/bitnami/redmine2521ubuntu1404/
Muito embora esta imagem facilite bastante o trabalho, é importante deixar claro que existe sempre a possibilidade de você criar e configurar seu ambiente manualmente, ok?
Plugins
Uma possibilidade que o Redmine oferece e que claro, chamou muito a atenção, é a de “plugar” novas funcionalidades a ferramenta através da instalação de plugins. No site oficial do Redmine existe uma relação com milhares deles sendo que, a grande maioria possui código aberto e que estão disponíveis para uso imediato e gratuito junto a seu ambiente.
Para que você entenda o “por que” o uso de plugins é tão bacana, veja o exemplo prático pelo qual passamos recentemente. O Redmine não traz consigo uma ferramenta visual para a distribuição e acompanhamento das tarefas de cada desenvolvedor em cada projeto. Assim, buscando no diretório de plugins, encontramos um muito bem avaliado (4,5 estrelas) e com versões compatíveis para praticamente todas as versões do Redmine chamado “Redmine Dashboard”. Instalamos o mesmo e isso resolveu este nosso problema.
Assim, neste post (que mais tem cara de uma dica mais detalhada), vou apresentar o processo de instalação de novos plugins usando como exemplo justamente o Redmine Dashboard (mencionado há pouco).
Resolvi fazer este post por um motivo muito simples: não existe uma documentação bacana (nem em inglês, imagine então em pt-br) que trate dos problemas que podem ser encontrados ao se tentar instalar plugins no Redmine.
O processo não é simples como no WordPress, por exemplo, em que você faz o upload do pacote para uma pasta específica no servidor e depois é tudo visual (no melhor estilo next-next-finish) para ativar o mesmo. No Redmine não é assim, é um pouco mais complicado mas tudo funciona perfeitamente. Vou apresentar a mecânica de instalação junto com os possíveis problemas em cada etapa. Let’s go?
Etapa 1: Acessando a máquina virtual da Bitnami
Como já mencionei anteriormente, subimos uma máquina virtual com Ubuntu no Microsoft Azure para hostear o Redmine. As formas de acesso para máquinas virtuais Linux podem variar de acordo com o ambiente operacional que se está utilizando. Neste post vou considerar o Windows como ambiente operacional imaginando ser este, o mais utilizado pelos leitores deste site :-).
Precisaremos de alguma ferramenta de SSH para acessar a máquina virtual. Uma boa opção é o Putty. É gratuita, funcional e extremamente simples. Siga o link abaixo para baixar o Putty para seu computador.
Putty Donwload: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
Observação: Se você está utilizando outro ambiente operacional como MacOS, por exemplo, você pode utilizar o próprio terminal para acessar a máquina virtual. Linux oferece o mesmo recurso.
O Putty não possui instalação. Trata-se de um executável simples que traz uma tela inicial com as opções de configuração para acesso ao endpoint público do serviço via SSH. A Figura 1 apresenta meu Putty configurado para acessar a máquina virtual que hospeda o Redmine no Azure.
Figura 1. Configurando o acesso à maquina virtual
A Figura 1 apresenta o Putty configurado para acessar a máquina virtual Linux que hospeda nosso Redmine no Microsoft Azure. Basicamente o que informei aqui foi o endpoint público apontando para a porta 22. Simples, não?!
Ao clicar em “Open”, o Putty trará o terminal para sua vista solicitado os dados de login no servidor remoto, conforme apresenta a Figura 2. O mesmo ocorrerá para outros sistemas operacionais.
Figura 2. Tela de autenticação do servidor Linux
Identifique-se com seu usuário e senha (ambos configurados no momento em que a máquina virtual foi criada). Se tudo correr conforme esperado, você visualizará a tela de entrada do sistema (ver Figura 3).
Figura 3. Tela de entrada do servidor do Redmine
Pronto. Estamos dentro. Agora podemos iniciar o processo de instalação do(s) plugin(s) ou qualquer outra coisa que desejemos. A partir daqui você precisará de alguns conhecimentos básicos sobre o terminal de comandos do Ubuntu.
Etapa 2: Instalando o plugin
Todos os plugins do Redmine devem estar fisicamente no seguinte caminho:
<caminho_da_instalação>/redmine/htdocs/plugins
Desta forma, nossa primeira tarefa será “descobrir” o caminho completo para chegar até o destino mencionado acima. Precisaremos dessa informação para fazer operações seguintes. Através do uso dos comandos “ls” e “cd” repetidas vezes, conseguiremos descobrir que o caminho completo até a pasta plugins é o seguinte:
/home/<usuário_de_acesso>/apps/redmine/htdocs/plugins
Ótimo. Temos a primeira informação importante. Agora precisamos baixar o pacote que contém o plugin que desejamos instalar. O Redmine Dashboard está no GitHub e a versão compatível com nosso Redmine é a 2.6.1. O endereço do repositório está aqui: https://github.com/jgraichen/redmine_dashboard/releases/tag/v2.6.1. Para efetuar o download, executaremos o comando wget, conforme listagem a seguir.
wget https://github.com/jgraichen/redmine_dashboard/releases/download/v2.6.1/redmine_dashboard-v2.6.1.zip
Esse comando baixará o Redmine Dashboard para o diretório no qual você está navegando no momento. Um simples “ls” pode comprovar se o download foi efetuado com sucesso.
Como você pode perceber, o pacote que contém o plugin vem em formato “zip”. Isso quer dizer que precisaremos descompactar o mesmo antes de colocar os arquivos na pasta “plugins”. Para fazer isso, executaremos o comando “unzip”, conforme listagem a seguir.
unzip redmine_dashboard-v2.6.1.zip -d /home/<usuário_de_acesso>/apps/redmine/htdocs/plugins
Este comando irá pegar o pacote zip (redmine_dashboard-v2.6.1.zip) e jogar os arquivos descompactados no destino (/home/<usuário_de_acesso>/apps/redmine/htdocs/plugins). Um “ls” poderá comprovar a transferência dos arquivos.
No site da Bitnami nós encontramos a informação de que, após copiar os arquivos para o diretório “plugins”, o que deve ser feito é executar o comando “bundle install –without development test” entretanto, nossa experiência mostrou que a VM da Bitnami não suporta a correta execução deste comando porque ela já traz o arquivo Gemfile bloqueado. Ela apresenta o seguinte erro “You are trying to install in deployment mode after changing your Gemfile. Run `bundle install` elsewhere and add the updated Gemfile.lock to version control“.
A solução foi executar o comando apresentado a seguir.
bundle install --no-deployment
Este comando instala o bundle de dependências para que o plugin possa funcionar de forma adequada no contexto do Redmine, com a diferença de que agora estamos “enganando” o agente Ruby e dizendo que trata-se de um install em ambiente de homolog ou desenvolvimento (no-deployment).
Uma observação importante relacionada a este último comando está no fato de que o mesmo só funcionará de maneira adequada se for executado de dentro do diretório “<caminho_da_instalação>/redmine/htdocs”.
Finalmente, precisamos executar o rake do ruby para que o plugin possa ser construído e para que esteja pronto para uso. Novamente o site oficial da Bitnami apresenta uma pegadinha. Se executarmos a partir da raiz do servidor o comando “ruby bin/rake redmine:plugins RAILS_ENV=production” conforme orientação do mesmo, muito provavelmente você receberá a informação de que não é possível executar o comando porque o arquivo “production.log” não tem permissão 0666. Já sabe, né? Precisaremos adicionar essa permissão para este arquivo. Para fazer isso, execute o comando a seguir.
sudo chmod 0666 /opt/bitnami/apps/redmine/htdocs/log/production.log
Agora que a permissão foi dada, o rake pode ser executado. Você verá que tudo deverá funcionar corretamente, conforme esperado.
ruby bin/rake redmine:plugins RAILS_ENV=production
Finalmente, você precisará reiniciar o agente do Ruby no servidor ou então, se achar mais fácil, reiniciar o servidor. Após fazer isso, ao entrar novamente na aplicação (Redmine), você verá o login disponível para uso na área de plugins da mesma, conforme apresenta a Figura 4.
Figura 4. Plugin disponível para uso na central de administração do Redmine
É isso pessoal! Espero que esta dica possa poupar algum tempo se você optar por usar Redmine em seu dia a dia.
Facebook
Twitter
Instagram
LinkedIn
RSS