No caso de um erro durante uma atualização para o Edge 4.16.09, é possível reverter o componente que causou o erro e tentar a atualização novamente. Por exemplo, se a atualização para o Postgres 9.4 falhar, será possível reverter apenas os nós do Postgres e tentar a atualização novamente.
Há dois cenários em que você pode querer realizar uma reversão:
- Reverter para uma versão mais antiga. Por exemplo, da versão 4.16.09 para a 4.16.05.
- Reverter para uma versão mais antiga na mesma versão.
Use o procedimento abaixo para realizar uma reversão nos dois cenários.
Quem pode realizar a reversão
O usuário que realiza a reversão precisa ser o mesmo que atualizou o Edge originalmente ou um usuário que esteja executando como raiz.
Por padrão, os componentes do Edge são executados como o usuário "apigee". Em alguns casos, é possível que você esteja executando componentes do Edge como usuários diferentes. Por exemplo, se o roteador precisar acessar portas privilegiadas, como as abaixo de 1000, será necessário executá-lo como raiz ou como um usuário com acesso a essas portas. Ou você pode executar um componente como um usuário e outro componente como outro usuário.
Quais componentes podem ser revertidos
Esteja ciente das seguintes condições ao realizar uma reversão:
- Os cinco componentes do Edge listados abaixo compartilham um código comum. Portanto, para reverter qualquer um dos
cinco componentes em um nó, é necessário reverter qualquer um dos cinco instalados no nó. Por
exemplo, se você tiver o servidor de gerenciamento, o roteador e o processador de mensagens instalados no
nó, para reverter qualquer um deles, será necessário reverter os três.
Os cinco componentes que compartilham código são:- Servidor de gerenciamento
- Roteador
- processador de mensagens
- Servidor Qpid
- Servidor Postgres
- Se você estiver atualizando do Edge 4.16.01, não reverta o Cassandra. Esta versão do Edge contém uma versão atualizada do Cassandra. Se você reverter algum componente, deixe o Cassandra na versão 4.16.09.
- Esta versão não contém uma nova versão do qpidd. Portanto, não é necessário reverter o qpidd.
Reversão da versão 4.16.09
Esta seção contém o procedimento para reverter o Edge 4.16.09 para uma versão anterior. Esta seção é dividida em duas partes:
- Como reverter a atualização do Postgres para a versão 9.4
A parte final de cada procedimento de atualização é atualizar os nós do Postgres para a versão 9.4. Se essa atualização falhar, use este procedimento para revertê-la. - Como reverter todos os outros componentes do Edge
Use este procedimento para reverter qualquer outro componente do Edge.
Para reverter a atualização do Postgres 9.4
Para reverter a atualização do Postgres ao atualizar o Postgres em uma configuração de mestre-espera, você:
- Promova o novo nó de espera para se tornar o mestre do Postgres. O novo mestre do Postgres será da mesma versão da instalação anterior do Edge.
- Configure o nó em espera antigo para ser um nó em espera do novo mestre. O nó de espera antigo será da mesma versão da instalação anterior do Edge.
- Registre os novos nós mestre e em espera com os grupos de análise e de consumidores.
Quando você terminar a reversão, o nó mestre antigo não será mais necessário. Em seguida, desative o nó mestre antigo.
- Verifique se o novo nó de espera do Postgres está em execução:
> /opt/apigee/apigee-service/bin/apigee-all status
Se o Postgres não estiver em execução, inicie-o:
> /opt/apigee/apigee-service/bin/apigee-all start - Verifique se o Postgres está interrompido no nó mestre antigo e no nó de espera antigo:
> /opt/apigee/apigee-service/bin/apigee-all status
Se o Postgres estiver em execução, interrompa-o:
> /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
> /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop - Se instalado, inicie o Qpid no nó de espera antigo:
> /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server start
Observação: em muitas configurações, o nó de espera antigo hospedará apenas o Postgres, mas não o Qpid. - Promova o novo nó de espera como o mestre do Postgres:
- Promova o novo nó de espera para ser o novo mestre:
> apigee-service apigee-postgresql promote-standby-to-master new_standby_IP
Se solicitado, digite a senha do Postgres para o usuário "apigee", que é padronizada como "postgres". - Edite o arquivo de configuração usado para instalar a versão atual do Edge para especificar
o seguinte:
# Endereço IP do novo mestre:
PG_MASTER=new_standby_IP
# Endereço IP do nó antigo em espera
PG_STANDBY=old_standby_IP - Configure o novo mestre:
> /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFile
- Promova o novo nó de espera para ser o novo mestre:
- Recrie o nó em espera antigo:
- Edite o arquivo de configuração usado para instalar a versão atual do Edge para especificar
o seguinte:
# Endereço IP do novo mestre:
PG_MASTER=new_standby_IP
# Endereço IP do nó antigo em espera
PG_STANDBY=old_standby_IP - Remova o diretório de dados no nó de espera antigo:
> cd /opt/apigee/data/apigee-postgresql/pgdata
> rm -rf * - Reconfigure o nó em espera antigo para ser um nó em espera do novo mestre:
> /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile - Verifique se o Postgres está em execução no nó de espera antigo:
> /opt/apigee/apigee-service/bin/apigee-all status
Se não estiver em execução, inicie-o:
> /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server start
- Edite o arquivo de configuração usado para instalar a versão atual do Edge para especificar
o seguinte:
- Verifique se o novo nó de espera foi adicionado visualizando o arquivo /opt/apigee/apigee-postgresql/conf/pg_hba.conf no novo mestre.
- Para ver as informações atuais do grupo de análise e de consumidores, execute o seguinte comando
no servidor de gerenciamento:
> curl -u sysAdminEmail:password http://<ms_IP>:8080/v1/analytics/groups/ax
Esse comando retorna o nome do grupo de análise no campo name e o nome do grupo de consumidores no campo name em consumer-groups. Ele também retorna os UUIDs dos nós mestre e de espera antigos do Postgres no campo postgres-server e no campo datastores. Você vai ver a saída no formato:
{
"name" : "axgroup-001",
"properties" : {
},
"scopes" : [ "VALIDATE~test", "sgilson~prod" ],
"uuids" : {
"qpid-server" : [ "8381a053-433f-4382-bd2a-100fd37a1592", "4b6856ec-ef05-498f-bac6-ef5f0d5f6521" ],
"postgres-server" : [ "ab1158bd-1d59-4e2a-9c95-24cc2cfa6edc:27f90844-efab-4b32-8a23-8f85cdc9a256" ]
},
"consumer-groups" : [ {
"name" : "consumer-group-001",
"consumers" : [ "8381a053-433f-4382-bd2a-100fd37a1592", "4b6856ec-ef05-498f-bac6-ef5f0d5f6521" ],
"datastores" : [ "ab1158bd-1d59-4e2a-9c95-24cc2cfa6edc:27f90844-efab-4b32-8a23-8f85cdc9a256" ],
"properties" : { }
} ],
"data-processors" : {
}
} - Para ver o endereço UUID do mestre antigo, execute o seguinte comando cURL no nó mestre antigo:
> curl -u sysAdminEmail:password http://<node_IP>:8084/v1/servers/self
O UUID do nó será exibido no final da saída, no formato:
"type" : [ "postgres-server" ],
"uUID" : "599e8ebf-5d69-4ae4-aa71-154970a8ec75"
Observação: o serviço edge-postgres-server precisa estar em execução. Se o servidor Postgres não estiver em execução, execute o seguinte comando no servidor de gerenciamento para determinar o UUID:
> curl -u sysAdminEmail:password http://<ms_IP>:8080/v1/servers?pod=analytics
A saída desse comando lista o UUID do endereço IP de cada nó do Postres. - Repita a etapa anterior para receber os endereços IP do nó de espera antigo e do novo mestre.
- Remova os nós mestre e de espera antigos do grupo de consumidores:
> curl -u sysAdminEmail:password -X DELETE "http://<ms_IP>:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/datastores/masterUUID,standbyUUID" -v
em que axgroup-001 e consumer-group-001 são os nomes padrão dos grupos de análise e de consumidores. masterUUID,standbyUUID estão na mesma ordem em que apareceram acima quando você visualizou as informações atuais de análise e grupo de consumidores acima. Talvez seja necessário especificá-los como standbyUUID,masterUUID.
A propriedade datastores de consumer-groups agora deve estar vazia. - Remova os nós mestre e de espera antigos do grupo de análise:
> curl -u sysAdminEmail:password -X DELETE "http://<ms_IP>:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=masterUUID,standbyUUID&type=postgres-server" -v
A propriedade postgres-server em uuids agora precisa estar vazia. - Registre novos nós mestre e de espera do PG com os grupos de análise e de consumidores:
> curl -u sysAdminEmail:password -X POST -H "Content-Type: application/json" -d '' "http://<ms_IP>:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=masterUUID,standbyUUID&type=postgres-server" -v
> curl -u sysAdminEmail:password -X POST -H "Content-Type: application/json" -d '' "http://<ms_IP>:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/datastores?uuid=masterUUID,standbyUUID" -v - Valide o grupo de análise:
> curl -u sysAdminEmail:password http://<ms_IP>:8080/v1/analytics/groups/ax
Você verá os UUIDs dos novos nós mestre e em espera listados no grupo de análise e no grupo de consumidores. - Reinicie o servidor de gerenciamento do Edge:
> /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart - Reinicie todos os servidores Qpid:
> /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart - Reinicie todos os servidores do Postgres:
> /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart - Verifique o status da replicação emitindo os seguintes scripts nos dois servidores. O sistema
precisa exibir resultados idênticos nos dois servidores para garantir uma replicação bem-sucedida:
No novo mestre, execute:
> /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
Confirme se ele é o mestre.
No nó em espera antigo:
> /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby
Confirme se ele está em espera. - Repita a etapa anterior depois de fazer várias solicitações de API para garantir que os nós estejam sincronizados.
- Desative o mestre antigo do Postgres usando o procedimento em Atualizar o Apigee Edge para 4.16.09.
Observação: se o nó mestre antigo estava executando o Qpid, você pode deixar esse servidor ativo para executar o Qpid. Verifique se ele está em execução. Se não estiver, inicie-o:
> /opt/apigee/apigee-service/bin/apigee-service edge-management-server start
Como alternativa, é possível desinstalar o Qpid do mestre antigo e instalá-lo no novo nó mestre, conforme descrito abaixo. Depois de desinstalar o Qpid, é possível desativar o nó mestre antigo.
Desinstale o Qpid do mestre antigo e instale o Qpid no novo mestre.
Use o procedimento a seguir para desinstalar o Qpid do mestre antigo e instalá-lo no novo mestre:
- Bloqueie o acesso à porta 5672 do Qpid no mestre antigo pelo acesso dos processadores de mensagens
executando o seguinte comando em todos os processadores de mensagens:
> iptables -A OUTPUT -p tcp -d 10.233.147.20 --dport 5672 -j DROP - Verifique se a fila de mensagens do Qpid está vazia executando o comando a seguir. Não é possível
desinstalar o Qpid até que ele tenha processado todas as mensagens pendentes:
> qpid-stat -q
Esse comando exibe uma tabela com uma contagem de msg, msgIn e msgOut. Todas as mensagens terão sido processadas quando msg=0 e msgIn=msgOut. - Determine o UUID do servidor Qpid no mestre antigo executando o seguinte comando no
mestre antigo. Salve estas informações para usar mais tarde no procedimento:
> curl -u sysAdminEmail:password http://<node_IP>::8083/v1/servers/self - Interrompa o Qpid no mestre antigo:
> /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
> /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd stop - Desinstale o servidor Qpid:
> /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server uninstall
> /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd uninstall - Remova o servidor Qpid antigo dos grupos de análise e de consumidores:
> curl -u sysAdminEmail:password -X DELETE -H "Content-Type: application/json" -d '' "http://<ms_IP>:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/consumers/qpid_UUID" -v
> curl -u sysAdminEmail:password -X DELETE "http://<ms_IP>:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=qpid_UUID&type=qpid-server" -v - Remova o servidor Qpid antigo do ZooKeeper:
> curl -u sysAdminEmail:password -X DELETE http://<ms_IP>:8080/v1/servers/qpid_UUID - Instale o Qpid no novo mestre:
> /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile - Determine o UUID do servidor Qpid no novo mestre executando o seguinte comando no
novo mestre. Salve estas informações para usar mais tarde no procedimento:
> curl -u sysAdminEmail:password http://<node_IP>::8083/v1/servers/self - Registre o novo servidor Qpid com os grupos de análise e de consumidores:
> curl -u sysAdminEmail:password -X POST -H "Content-Type: application/json" -d '' "http://<ms_IP>:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=qpid_UUID&type=qpid-server" -v
> curl -u sysAdminEmail:password -X POST -H "Content-Type: application/json" -d '' "http://<ms_IP>:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/consumers?uuid=qpid_UUID" -v - Reinicie todos os processadores de mensagens:
> /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart - Execute o seguinte comando no novo servidor Qpid para verificar se as filas foram criadas:
> qpid-stat -q
Verifique se msg, msgIn e msgOut estão sendo atualizados à medida que o servidor Qpid processa as mensagens.
Para reverter componentes individuais da versão 4.16.09:
Como parte da reversão, é necessário fazer o download do arquivo bootstrap.sh para sua versão atual do Edge:
- Para reverter para a versão 4.16.05, faça o download de bootstrap_4.16.05.sh
- Para reverter para a versão 4.16.01, faça o download de bootstrap.sh
Para cada nó que hospeda um componente a ser revertido:
- Interrompa o componente para fazer a reversão:
-
Se você estiver revertendo qualquer um dos seguintes componentes no nó, será necessário
interromper todos eles: servidor de gerenciamento, roteador, processador de mensagens, servidor Qpid ou servidor
Postgres:
- > apigee-service edge-management-server stop
- > apigee-service edge-router stop
- > apigee-service edge-message-processor stop
- > apigee-service edge-qpid-server stop
- > apigee-service edge-postgres-server stop
-
Se você estiver revertendo qualquer outro componente no nó, interrompa apenas esse
componente:
- > apigee-service comp stop
-
Se você estiver revertendo qualquer um dos seguintes componentes no nó, será necessário
interromper todos eles: servidor de gerenciamento, roteador, processador de mensagens, servidor Qpid ou servidor
Postgres:
- Se você estiver revertendo a Monetização, desinstale-a de todos os nós do servidor de gerenciamento e do processador de mensagens:
> apigee-service edge-mint-gateway uninstall - Desinstale o componente para reverter o nó:
- Se você estiver revertendo qualquer um dos seguintes componentes no nó,
desinstale todos eles: servidor de gerenciamento, roteador, processador de mensagens, servidor Qpid ou servidor
Postgres:
> apigee-service edge-gateway uninstall - Se você estiver revertendo qualquer outro componente no nó, desinstale apenas esse
componente:
> apigee-service comp uninstall
- Se você estiver revertendo qualquer um dos seguintes componentes no nó,
desinstale todos eles: servidor de gerenciamento, roteador, processador de mensagens, servidor Qpid ou servidor
Postgres:
- Se você estiver revertendo o roteador, exclua o conteúdo de /opt/nginx/conf.d:
> cd /opt/nginx/conf.d
> rm -rf * -
Para reverter o componente:
- Desinstale a versão 4.16.09 de apigee-setup:
> /opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall - Faça o download de bootstrap.sh para a versão 4.16.01 ou 4.16.05:
Para 4.16.01:
> curl https://software.apigee.com/bootstrap.sh -o /tmp/bootstrap.sh
Para 4.16.05:
> curl https://software.apigee.com/bootstrap_4.16.05.sh -o /tmp/bootstrap.sh - Instale o utilitário e as dependências do apigee-service 4.16.01 ou 4.16.05:
> sudo bash /tmp/bootstrap.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. - Instale a versão 4.16.01 ou 4.16.05 do apigee-setup:
> /opt/apigee/apigee-service/bin/apigee-service apigee-setup install - Instale a versão 4.16.01 ou 4.16.05 do componente:
> /opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile
em que comp é o componente a ser instalado e configFile é o arquivo de configuração 4.16.01 ou 4.16.05.
- Desinstale a versão 4.16.09 de apigee-setup:
-
Para reverter o componente para uma versão específica da versão 4.16.05:
- Faça o download da versão específica do componente:
> /<instal_dir>/apigee/apigee-service/bin/apigee-service comp-version install
em que comp-version é o componente e a versão a serem instalados. Por exemplo:
> /<instal_dir>/apigee/apigee-service/bin/apigee-service edge-ui-4.16.05-0.0.3649 install
Se você estiver usando o repositório on-line da Apigee, poderá determinar as versões de componentes disponíveis usando o seguinte comando:
> yum --showduplicates list comp
Por exemplo:
> yum --showduplicates list edge-ui - Use apigee-setup para
instalar o componente:
> /<install_dir>/apigee/apigee-setup/bin/setup.sh -p comp -f configFile
Por exemplo:
> /<install_dir>/apigee/apigee-setup/bin/setup.sh -p ui -f configFile
Observe que você só especifica o nome do componente ao fazer a instalação.
- Faça o download da versão específica do componente:
Entre em contato com o suporte da Apigee se tiver problemas ao reverter.