Atualizar o portal

Este procedimento descreve como fazer upgrade de um portal atual de serviços para desenvolvedores da Apigee (ou simplesmente o portal) de instalação no local.

Determine o procedimento de atualização correto

O procedimento usado para atualizar o portal é baseado na sua instalação atual:

Determinar o tipo de instalação atual

Se você não tiver certeza do seu tipo de instalação atual, use o seguinte comando para determinar:

  • ls /opt

    Se você estiver usando o Nginx/Postgres, verá os seguintes diretórios: /opt/apigee e /opt/nginx.

    Se você estiver usando Apache/MySQL ou Apache/MariaDB, esses diretórios não estarão presentes.

  • /opt/apigee/apigee-service/bin/apigee-all status

    Se você estiver usando Nginx/Postgres, verá a seguinte saída:

    + apigee-service
    apigee-drupal-devportal status
    OK: apigee-drupal-devportal is up and running
    + apigee-service apigee-lb status
    apigee-service: apigee-lb: OK
    + apigee-service apigee-postgresql status
    apigee-service: apigee-postgresql: OK
  • apachectl -S

    Se você estiver usando Apache/MySQL ou Apache/MariaDB, este comando retornará o diretório raiz da Web do portal, no formato:

    *:80
    192.168.56.102 (/etc/httpd/conf/vhosts/devportal.conf:1)

Diretório de instalação padrão

O processo de upgrade pressupõe que o portal foi instalado em:

  • 4.17.05 e mais recentes: /opt/apigee/apigee-drupal/wwwroot
  • Antes da versão 4.17.05: /opt/apigee/apigee-drupal (Nginx) ou /var/www/html (Apache)

Se você não instalou o portal no diretório padrão, modifique os caminhos no procedimento abaixo para usar o diretório de instalação.

Versões de upgrade compatíveis

Esse procedimento de upgrade é compatível com as versões do portal OPDK-17-01.x e mais recentes.

Para descobrir sua versão do portal, abra o seguinte URL em um navegador:

http://yourportal.com/buildInfo

Antes de atualizar

Nas instalações atuais, se você tiver modificado qualquer código no núcleo Drupal ou em módulos não personalizados, as modificações vão ser substituídas. Isso inclui, entre outras coisas, qualquer mudança que você tenha feito em .htaccess. Suponha que tudo fora do diretório /sites seja de propriedade do Drupal. Uma exceção a essa regra é robots.txt. Se esse arquivo existir na raiz da Web, ele será preservado para você.

Antes de continuar com a instalação, faça um backup de todo o diretório raiz da Web do Drupal. Depois de executar as etapas de instalação descritas abaixo, é possível restaurar as personalizações no backup.

Fazer upgrade de um portal usando RPMs

