Tutoriais‎ > ‎Servidores Linux‎ > ‎

IceScrum

postado em 8 de out. de 2013 03:06 por Prof. Rodrigo Costa   [ 8 de out. de 2013 14:48 atualizado‎(s)‎ ]
A gerência de projetos é uma arte. No PMBOOK são descritas uma série de boas práticas para o gerenciamento de projetos. 

Contudo, existe uma realidade alternativa para o gerenciamento de projetos de forma ágil. O Scrum é um método ágil que é utilizado por grandes empresas como Microsoft, Google, Nokia, Siemens, e também, em várias empresas nacionais de  desenvolvimento em TI.

A visão geral desta ferramenta é mostrada na figura a seguir. 
fonte: http://alanbraz.wordpress.com/2011/05/17/precisa-se-de-projetos-scrum/
Fonte: http://alanbraz.files.wordpress.com

O projeto é iniciado a partir das especificações do Dono do Produto. Estas especificações compõem  uma lista de requisitos de todos os entregáveis, conhecido como o backlog do produto.  Através de uma reunião de planejamento de uma iteração trabalho (sprint), parte do backlog do produto é selecionado, definindo as atividades que serão desenvolvidas durante o sprint. Cada  sprint tem duração de 2 à 4 semanas e a cada dia tem-se uma reunião diária para replanejar  as atividades. Ao final do sprint, uma reunião acontece para apresentar as funcionalidades implementadas no sprint, discussões para alimentar o próximo sprint.

Existem diversas ferramentas para o gerenciamento de projetos ágil, a forma mais tradicional para isto é o KANBAN CARD WALL, geralmente fixado em uma parede onde todos os membros do projeto podem observá-lo e ter uma visão do andamento das atividades do projeto.

Esta forma de trabalho através de um KANBAN físico é ideal para equipes centralizadas que trabalham no mesmo ambiente, mas em equipes geograficamente distribuída, faz-se necessário o uso de ferramentas web que simulem o KANBAN e possibilitem o acesso da informação contida no KANBAN em qualquer lugar.
Existem várias ferramentas para tal, como:
  • ICESCRUM - http://www.icescrum.org/
  • Firescrum - http://sourceforge.net/projects/firescrum/
  • Digaboard - http://www.digaboard.net/
  • PPTS - http://ses-ppts.sourceforge.net/
Neste post serão descritos o passo a passo para instalação do ICESCRUM no ubuntu 13.04

ICESCRUM

