Converter um portal com base no tar em um portal com base na RPM

Edge para nuvem privada v4.18.01

A versão 4.18.01 do portal de serviços para desenvolvedores não permite atualizar uma versão anterior baseada em tar do portal. Só é possível atualizar diretamente uma versão do portal baseada em RPM para 4.18.01.

No entanto, é possível converter uma versão baseada em tar do portal em uma instância do portal 4.18.01 baseada em RPM. Como parte desse processo, você migra o MySQL/MariaDB do portal atual para um banco de dados do Postgres. Após a conversão, seu portal continuará sendo baseado em RPM.

É possível migrar muitas versões anteriores do portal baseado em tar para um com base em RPM, incluindo as versões 4.16.09 e 4.17.01, não apenas a versão 4.17.05. Os únicos requisitos são que o portal esteja executando o Drupal 7 ou mais recente. Para verificar a versão do Drupal, selecione Relatórios > Relatórios de status no menu do Drupal. A versão do Drupal aparece na primeira linha da saída.

As etapas gerais que você usa para migrar de um portal baseado em tar para um baseado em RPM são:

  • Instale a versão 4.18.01 baseada em RPM do portal de serviços para desenvolvedores em um novo nó.
  • Crie um novo banco de dados do Postgres no portal baseado em RPM.
  • Migre o banco de dados do portal usando o portal baseado em tar.
  • Copie todos os arquivos complementares do portal baseado em tar para o portal baseado em RPM.
  • Atualize as entradas de DNS para apontar para o novo portal baseado em RPM.

    A versão baseada em RPM do portal usa a porta 8079 por padrão, enquanto a versão baseada em tar usa a porta 80. Use o número da porta correto na entrada DNS. Consulte Definir a porta HTTP usada pelo portal para informações sobre como usar uma porta diferente.

Novo diretório de instalação padrão após a conversão

Depois de atualizar uma instalação que agora usa o Nginx/Postgres, o diretório raiz foi alterado de:

/opt/apigee/apigee-drupal

entre outras:

/opt/apigee/apigee-drupal/wwwroot

Procedimento de conversão do portal