Para atualizar a RPM do portal em um nó:

  1. Mude para o diretório Drupal, /opt/apigee/apigee-drupal por padrão:
    cd /opt/apigee/apigee-drupal
  2. Faça backup da instância de banco de dados do Drupal. O comando pg_dump cria uma cópia do banco de dados:
    pg_dump --dbname=devportal --host=host_IP_address --username=drupaladmin
      --password --format=c > /tmp/portal.dmp

    Em que:

    • devportal é o nome do banco de dados, conforme especificado pela propriedade PG_NAME no arquivo de configuração de instalação do portal.
    • host_IP_address é o endereço IP do nó do portal.
    • drupaladmin é o nome de usuário do Postgres usado pelo portal para acessar o banco de dados, conforme especificado pela propriedade DRUPAL_PG_USER no arquivo de configuração de instalação do portal.

    A senha do usuário do Postgres será solicitada, conforme definido pela propriedade DRUPAL_PG_PASS no arquivo de configuração de instalação do portal.

    Se você quiser restaurar a partir do backup mais tarde, use o seguinte comando:

    pg_restore --clean --dbname=devportal --host=localhost  --username=apigee < /tmp/portal.dmp
  3. Faça um backup de todo o diretório raiz da Web do Drupal. O local de instalação padrão é /opt/apigee/apigee-drupal, mas você pode tê-lo alterado.

    Se você não souber o local desse diretório, use o comando drush status ou a entrada Configuration > Media > File no menu Drupal para determinar o local do sistema de arquivos público e do caminho do sistema de arquivos particular (para a próxima etapa).

  4. Faça um backup dos arquivos em /opt/apigee/data/apigee-drupal-devportal/private.
  5. Configure o Drupal para o modo de manutenção:
    1. Selecione Configuration no menu do Drupal.
    2. Na página Configuração, selecione Modo de manutenção em Desenvolvimento.
    3. Marque a caixa Colocar o site em modo de manutenção.
    4. Digite uma mensagem que os usuários veem durante a manutenção.
    5. Selecione Salvar configuração.
  6. Desative o SELinux conforme descrito em Instalar o utilitário de configuração da Apigee do Edge.
  7. Mude para o diretório /opt:
    cd /opt
  8. Para fazer upgrade em um servidor com conexão à Internet:
    1. Faça o download do arquivo bootstrap_4.19.06.sh do Edge 4.19.06 para /tmp/bootstrap_4.19.06.sh:
      curl https://software.apigee.com/bootstrap_4.19.06.sh -o /tmp/bootstrap_4.19.06.sh
    2. Instale o utilitário apigee-service e as dependências do Edge 4.19.06:
      sudo bash /tmp/bootstrap_4.19.06.sh apigeeuser=uName apigeepassword=pWord

      Em que uName e pWord são o nome de usuário e a senha que você recebeu da Apigee. Se você omitir o campo pWord, será necessário inseri-lo.

      Por padrão, o instalador verifica se você tem o Java 1.8 instalado. Você pode usar a opção "C" para continuar sem instalar o Java.

  9. Para fazer upgrade em um servidor sem conexão com a Internet:
    1. Crie um repositório 4.19.06 local, conforme descrito em Criar um repositório local da Apigee.
    2. Para instalar o apigee-service em um arquivo .tar:
      1. No nó com o repositório local, use o seguinte comando para empacotar o repositório local em um único arquivo .tar chamado /opt/apigee/data/apigee-mirror/apigee-4.19.06.tar.gz:
        /opt/apigee/apigee-service/bin/apigee-service apigee-mirror package
      2. Copie o arquivo .tar para o nó em que você quer atualizar o Edge. Por exemplo, copie-o para o diretório /tmp no novo nó.
      3. No novo nó, descompacte o arquivo no diretório /tmp:
        tar -xzf apigee-4.19.06.tar.gz

        Esse comando cria um novo diretório, chamado repos, no diretório que contém o arquivo .tar. Por exemplo, /tmp/repos.

      4. Instale o utilitário apigee-service do Edge e as dependências do /tmp/repos:
        sudo bash /tmp/repos/bootstrap_4.19.06.sh apigeeprotocol="file://" apigeerepobasepath=/tmp/repos

        Observe que você incluiu o caminho para o diretório de repositórios nesse comando.

    3. Para instalar o serviço da Apigee usando o servidor da Web Nginx:
      1. Configure o servidor da Web Nginx conforme descrito em "Instalar do repositório usando o servidor da Web Nginx" em Instalar o utilitário de configuração da Apigee Edge.
      2. No nó remoto, faça o download do arquivo bootstrap_4.19.06.sh do Edge para /tmp/bootstrap_4.19.06.sh:
        /usr/bin/curl http://uName:pWord@remoteRepo:3939/bootstrap_4.19.06.sh
          -o /tmp/bootstrap_4.19.06.sh

        Em que uName e pWord são o nome de usuário e a senha definidos acima para o repositório, e remoteRepo é o endereço IP ou nome DNS do nó do repo.

      3. No nó remoto, instale o utilitário apigee-service e as dependências do Edge:
        sudo bash /tmp/bootstrap_4.19.06.sh apigeerepohost=remoteRepo:3939
          apigeeuser=uName apigeepassword=pWord apigeeprotocol=http://

        Em que uName e pWord são o nome de usuário e a senha do repositório.

  10. Use apigee-service para atualizar o utilitário apigee-setup:
    /opt/apigee/apigee-service/bin/apigee-service apigee-setup update
  11. Execute o utilitário update no nó do Postgres:
    /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile

    Em que configFile é o arquivo de configuração usado para instalar o banco de dados Postgres. O único requisito do arquivo de configuração é que ele precisa estar acessível ou legível pelo usuário "apigee".

  12. Remova as RPMs do PHP, mas não as dependências de RPM do Apigee Drupal Devportal, executando o seguinte comando:
    rpm -ev --nodeps $(rpm -qa | grep php | awk '{printf "%s ", $1}')

    Este comando faz o seguinte:

    • rpm -ev --nodeps remove as RPMs, mas não as dependências delas.
    • rpm -qa cria a lista de RPMs a serem removidas.
    • grep php pesquisa todas as RPMs de PHP.
    • awk '{printf "%s ", $1}' imprime os nomes das RPM.
  13. Execute o utilitário update no seu nó para atualizar o portal:
    /opt/apigee/apigee-setup/bin/update.sh -c dp -f configFile

    Em que configFile é o arquivo de configuração usado para instalar o portal. O único requisito do arquivo de configuração é que ele precisa estar acessível ou legível pelo usuário "apigee".

  14. Execute o script update.php do Drupal abrindo o seguinte URL em uma janela do navegador:
    http://portal_IP_DNS:8079/update.php
  15. Desative o modo de manutenção:
    1. Selecione Configuration no menu do Drupal.
    2. Na página Configuração, selecione Modo de manutenção em Desenvolvimento.
    3. Desmarque a caixa Colocar o site em modo de manutenção.
    4. Selecione Salvar configuração.

Observe que o diretório raiz após a atualização é:

/opt/apigee/apigee-drupal/wwwroot

O upgrade foi concluído. Se o utilitário update da Apigee fez downgrade da sua versão do Drupal, talvez seja necessário executar novamente o utilitário de upgrade do Drupal. Para saber mais, consulte Executar novamente o upgrade do Drupal.

Executar novamente o upgrade do Drupal

Se executar o utilitário update da Apigee para fazer upgrade do Edge para nuvem privada resultar em downgrade da versão do Drupal, reinstale o upgrade do Drupal. Isso pode acontecer se você tiver feito upgrade apenas do Drupal entre as atualizações da nuvem privada.

Exemplo:

  1. Você estava executando a versão 4.18.05 do Edge para nuvem privada, que incluía o Drupal 7.59.
  2. Você fez upgrade do Drupal para a versão 7.64 devido a uma atualização de segurança necessária.
  3. Você está fazendo upgrade da nuvem privada para a versão 4.19.01, que inclui o Drupal 7.61.

Como esse caso ilustra, a versão do Drupal usada pelo utilitário update da Apigee pode não referenciar o upgrade mais recente do Drupal. Como resultado, agora é preciso executar novamente o upgrade do Drupal para retornar a instalação dele à versão mais recente.