O Icescrum (http://www.icescrum.org) é um aplicativo web open source desenvolvido em Grails/Java capaz de fornecer um ambiente para gerenciar os pilares do gerenciamento de projetos ágeis através do SCRUM:
  • Gerenciamento do Product Backlog: através do ICESCRUM podem ser cadastradas as os casos de uso do produto (user stories) e que formarão o conjunto de requisitos que serão posteriormente escolhidas
  • Gerenciamento da Sprint: uma parte do Product backlog é escolhida e a partir daí são definidas atividades que serão desenvovlvidas dentro da interação de trabalho
Um exemplo do funcionamento do Icescrum é mostrado na Figura a seguir

Ambiente de Implantação

Neste tutorial, o Icescrum foi instalado na versão 12.10 do Ubuntu Server 64bits. Como o Icescrum roda sobre um servidor de aplicação, é necessário instalar a Java, bem como algumas dependências de uso desta ferramenta.

 Instalando Pré-requisitos

Para rodar o icescrum deve-se ter instalado os seguintes pacotes
  • apache2: servidor http no linux
  • tomcat7: versão mais recente do servidor de aplicação baseado no apache2
  • openjdk-7: versão da máquina virtual java
  • mysql: banco de dados mysql para criação de usuários
  • unzip: para extrair o arquivo do icescrum baixado no site.
para instalação de todas estas dependências, chame o seguinte comando
$ sudo su
# apt-get install openjdk-7-jdk default-jdk tomcat7 apache2 libtomcat7-java mysql-server-5.5 mysql-client unzip

  Após a instalação de todos os pacotes é solicitada a senha de root do mysql

Neste momento, o usuário deve digitar a senha de root do mysql.

Para a utilização do icescrum, será criado o banco de dados e um usuário icescrum para acessar apenas o banco de dados criado.

$ mysql -u root -p
Enter password: <digite a senha de root do mysql>

Após a digitação da senha o usuário terá acesso ao gerenciamento do mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 43
Server version: 5.5.32-0ubuntu0.12.10.1 (Ubuntu)

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> CREATE DATABASE IF NOT EXISTS icescrum; GRANT ALL PRIVILEGES ON icescrum.* TO 'icescrum'@'localhost'IDENTIFIED BY 'senha do icescrum';
mysql> FLUSH PRIVILEGES;
mysql> quit;

Após a criação do banco de dados podemos dar continuidade fazendo algumas configurações importantes do tomcat7 para rodar o icescrum. Sabendo que as configurações do tomcat encontram-se na pasta  /var/lib/tomcat7/ é necessário modificar a forma de acesso do tomcat para uma compatível com o icescrum.
$ sudo su
# vim /var/lib/tomcat7/conf/server.xml

comente a linha 72 e insira uma nova configuração de conexão
<!--<Connector port="8080" protocol="HTTP/1.1"
            connectionTimeout="20000"
            URIEncoding="UTF-8"
            redirectPort="8443" />-->
<Connector port="8080"
           protocol="org.apache.coyote.http11.Http11NioProtocol"
           connectionTimeout="2000"
           maxThreads="500"
           URIEncoding="UTF-8"/>
obs: inserindo um texto entre <!-- --> faz com que uma parte do arquivo xml seja comentada. Inseri <!-- antes do <connector e um --> após o />
 
Depois disto, inseri algumas variáveis de ambiente diretamente na configuração do tomcat para tornar possível a devida configuração, bem como, funcionamento correto do Icescrum em questão de uso de memória. Para isto, chama-se o seguinte comando:
# vim /etc/default/tomcat7

No arquivo inseri as seguintes entradas
icescrum_config_location=/usr/share/tomcat7/icescrum/config.groovy

CATALINA_OPTS="-Dicescrum.log.dir=/usr/share/tomcat7/icescrum -Duser.timezone=UTC -Dicescrum_config_location=/usr/share/tomcat7/icescrum/config.groovy -Xmx512m -XX:MaxPermSize=256m"

Após isto, o tomcat7 está pronto para receber o icescrum.

Configurando o ICESCRUM

Antes de mais nada, é necessário configurar o icescrum. Uma coisa que o tutorial do site não fala é que devemos criar a pasta onde haverá as configurações, nem  passa ao usuário as configurações de forma intuitiva. Então vamos lá. 
# mkdir /usr/share/tomcat7/icescrum
# touch /usr/share/tomcat7/icescrum/config.groovy
# chown tomcat7.tomcat7 -R /usr/share/tomcat7/icescrum
# mkdir /home/icescrum
# chown tomcat7.tomcat7 -R /home/icescrum

Depois disto, é necessário editar o arquivo /usr/share/tomcat7/icescrum/config.groovy e colocar todas as configurações do icescrum.
icescrum.project.import.enable = true
icescrum.project.export.enable = true
icescrum.project.creation.enable = true
icescrum.project.private.enable = true

icescrum.gravatar.secure = false
icescrum.gravatar.enable = false
icescrum.registration.enable = true
icescrum.login.retrieve.enable = true

icescrum.auto_follow_productowner = true
icescrum.auto_follow_stakeholder  = true
icescrum.auto_follow_scrummaster  = true
icescrum.alerts.errors.to = "[email protected]"
icescrum.alerts.subject_prefix = "[icescrum]"
icescrum.alerts.enable = true
icescrum.alerts.default.from = "[email protected]"

grails.serverURL = "http://<ip do servidor>:8080/icescrum"
                   /* Changing the port will require to change
                     it in the Tomcat server.xml Connector*/
icescrum.debug.enable = false
icescrum.securitydebug.enable = false
icescrum.baseDir = "/home/icescrum"

icescrum.cors.enable = true  /* CORS is enabled by default
                                However, it's enabled only for projects
                                where web services are enabled */
icescrum.cors.allow.origin.regex = "*"  /* Use double backslash for escaping
                                           e.g. (http://|.+\.)mydomain\.com */

dataSource.dialect = "org.hibernate.dialect.MySQL5InnoDBDialect"
dataSource.driverClassName = "com.mysql.jdbc.Driver"
dataSource.url = "jdbc:mysql://localhost:3306/icescrum?useUnicode=true&characterEncoding=utf8"
dataSource.username = "icescrum"
dataSource.password = "password"
OBS: atente para configurar da forma correta os trechos de código em vermelho.

Depois disto, você pode baixar o icescrum através do comando.
# wget -c http://www.icescrum.org/downloads/icescrum_R6_9_war.zip

depois disto, extraia o arquivo através do comando
# unzip icescrum_R6_9_war.zip

depois disto, copie o arquivo extraído para a pasta webapps do tomcat. mas antes é altamente recomendável parar o tomcat
# service tomcat7 stop
# mv icescrum.war /var/lib/tomcat7/webapps
Para evitar problemas com o mysql-conector, copie da pasta do icescrum para a pasta do tomcat o mysql conector.
# cp /var/lib/tomcat7/webapps/icescrum/WEB-INF/lib/mysql-connector-java-5.1.18.jar /usr/share/tomcat7/lib/
e depois reinicie o tomcat
# service tomcat7 start


Depois disto, o tomcat faz a sua parte fazendo o deploy do icescrum, extraindo o arquivo war e iniciando o tomcat.

Para verificar o status do icescrum, configure o tomcat-users para verificar o webadmin do tomcat. Inserindo as seguintes linhas no arquivo /var/lib/tomcat7/conf/tomcat-users.xml na penúltima linha do arquivo.
<role rolename="manager-gui"/>
<user username="admin" password="pass" roles="manager-gui"/>

Ao fazer o login, você perceberá que o icescrum já está em execução
 

depois disto, é só chamá-lo através de http://ip_do_seu_servidor:8080/icescrum
Ao clicar em connect, vc vai ser guiado a tela de login e poderá criar seu usuário no sistema.


Por fim, para tornar transparente ao usuário o uso da porta 8080, basta ativar em seu apache2 o módulo proxy através do comando
# a2enmod a2enmod proxy proxy_http

depois disto, edite o arquivo de configuração padrão do apache2
# vim /etc/apache2/sites-available/default

e insira logo no início do <Virtualhost *:80>
ProxyRequests Off
ProxyPreserveHost On
ProxyStatus On
ProxyPass       /icescrum/         http://localhost:8080/icescrum/
ProxyPassReverse    /icescrum/         http://localhost:8080/icescrum/

Pronto, agora vc vai ter também o icescrum de forma transparente, sem chamar o :8080, assim, seu icescrum será acessível através do
http://ip_do_seu_servidor/icescrum

Comments