wiki:ExpressoTestCenter/environment

Instruções para Montar o Ambiente de Teste

OBS: Substituir o IP 172.16.9.136 pelo IP da máquina onde o ambiente está sendo instalado.

Pré-requisitos

  • Debian 5.0.4
  • Test Link 1.9beta4
  • Trac 0.11.7 com plugin xmlrpc-r8009

Instalar Debian 5.0.4 com os seguintes módulos

  • Base system
  • Web server

Instalar os seguintes pacotes usando apt-get install

  • ssh
  • unzip
  • php5
  • postgresql
  • php5-pgsql
  • php5-gd
  • php5-ldap
  • slapd
  • subversion
  • libapache2-svn
  • python-genshi
  • python-setuptools
  • python-subversion
  • python-psycopg
  • libapache2-mod-python
  • libapache2-mod-wsgi

Criar senha padrão do usuário postgres

    $ su postgres
    $ psql
    $ alter user postgres password 'postgres';
    $ exit

Preparar subversion para uso do Trac

    $ mkdir -p /services/svn/repositories
    $ svnadmin create /services/svn/repositories/trac
    $ chown -R www-data.www-data /services/svn/repositories
    $ find /services/svn/repositories/ -type d|xargs chmod g+sw

Criar arquivo /etc/apache2/subversion.conf com

    <Location /svn>
        DAV svn
        SVNParentPath /services/svn/repositories
    </Location>

Adicionar ao final do /etc/apache2/apache2.conf

    Include /etc/apache2/subversion.conf         

Copiar arquivos de instalação para maquina virtual

    $ scp testlink-1.9beta4.zip Trac-0.11.7.tar.gz xmlrpcplugin-r8009.zip root@172.16.9.137:/tmp

Descompactar arquivos no /tmp da maquina virtual

    $ unzip testlink-1.9beta4.zip
    $ tar zxvf Trac-0.11.7.tar.gz
    $ unzip xmlrpcplugin-r8009.zip

Renomear diretorio do testlink e copiar para diretório do apache

    $ mv testlink-1.9beta4 testlink
    $ mv testlink /var/www
    $ chmod 777 -R /var/www/testlink
    $ apachectl restart

Instalação do Trac

    $ cd /tmp/Trac-0.11.7
    $ python ./setup.py install
    $ mkdir -p /services/trac/projects
    $ trac-admin /services/trac/projects/expresso initenv
        Project Name: Expresso
        Database Connection: <deixar o default: sqlite:db/trac.db]
        Repository: svn
        Path repository: /services/svn/repositories/trac
    $ chown -R www-data.www-data /services/trac/
    $ find /services/trac/ -type d|xargs chmod g+sw
    $ htpasswd -cm /services/trac/projects/expresso/.htpasswd admin
    $ trac-admin /services/trac/projects/expresso/
        permission add admin TRAC_ADMIN
        quit

Testar trac modo stand-alone

    $ tracd --port 8000 /services/trac/projects/expresso

Criar arquivo /etc/apache2/trac.conf com o seguinte conteúdo

    <Location /trac>
        SetHandler mod_python
        PythonInterpreter main_interpreter
        PythonHandler trac.web.modpython_frontend
        PythonOption PYTHON_EGG_CACHE /tmp/python_egg_cache
        PythonOption TracUriRoot /trac
        PythonOption TracEnvParentDir /services/trac/projects/
        AuthType Basic
        AuthName "trac-expresso"
        AuthUserFile /services/trac/projects/expresso/.htpasswd
        Require valid-user
    </Location>

Adicionar ao final do /etc/apache2/apache2.conf

    Include /etc/apache2/trac.conf         

Instalar plugin XMLRPC

    $ cd /tmp/xmlrpcplugin/trunk
    $ python setup.py bdist_egg
    $ cp dist/*.egg /services/trac/projects/expresso/plugins/
  1. Editar arquivo /services/trac/projects/expresso/conf/trac.ini e adicionar ao seu final:
    [components]
    tracrpc.* = enabled
  1. Reiniciar apache
    $ apachectl restart
  1. Acessar Trac
    1.  http://172.16.9.136/trac
    2. Entrar com usuário/senha criado com o comando htpasswd no passo 4
    3. Escolher projeto Expresso
    4. Clicar em Admin
    5. Selecionar Permissions
    6. Na seção "Grant Permission" colocar as informações e clicar em Add
      1. Subject: anonymous
      2. Action: XML_RPC

Abrir browser apontando para host da maquina virtual

  1.  http://172.16.9.136/testlink
  2. Selecionar "New instalation"
  3. Aceitar a licença de uso
  4. Verificação da instalação dos pré-requisitos
  5. Preencher formulário para escolha do BD com os seguintes dados:
    1. Type: Postgres
    2. Host: localhost
    3. Database name: testlinkdb
    4. Table prefix: <deixar em branco>
    5. Database admin login: postgres
    6. Database admin password: postgres
    7. Testlink db login: testlink
    8. Testlink db password: testlink
  6. Verificação da instalação - deve estar tudo OK nesse ponto
    1.  http://172.16.9.136/testlink e logar com admin/admin

Integração com o Trac

  1. Editar /var/www/testlink/cfg/trac.cfg.php colocando as seguintes informações:
    /** Trac Project Root */
    define('BUG_TRACK_DB_HOST', 'http://172.16.9.137/trac/');

    define('BUG_TRACK_XMLRPC_HOST', 'http://admin:admin@172.16.9.137');

    /** @var array Mapping TL test project name vs trac project url */
    $g_interface_bugs_project_name_mapping = array(
        'Expresso' => 'expresso',
    );
  1. Criar arquivo /var/www/testlink/custom_config.inc.php com o seguinte conteúdo:
    <?php
        $g_interface_bugs = 'TRAC';
    ?>
  1. Editar arquivo /var/www/testlink/lib/bugtracking/int_trac.php e substituir
    $this->xmlrpcClient = new IXR_Client($this->dbHost . '/xmlrpc');

por

    $this->xmlrpcClient = new IXR_Client(BUG_TRACK_XMLRPC_HOST);
  1. Editar arquivo /var/www/testlink/third_party/xml-rpc/class-IXR.php e adicionar as linhas marcadas com "-->":
function query() {
    $args = func_get_args();
    $method = array_shift($args);
    $request = new IXR_Request($method, $args);
    $length = $request->getLength();
    $xml = $request->getXml();
    $r = "\r\n";
-->    $credentials = "";
-->    if ($this->user != "") {
-->        $credentials = base64_encode($this->user . ":" . $this->pass);
-->    }
    $request = "POST {$this->path} HTTP/1.0$r";
    $request .= "Host: {$this->server}$r";
-->    if ($credentials != "") {
-->        $request .= "Authorization: Basic {$credentials}$r";
-->    }

    function IXR_Client($server, $path = false, $port = 80, $timeout = false) {
        if (!$path) {
            // Assume we have been given a URL instead
            $bits = parse_url($server);
            $this->server = $bits['host'];
            $this->port = isset($bits['port']) ? $bits['port'] : 80;
-->            $this->user = isset($bits['user']) ? $bits['user'] : '';
-->            $this->pass = isset($bits['pass']) ? $bits['pass'] : '';

Referências


Última atualização: 29-Set-2010