wiki:ExpressoTestCenter/environment

Version 3 (modified by luiz-fernando, 14 years ago) (diff)

--

Estou realizando os passos abaixo apenas para validar a ideia inicial do ambiente. Para isso criei uma máquina virtual e partindo de uma instalação básica do Debian 5.0.4 estou usando o seguinte roteiro:

Pré-requisitos

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

Instalar Debian 5.0.4 em uma maquina virtual 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 Testlink

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 em negrito:
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'] : '';

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


1.22 SSL cd /etc/ssl/private openssl genrsa -des3 -out debby.key 1024 1.22.1 entrar senha e confirmar

1.23 cd /etc/ssl/certs openssl req -new -x509 -days 365 -key ../private/debby.key -out debby.crt 1.23.1 entrar senha do passo anterior 1.23.2 Country Name: BR 1.23.3 Province: RS 1.23.4 Locality name: POA 1.23.5 Organization name: Serpro 1.23.6 Organizational Unit Name: unit 1.23.7 Common Name: admin 1.23.8 Email: admin@…

1.24 cd /etc/ssl/private cp debby.key debby.key.org openssl rsa -in debby.key.org -out debby.key -> entrar senha do passo anterior chmod 400 debby.key debby.key.org

1.25 cd /etc/apache2/mods-enabled/ ln -s ../mods-available/ssl.load ln -s ../mods-available/ssl.conf

1.26 Editar ports.conf e comentar linhas abaixo: #NameVirtualHost? *:443 #Listen 443

1.27 Criar arquivo /etc/apache2/ssl.conf com: <VirtualHost? _default_>

DocumentRoot? "/var/www" SSLEngine on SSLCertificateFile /etc/ssl/certs/debby.crt SSLCertificateKeyFile /etc/ssl/private/debby.key

</VirtualHost?> 1.27.1 Adicionar ao final do /etc/apache2/apache2.conf

Include /etc/apache2/ssl.conf

1.28 mkdir -p /services/apache/debby/html

1.30 Editar ssl.conf: <VirtualHost? _default_>

<Location />

AuthType? Basic AuthName? "Requires authentication" AuthUserFile? /services/apache/debby/htpasswd Require valid-user

</Location>

DocumentRoot? "/services/apache/debby/html" SSLEngine on SSLCertificateFile /etc/ssl/certs/debby.crt SSLCertificateKeyFile /etc/ssl/private/debby.key

</VirtualHost?>


DICAS: 1.1 Editar arquivo /etc/apt/sources.list e descomentar linha abaixo:

deb  http://ftp.br.debian.org/debian/ lenny main


Referências:


1. Instalação padrão debian 5.0.4 em uma maquina virtual (base system + web server - GUI)

1.1 Editar arquivo /etc/apt/sources.list e descomentar linha abaixo:

   deb http://ftp.br.debian.org/debian/ lenny main

1.2 Instalar ssh: apt-get install ssh

1.3 Instalar unzip: apt-get install unzip
1.4 Instalar php5: apt-get install php5
1.5 Instalar postgresql: apt-get install postgresql
1.5.1 Criar senha padrão do usuário postgres:
   # su postgres
   # psql
   # alter user postgres password 'postgres';

1.6 Instalar php5-postgresql: apt-get install php5-pgsql
1.7 Instalar php5-gd: apt-get install php5-gd
1.8 Instalar open ldap: apt-get install slapd
1.9 Instalar php5-ldap: apt-get install php5-ldap
1.10 Instalar subversion: apt-get install subversion
1.11 Instalar libapache2-svn: apt-get install libapache2-svn
1.12 Instalar python-genshi: apt-get install python-genshi
1.13 Instalar python-setuptools: apt-get install python-setuptools
1.14 Instalar python-subversion: apt-get install python-subversion
1.15 Instalar python-psycopg: apt-get install python-psycopg
1.16 Instalar libapache2-mod-python: apt-get install libapache2-mod-python
1.17 Instalar libapache2-mod-wsgi: apt-get install libapache2-mod-wsgi

1.18  mkdir -p /services/svn/repositories
1.19  svnadmin create /services/svn/repositories/trac
1.20  chown -R www-data.www-data /services/svn/repositories
      find /services/svn/repositories/ -type d|xargs chmod g+sw
1.21 Criar arquivo /etc/apache2/subversion.conf com:
<Location /svn>
    DAV svn
    SVNParentPath /services/svn/repositories
