A versão 4.18.05 do portal de serviços para desenvolvedores da Apigee (ou simplesmente o portal) não permite atualizar uma versão anterior do portal baseada em tar. Só é possível atualizar diretamente uma versão do portal baseada em RPM para a 4.18.05.
No entanto, é possível converter uma versão baseada em tar do portal em uma instância baseada em RPM 4.18.05 do portal. Como parte desse processo, você migra o MySQL/MariaDB do portal atual para um banco de dados Postgres. Depois de convertido, o portal permanece como um portal baseado em RPM.
É possível migrar muitas versões anteriores do portal baseado em tar para um portal baseado em RPM, incluindo as versões 4.16.09 e 4.17.01, não apenas a versão 4.17.05. O único requisito é que o portal esteja executando o Drupal 7 ou posterior. Para verificar sua 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 de alto nível que você usa para migrar de um portal baseado em tar para um portal baseado em RPM são:
- Instale a versão 4.18.05 baseada em RPM do portal em um novo nó.
- Crie um novo banco de dados Postgres no portal baseado em RPM.
- Migre o banco de dados do portal do portal baseado em tar.
- Copie todos os arquivos acessórios 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 do portal baseada em RPM usa a porta 8079 por padrão, enquanto a versão baseada em tar usa a porta 80. Use o número de 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 mudou de:
/opt/apigee/apigee-drupal
para:
/opt/apigee/apigee-drupal/wwwroot
Procedimento de conversão do portal
Para converter o portal em uma instalação baseada em RPM:
- Instale a versão 4.18.05 do portal baseada em RPM em um nó diferente do portal baseado em tar.
- No portal baseado 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:
- Faça login no psql:
psql -h localhost -p 5432 -U apigee
Insira a senha do Postgres, conforme definido pela propriedade PG_PWD no arquivo de configuração do portal.
- Crie um banco de dados do Postgres:
CREATE DATABASE newportaldb;
- Saia do psql:
\q
- Faça login no psql:
-
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} where name = 'apigee_account' AND type = 'module';"drush sql-query --db-prefix "DELETE from {system} where name = 'apigee_checklist' AND type = 'module';"drush sql-query --db-prefix "DELETE from {system} where name = 'apigee_sso_ui' AND type = 'module';" - No portal baseado em tar, instale e configure o módulo Migrator Drupal:
-
cd /tmp
-
wget https://ftp.drupal.org/files/projects/dbtng_migrator-7.x-1.4.tar.gz
-
gunzip /tmp/dbtng_migrator-7.x-1.4.tar.gz
-
tar -xvf /tmp/dbtng_migrator-7.x-1.4.tar --directory /var/www/html/sites/all/modules
- Faça login no portal como administrador.
- Selecione Modules no menu do Drupal.
- Ative o módulo DBTNG Migrator.
- Salve a configuração.
-
- No portal baseado em tar, edite
/var/www/html/sites/default/settings.phppara 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". Nomeie a nova configuração como "custom", como no exemplo a seguir:$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
hosteportespecificam o endereço IP e a porta do servidor do Postgres. O Postgres usa a porta 5432 para conexões. -
No portal baseado em tar, instale o driver do Postgres:
- Use o Yum para instalar o driver:
yum install php-pdo_pgsql
- Edite
/etc/php.inipara adicionar a seguinte linha em qualquer lugar do arquivo:extension=pgsql.so
- Reinicie o Apache:
service httpd restart
- Use o Yum para instalar o driver:
- No portal baseado em tar, migre o banco de dados do portal para o portal baseado em RPM:
- Faça login no portal como administrador.
- Selecione Structure->Migrator no menu do Drupal.
- Escolha o banco de dados de origem no portal baseado em tar,
default, e o banco de dados de destino,custom, com base no arquivosettings.phpmostrado acima. - Clique em Migrar. O banco de dados baseado em tar é migrado para o banco de dados baseado em RPM.
- Copie o diretório
sitesdo 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-os conforme necessário para sua instalação.- No portal baseado em tar, agrupe o diretório
/var/www/html/sites:cd /var/www/html/sites
tar -cvzf /tmp/sites.tar.gz . - Copie
/tmp/sites.tar.gzpara/opt/apigee/apigee-drupal/wwwroot/sitesno servidor baseado em RPM. - Desagrupar o diretório de sites, mas não substituir arquivos importantes.
- 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
- Faça backup do diretório
filesatual:sudo mv /opt/apigee/apigee-drupal/wwwroot/sites/default/files /opt/apigee/apigee-drupal/wwwroot/sites/default/files_old
- Faça backup do diretório
sitesatual:tar -cvzf /tmp/sites_old.tar.gz /opt/apigee/apigee-drupal/wwwroot/sites
- Descompacte o diretório
sitesdo servidor baseado em tar:gunzip /opt/apigee/apigee-drupal/wwwroot/sites/sites.tar.gz
tar -xvf /opt/apigee/apigee-drupal/wwwroot/sites/sites.tar - Verifique se os arquivos copiados têm a propriedade adequada:
chown -R apigee:apigee /opt/apigee/apigee-drupal/wwwroot/sites/
- Restaure 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
- Mover arquivos particulares para um 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/sites/default/files/privatechown -R apigee:apigee /opt/apigee/data/apigee-sap-drupal-devportal/private
- Faça backup do arquivo
- No portal baseado em tar, agrupe o diretório
- No portal baseado em tar, somente se você tiver alterado o caminho para o diretório raiz da Web
no portal baseado em tar do caminho padrão de /var/www/html: execute
drush statuse observe o caminhofilese o caminhoprivate files:cd /var/www/html
drush statusSe os arquivos/arquivos particulares não estiverem no diretório
sites, copie-os para o servidor baseado em RPM, conforme mostrado acima. - No portal baseado em RPM, atualize
/opt/apigee/apigee-drupal/wwwroot/sites/default/settings.phppara 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 settings.php:
$databases = array ( 'default' => array ( 'default' => array ( 'database' => 'newportaldb', 'username' => 'apigee', 'password' => 'postgres', 'host' => 'localhost', 'port' => '5432', 'driver' => 'pgsql', 'prefix' => '', ) ) );Em que
databaseespecifica o novo banco de dados que você criou,usernameepasswordsão definidos para o banco de dados personalizado no portal baseado em tar, eprefixestá vazio. - No portal baseado em RPM, a versão baseada em RPM do portal contém menos
módulos do 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.
- Instale o
missing_moduledo Drupal usado para detectar módulos ausentes:cd /opt/apigee/apigee-drupal/wwwroot
drush dl missing_moduledrush en missing_module - Faça login no portal baseado em RPM como administrador.
- Selecione Relatórios > Relatórios de status no menu do Drupal e verifique se há módulos ausentes.
- Use esse relatório para instalar os módulos que estão faltando ou use os seguintes comandos:
cd /opt/apigee/apigee-drupal/wwwroot
drush dl <moduleA> <moduleB> ...drush en <moduleA> <moduleB> ... - Depois de ativar todos os módulos, verifique se os arquivos pertencem ao usuário apigee:
chown -LR apigee:apigee /opt/apigee/apigee-drupal/wwwroot
Para mais informações sobre permissões do arquivo, consulte https://www.drupal.org/node/244924.
- Instale o
- No portal baseado em RPM, execute update.php em um navegador para remover erros
em módulos ausentes:
- Faça login no portal baseado em RPM como administrador.
- No navegador, acesse o seguinte URL:
http://portal_IP_or_DNS:8079/update.php
Em que portal_IP_or_DNS é o endereço IP ou o nome de domínio do portal baseado em RPM.
- Siga as instruções na tela.
- Atualize as entradas de DNS para que apontem para o novo portal baseado em RPM.
A versão do portal baseada em RPM usa a porta 8079 por padrão, enquanto a versão baseada em tar usa a porta 80. Use o número de 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.