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:
- Se a instalação usa Nginx/Postgres, use Como fazer upgrade de um portal usando RPMs abaixo.
- Se a instalação usa o Apache/MySQL ou o Apache/MariaDB, consulte Converter um portal baseado em tar em um portal baseado em RPM.
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ó:
- Mude para o diretório Drupal,
/opt/apigee/apigee-drupal
por padrão:cd /opt/apigee/apigee-drupal
- 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
- devportal é o nome do banco de dados conforme especificado pela propriedade
- 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). - Faça um backup dos arquivos em
/opt/apigee/data/apigee-drupal-devportal/private
. - Definir o Drupal para o modo de manutenção:
- Selecione Configuração no menu do Drupal.
- Na página Configuração, selecione Modo de manutenção em Desenvolvimento.
- Selecione a caixa Colocar o site no modo de manutenção.
- Insira a mensagem que os usuários verão durante a manutenção.
- Selecione Salvar configuração.
- Desative o SELinux conforme descrito em Instalar o utilitário de configuração do Edge apigee-setup.
- Mude para o diretório
/opt
:cd /opt
- Para fazer upgrade em um servidor com conexão à Internet:
- 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
- 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.
- Faça o download do arquivo
- Para um upgrade em um servidor sem conexão com a Internet:
- Crie um repositório local 4.19.06 conforme descrito em Criar um repositório local da Apigee.
- Para instalar o apigee-service em um arquivo .tar:
- 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
- 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ó. - 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.
- 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.
- No nó com o repositório local, use o seguinte comando para empacotar o repositório
local em um único arquivo .tar chamado
- Para instalar o apigee-service usando o servidor da Web Nginx:
- 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.
- 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.
- 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.
- Use
apigee-service
para atualizar o utilitárioapigee-setup
:/opt/apigee/apigee-service/bin/apigee-service apigee-setup update
- 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".
- 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.
- 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".
- Execute o script
update.php
do Drupal abrindo o seguinte URL em uma janela do navegador:http://portal_IP_DNS:8079/update.php
- Desative o modo de manutenção:
- Selecione Configuração no menu do Drupal.
- Na página Configuration, selecione Maintenance mode em Development.
- Desmarque a caixa Colocar o site no modo de manutenção.
- 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:
- Você estava executando a versão 4.18.05 do Edge for Private Cloud, que incluía o Drupal 7.59.
- Você fez upgrade do Drupal para a versão 7.64 devido a uma atualização de segurança necessária.
- 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.