Atualizar o portal

Neste procedimento, descrevemos como fazer upgrade de uma instalação local do portal Apigee Developer Services (ou simplesmente o portal).

Determinar o procedimento de atualização correto

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

Determinar seu tipo de instalação atual

Se você não tiver certeza sobre seu tipo de instalação atual, use o seguinte comando para determiná-lo:

  • ls /opt

    Se você estiver usando o Nginx/Postgres, os diretórios a seguir serão exibidos: /opt/apigee e /opt/nginx.

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

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

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

    + 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, esse comando retornará o diretório raiz da Web do portal no seguinte 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 versões 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 seu diretório de instalação.

Versões de upgrade compatíveis

Esse procedimento de upgrade tem suporte nas versões do portal OPDK-17-01.x e mais recentes.

Para determinar a versão do portal, abra o seguinte URL em um navegador:

http://yourportal.com/buildInfo

Antes da atualização

Para instalações atuais, se você tiver modificado qualquer código no Drupal Core ou em qualquer módulo não personalizado, suas modificações serão substituídas. Isso inclui, entre outras coisas, todas as mudanças que você fez em .htaccess. Considere que tudo fora do diretório /sites é 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 seguir as etapas de instalação descritas abaixo, você pode restaurar suas personalizações do backup.

Atualizar 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 sua instância do 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 da instalação do portal.

    Você vai receber uma solicitação para a senha do usuário do Postgres, conforme definido pela propriedade DRUPAL_PG_PASS no arquivo de configuração da instalação do portal.

    Se quiser restaurar o 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 ter mudado.

    Se você não tiver certeza do local desse diretório, use o comando drush status ou a entrada Configuration > Media > File no menu do 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. Definir o Drupal para o modo de manutenção:
    1. Selecione Configuração no menu do Drupal.
    2. Na página Configuração, selecione Modo de manutenção em Desenvolvimento.
    3. Selecione a caixa Colocar o site no modo de manutenção.
    4. Insira a mensagem que os usuários verão durante a manutenção.
    5. Selecione Salvar configuração.
  6. Desative o SELinux conforme descrito em Instalar o utilitário de configuração do Edge apigee-setup.
  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 pWord, será solicitado que você o insira.

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

  9. Para um upgrade em um servidor sem conexão com a Internet:
    1. Crie um repositório local 4.19.06 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 para o 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 e as dependências do Edge em /tmp/repos:
        sudo bash /tmp/repos/bootstrap_4.19.06.sh apigeeprotocol="file://" apigeerepobasepath=/tmp/repos

        Observe que você inclui o caminho para o diretório de repositórios neste comando.

    3. Para instalar o apigee-service usando o servidor da Web Nginx:
      1. Configure o servidor da Web Nginx conforme descrito em "Instalar do repositório usando o Nginx Webserver" em Instalar o utilitário apigee-setup do 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 que você definiu acima para o repositório, e remoteRepo é o endereço IP ou o nome DNS do nó do repositório.

      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 no arquivo de configuração é que ele seja acessível ou legível pelo usuário "apigee".

  12. Remova os RPMs do PHP, mas não as dependências do 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 os RPMs, mas não as dependências.
    • rpm -qa cria a lista de RPMs a serem removidas.
    • grep php pesquisa todas as RPMs do PHP.
    • awk '{printf "%s ", $1}' imprime os nomes dos RPMs.
  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 no arquivo de configuração é que ele precisa estar acessível ou legível para o usuário da "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 Configuração no menu do Drupal.
    2. Na página Configuration, selecione Maintenance mode em Development.
    3. Desmarque a caixa Colocar o site no modo de manutenção.
    4. Selecione Salvar configuração.

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

/opt/apigee/apigee-drupal/wwwroot

O upgrade foi concluído. Se o utilitário update do Apigee tiver rebaixado sua versão do Drupal, talvez seja necessário executar o utilitário de upgrade do Drupal novamente. Para mais informações, consulte Executar novamente o upgrade do Drupal.

Executar novamente o upgrade do Drupal

Se a execução do utilitário update do Apigee para fazer upgrade do Edge para nuvem privada resultar em um downgrade da sua versão do Drupal, reinstale o upgrade do Drupal. Isso pode acontecer se você atualizar apenas o Drupal entre as atualizações do Cloud particular.

Exemplo:

  1. Você estava executando a versão 4.18.05 do Edge for Private Cloud, 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 este caso ilustra, a versão do Drupal usada pelo utilitário update do Apigee pode não referenciar a atualização mais recente do Drupal. Como resultado, agora você precisa executar novamente o upgrade do Drupal para retornar a instalação do Drupal à versão mais recente.