</Location>
1.21.1 Adicionar ao final do /etc/apache2/apache2.conf
  Include /etc/apache2/subversion.conf         

1.22 SSL
cd /etc/ssl/private
openssl genrsa -des3 -out debby.key 1024
1.22.1 entrar senha e confirmar

1.23 cd /etc/ssl/certs
openssl req -new -x509 -days 365 -key ../private/debby.key -out debby.crt
1.23.1 entrar senha do passo anterior
1.23.2 Country Name: BR
1.23.3 Province: RS
1.23.4 Locality name: POA
1.23.5 Organization name: Serpro
1.23.6 Organizational Unit Name: unit
1.23.7 Common Name: admin
1.23.8 Email: admin@sepro.gov.br

1.24 cd /etc/ssl/private
cp debby.key debby.key.org
openssl rsa -in debby.key.org -out debby.key
-> entrar senha do passo anterior
chmod 400 debby.key debby.key.org

1.25 cd /etc/apache2/mods-enabled/
ln -s ../mods-available/ssl.load
ln -s ../mods-available/ssl.conf

1.26 Editar ports.conf e comentar linhas abaixo:
#NameVirtualHost *:443
#Listen 443

1.27 Criar arquivo /etc/apache2/ssl.conf com:
<VirtualHost _default_>
    DocumentRoot "/var/www"
    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/debby.crt
    SSLCertificateKeyFile /etc/ssl/private/debby.key
</VirtualHost>
1.27.1 Adicionar ao final do /etc/apache2/apache2.conf
  Include /etc/apache2/ssl.conf         

1.28 mkdir -p /services/apache/debby/html


1.30 Editar ssl.conf:
<VirtualHost _default_>
    <Location />
        AuthType Basic
        AuthName "Requires authentication"
        AuthUserFile /services/apache/debby/htpasswd
        Require valid-user
    </Location>

    DocumentRoot "/services/apache/debby/html"
    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/debby.crt
    SSLCertificateKeyFile /etc/ssl/private/debby.key
</VirtualHost>

1.31 htpasswd -m /services/apache/debby/htpasswd admin
trac-admin /var/www/trac/expresso/
permission add admin TRAC_ADMIN

2. Copiar testlink para maquina virtual

   scp testlink-1.9beta4.zip root@172.16.9.136:/tmp

2.1 Descompactar arquivo no /tmp da maquina virtual

2.2 Renomear diretorio para testlink

2.3 Mover diretorio testlink para /var/www

2.4 Mudar permissoes dos diretorios em /var/www/testlink:

# chmod 777 -R /var/www/testlink

2.5 Reiniciar apache

# apachectl restart

2.6 Abrir browser apontando para host da maquina virtual: http://172.16.9.136/testlink

2.6.1 Selecionar "New instalation"
2.6.2 Aceitar a licença de uso
2.6.3 Verificação da instalação dos pré-requisitos
2.6.4 Escolhendo BD
2.6.4.1 Type: Postgres
2.6.4.2 Host: localhost
2.6.4.3 Database name: testlinkdb
2.6.4.4 Table prefix: <deixar em branco>
2.6.4.5 database admin login: postgres
2.6.4.6 database admin password: postgres
2.6.4.7 testlink db login: testlink
2.6.4.8 testlink db password: testlink
2.6.5 Verificação da instalação - deve estar tudo OK nesse ponto

2.7 Abrir novamente browser apontando para host da maquina virtual: http://172.16.9.136/testlink e entrar usando admin/admin

3. Copiar trac para maquina virtual

   scp Trac-0.11.7.tar.gz root@172.16.9.136:/tmp

3.1 Descompactar arquivo no /tmp da maquina virtual

3.2 $ python ./setup.py install
mkdir /var/www/trac
3.3 trac-admin /var/www/trac/expresso initenv
chown -R www-data.www-data /var/www/trac
find /var/www/trac -type d|xargs chmod g+sw
3.3.1 Project Name: Expresso
3.3.2 Database Connection: <deixar o default: sqlite:db/trac.db]
3.3.3 Repository: svn
3.3.4 Path repository: /services/svn/repositories/trac

3.4 Testar trac
3.4.1 tracd --port 8000 /var/www/trac/expresso

3.5 Criar arquivo trac.conf em /etc/apache2 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 /var/www/trac
</Location>

3.5.1 Adicionar ao final do /etc/apache2/apache2.conf
  Include /etc/apache2/trac.conf         

3.6 Testar http://172.16.9.136/trac e escolher expresso