Para converter o portal em uma instalação baseada em RPM:

  1. Instale a versão 4.18.01 baseada em RPM do portal de serviços para desenvolvedores em um nó diferente do seu portal baseado em tar.
  2. No portal com base em RPM, crie um novo banco de dados do Postgres. Depois, você migra o banco de dados do portal baseado em tar para esse novo banco de dados:
    1. Faça login no AppSheet:
      >psql -h localhost -p 5432 -U apigee

      Digite sua senha do Postgres, conforme definido pela propriedade PG_PWD, no arquivo de configuração do portal.
    2. Crie um novo banco de dados Postgred:
      # CREATE DATABASE newportaldb;
    3. Saia do AppSheet:
      # \q
  3. No portal baseado em tar, remova os módulos antigos que não são mais usados:
    > cd /var/www/html
    > drush sql-query --db-prefix "DELETE from {system}, em que nome = 'apigee_account' AND type = 'module';"
    > drush sql-query'query'prefix "DELETE' = sql-query'prefix" DELETE = sql-query', bq_module

  4. No portal baseado em tar, instale e configure o módulo Migrator Drupal:

    1. cd /tmp
    2. wget https://ftp.drupal.org/files/projects/dbtng_migrator-7.x-1.4.tar.gz
    3. gunzip /tmp/dbtng_migrator-7.x-1.4.tar.gz
    4. tar -xvf /tmp/dbtng_migrator-7.x-1.4.tar --directory /var/www/html/sites/all/modules
    5. Faça login no portal como administrador.
    6. Selecione Modules no menu do Drupal.
    7. Ative o módulo DBTNG Migrator.
    8. Salve a configuração.
  5. No portal baseado em tar, edite /var/www/html/sites/default/settings.php para adicionar uma segunda configuração de banco de dados que aponte para o banco de dados recém-criado no portal baseado em RPM. A configuração atual do banco de dados é chamada de padrão. Dê um nome personalizado à sua nova configuração:
    $databases = array (
          'default' =>
          array (
            'default' =>
            array (
              'database' => 'devportal',
              'username' => 'devportal',
              'password' => 'devportal',
              'host' => 'localhost',
              'port' => '',
              'driver' => 'mysql',
              'prefix' => '',
            ),
          ),
          'custom' =>
          array (
            'default' =>
            array (
              'database' => 'newportaldb',
              'username' => 'apigee',
              'password' => 'postgres',
              'host' => '192.168.168.100',
              'port' => '5432',
              'driver' => 'pgsql',
              'prefix' => '',
            )
          )
        );

    em que host e port especificam o endereço IP e a porta do servidor Postgres. O Postgres usa a porta 5432 para conexões.
  6. No portal baseado em tar, instale o driver do Postgres:
    1. Use o Yum para instalar o driver:
      > yum install php-pdo_pgsql
    2. Edite /etc/php.ini para adicionar a seguinte linha em qualquer lugar do arquivo:
      extension=pgsql.so
    3. Reinicie o Apache:
      > service httpd restart
  7. No portal baseado em tar, migre o banco de dados do portal para o portal baseado em RPM:
    1. Faça login no portal como administrador.
    2. Selecione Structure -> Migrator no menu do Drupal.
    3. Escolha o banco de dados de origem no portal baseado em tar, default, e o banco de dados de destino, personalizado, com base no arquivo settings.php mostrado acima.
    4. Clique em Migrar. O banco de dados baseado em tar é migrado para o baseado em RPM.
  8. Copie o diretório sites do servidor baseado em tar para o servidor baseado em RPM.
    Os caminhos mostrados nas etapas a seguir são baseados em caminhos padrão. Modifique-as conforme necessário para a instalação.
    1. No portal baseado em tar, agrupe o diretório /var/www/html/sites em um pacote:
      > cd /var/www/html/sites
      > tar -cvzf /tmp/sites.tar.gz .
    2. Copie /tmp/sites.tar.gz para /opt/apigee/apigee-drupal/wwwroot/sites no servidor baseado em RPM.
    3. Desagrupar o diretório de sites, mas não substituir arquivos importantes.
      1. Faça backup do arquivo settings.php:
        > sudo cp /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.bak.php
      2. Fazer backup do diretório files atuais:
        > sudo mv /opt/apigee/apigee-drupal/wwwroot/sites/default/files /opt/apigee/apigee-drupal/wwwroot/sites/default/files_old
      3. Faça backup do diretório sites:
        > tar -cvzf /tmp/sites_old.tar.gz /opt/apigee/apigee-drupal/wwwroot/sites
      4. Descompacte e descompacte o diretório sites do servidor com base em tar:
        > gunzip /opt/apigee/apigee-drupal/wwwroot/sites/sites.tar.gz

        > tar -xvf /opt/apigee/apigee-drupal/wwwroot/sites/sites.tar
      5. Verifique se os arquivos copiados têm a propriedade adequada:
        > chown -R apigee:apigee /opt/apigee/apigee-drupal/wwwroot/sites/
      6. Restaurar o arquivo settings.php:
        > sudo cp /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.bak.php /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php
      7. Mover arquivos particulares para o novo local:
        > cp -r /opt/apigee/apigee-drupal/wwwroot/sites/default/files/private/* /opt/apigee/data/apigee-drupal-devportal/private

        > rm -rf /opt/apigee/apigee-drupal/wwwroot/apigee/apigee-private/rupd/private

  9. No portal baseado em tar, somente se você tiver mudado o caminho para o diretório raiz da Web nesse portal do caminho padrão de /var/www/html: execute drush status e confira o caminho files e private files:
    > cd /var/www/html
    > drush status


    Se os arquivos e os arquivos privados do servidor não estiverem no diretório RPM, como os arquivos que não estão no diretório RPM.
  10. No portal baseado em RPM, atualize /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php para definir as propriedades do banco de dados padrão:
    > vi /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php

    Defina a descrição do banco de dados padrão em banco de dados

    $databases = array (
          'default' =>
          array (
            'default' =>
            array (
              'database' => 'newportaldb',
              'username' => 'apigee',
              'password' => 'postgres',
              'host' => 'localhost', 'port' => '5432',
              'driver' => 'pgsql',
              'prefix' => '',
            )
          )
        );
  11. No portal com base em RPM, a versão baseada em RPM contém menos módulos Drupal do que a versão baseada em tar. Depois de migrar para o portal baseado em RPM, verifique se há módulos ausentes e instale-os conforme necessário.
    1. Instale o missing_module do Drupal usado para detectar módulos ausentes:
      > cd /opt/apigee/apigee-drupal/wwwroot
      > drush dl missing_module
      > drush en missing_module
    2. Faça login no portal baseado em RPM como administrador.
    3. Selecione Relatórios > Relatórios de status no menu Drupal e verifique se há módulos ausentes.
    4. Use esse relatório para instalar os módulos ausentes ou use os seguintes comandos:
      > cd /opt/apigee/apigee-drupal/wwwroot
      > drush dl <moduleA> <moduleB> ...
      > drush en <moduleA> <moduleB> ...
    5. Depois de ativar todos os módulos, confira se os arquivos são de propriedade do usuário da Apigee:
      > chown -LR apigee:apigee /opt/apigee/apigee-drupal/wwwroot

      Para mais informações sobre permissões de arquivos, consulte https://www.drupal.org/node/244924.
  12. No portal baseado em RPM, execute update.php em um navegador para remover erros nos módulos ausentes:
    1. Faça login no portal baseado em RPM como administrador.
    2. No navegador, acesse este URL:
      http://{portal_IP_or_DNS}:8079/update.php

      em que portal_IP_or_DNS é o endereço IP ou nome de domínio do portal baseado em RPM.
    3. Siga as instruções na tela.
  13. Atualize as entradas de DNS para apontar para seu novo portal baseado em RPM.

    A versão baseada em RPM do portal usa a porta 8079 por padrão, enquanto a versão baseada em tar usa a porta 80. Use o número da porta correto na entrada DNS. Consulte Definir a porta HTTP usada pelo portal para informações sobre como usar uma porta diferente.

A conversão foi concluída.