18.4.01 Processo de reversão

Edge para nuvem privada v4.18.01

No caso de um erro durante uma atualização para o Edge 4.18.01, é possível reverter o componente que causou o erro e tentar fazer a atualização novamente. Por exemplo, se a atualização para o Postgres 9.6 falhar, reverta apenas os nós do Postgres e tente atualizar novamente.

Há dois cenários em que convém realizar uma reversão:

  1. Reverter para uma versão mais antiga. Por exemplo, de 4.18.01 a 4.17.01.
  2. Reverter para uma versão mais antiga na mesma versão.

Use o procedimento abaixo para realizar uma reversão para os dois cenários.

Quem pode realizar a reversão

O usuário que executa a reversão precisa ser o mesmo que atualizou o Edge ou um usuário que está executando como raiz.

Por padrão, os componentes do Edge são executados como o usuário "apigee". Em alguns casos, é possível executar componentes do Edge como usuários diferentes. Por exemplo, se o roteador tiver que acessar portas privilegiadas, como as abaixo de 1.000, execute o roteador 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

Você precisa estar 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ó, é preciso reverter qualquer um dos cinco instalados no nó. Por exemplo, se o servidor de gerenciamento, o roteador e o processador de mensagens estiverem instalados no nó, será necessário reverter os três para reverter qualquer um deles.

    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.18.01.

Reversão 4.18.01

Nesta seção, confira o procedimento para reverter o Edge 4.18.01 para uma versão anterior. Esta seção é dividida em duas partes:

  • Como reverter a atualização do Postgres
    A parte final de cada procedimento de atualização é atualizar os nós do Postgres para a versão 9.6. Se essa atualização falhar, use este procedimento para revertê-la.
  • Como reverter todos os outros componentes do Edge
    Use este procedimento para reverter outros componentes do Edge.

Para reverter a atualização do Postgres 9.6

Para reverter a atualização do Postgres ao atualizar o Postgres em uma configuração de mestre em espera, faça o seguinte:

  • Promova o novo nó de espera para se tornar o mestre do Postgres. O novo mestre do Postgres terá a mesma versão da instalação anterior do Edge.
  • Configure o nó de espera antigo para ser um nó de espera do novo mestre. O antigo nó de espera será a mesma da instalação anterior do Edge.
  • Registre os novos nós mestre e de espera com os grupos de análise e consumidor.

Quando a reversão for concluída, o nó mestre antigo não será mais necessário. Em seguida, desative o nó mestre antigo.

  1. Verifique se o novo nó do Postgres em espera está em execução:
    > /opt/apigee/apigee-service/bin/apigee-all status

    Inicie o Postgres se ele não estiver em execução:

    > /opt/apigee/apigee-service/bin/apigee-all start
  2. 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

  3. Se instalado, inicie o Qpid no nó de espera antigo:
    > /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server start
  4. Promova o novo nó de espera como mestre do Postgres:
    1. 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 tem como padrão "postgres".

    2. Edite o arquivo de configuração usado para instalar a versão atual do Edge para especificar o seguinte:
      # IP address of the new master:
      PG_MASTER=new_standby_IP
      # IP address of the old standby node
      PG_STANDBY=old_standby_IP
    3. Configure o novo mestre:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFile
  5. Recrie o antigo nó de espera:
    1. Edite o arquivo de configuração usado para instalar a versão atual do Edge para especificar o seguinte:
      # IP address of the new master:
      PG_MASTER=new_standby_IP
      # IP address of the old standby node
      PG_STANDBY=old_standby_IP
    2. Remova o diretório de dados do nó de espera antigo:
      > cd /opt/apigee/data/apigee-postgresql/pgdata > rm -rf *
    3. Reconfigure o antigo nó de espera para ser um nó de espera do novo mestre:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
    4. Verifique se o Postgres está sendo executado no nó de espera antigo:
      > /opt/apigee/apigee-service/bin/apigee-all status

      Se ele não estiver em execução, inicie-o:

      > /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server start
  6. Verifique se o novo nó de espera foi adicionado visualizando o arquivo /opt/apigee/apigee-postgresql/conf/pg_hba.conf no novo mestre.
  7. Visualize as informações atuais de análise e grupo de consumidores executando 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. Ela também retorna os UUIDs dos nós mestres e de espera do Postgres antigos nos campos postgres-server e datastores. Você 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" : {
      }
    }

  8. Consiga o endereço UUID do mestre antigo executando o seguinte comando cURL no nó mestre antigo:
    > curl -u sysAdminEmail:password http://node_IP:8084/v1/servers/self

    É exibido o UUID do nó no final da saída, no formato:

    "type" : [ "postgres-server" ],
    "uUID" : "599e8ebf-5d69-4ae4-aa71-154970a8ec75"

  9. Repita a etapa anterior para conseguir os endereços IP do antigo nó de espera e do novo mestre.
  10. 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álises e consumidores. masterUUID,standbyUUID estão na mesma ordem em que apareceram acima, quando você visualizou a análise atual e as informações do grupo de consumidores acima. Talvez seja necessário especificá-los como standbyUUID,masterUUID.

    A propriedade datastores para consumer-groups agora precisa estar vazia.

  11. 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 estará vazia.

  12. Registre os novos nós mestres e de espera da PG com os grupos de análise e consumidor:
    > 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
  13. 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 de espera listados no grupo de análise e no grupo de consumidores.

  14. Reinicie o Servidor de Gerenciamento de Borda:
    > /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
  15. Reinicie todos os servidores Qpid:
    > /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
  16. Reinicie todos os servidores Postgres:
    > /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
  17. Verifique o status da replicação emitindo os seguintes scripts nos dois servidores. O sistema precisa mostrar 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 indica que é o mestre. No antigo nó de espera:

    > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby

    Confirme se ele diz que é o de espera.

  18. Repita a etapa anterior depois de fazer várias solicitações de API para garantir que os nós estejam sincronizados.
  19. Desative o mestre antigo do Postgres usando o procedimento em Atualizar o Apigee Edge 4.16.01/4.16.05 para 4.17.09.

    Como alternativa, você pode desinstalar o Qpid do mestre antigo e instalar o Qpid no novo nó mestre, conforme descrito abaixo. Depois de desinstalar o Qpid, você poderá desativar o antigo nó mestre.

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:

  1. Bloqueie o acesso dos processadores de mensagens à porta 5672 do Qpid no mestre antigo executando o seguinte comando em todos os processadores de mensagens:
    > iptables -A OUTPUT -p tcp -d 10.233.147.20 --dport 5672 -j DROP
  2. Execute o comando a seguir para verificar se a fila de mensagens do Qpid está vazia. Não é possível desinstalar o Qpid até que ele tenha processado todas as mensagens pendentes:
    > qpid-stat -q

    Esse comando exibe uma tabela contendo uma contagem de msg, msgIn, and msgOut. Todas as mensagens terão sido processadas quando msg=0 e msgIn=msgOut.

  3. Determine o UUID do servidor Qpid no mestre antigo executando o comando a seguir nele. Salve estas informações para depois no procedimento:
    > curl -u sysAdminEmail:password http://node_IP::8083/v1/servers/self
  4. Pare 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
  5. 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
  6. Remova o antigo servidor Qpid dos grupos de análise e consumidor:
    > 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
  7. Remova o antigo servidor Qpid do Zookeeper:
    > curl -u sysAdminEmail:password -X DELETE
      http://ms_IP:8080/v1/servers/qpid_UUID
  8. Instale o Qpid no novo mestre:
    > /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile
  9. Determine o UUID do servidor Qpid no novo mestre executando o comando a seguir nele. Salve estas informações para depois no procedimento:
    > curl -u sysAdminEmail:password
      http://node_IP::8083/v1/servers/self
  10. Registre o novo servidor Qpid com os grupos de análise e consumidor:
    > 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
  11. Reinicie todos os processadores de mensagens:
    > /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  12. 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 enquanto o servidor Qpid processa as mensagens.

Para reverter componentes individuais da versão 4.18.01

Como parte da reversão, você precisa fazer o download do arquivo bootstrap.sh da versão atual do Edge:

  • Para reverter para a versão 4.17.09, faça o download de bootstrap_4.17.09.sh
  • Para reverter para a versão 4.17.05, faça o download de bootstrap_4.17.05.sh
  • Para reverter para a versão 4.17.01, faça o download de bootstrap_4.17.01.sh
  • Para reverter para a versão 4.16.09, faça o download de bootstrap_4.16.09.sh
  • 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 fazer reversão para cada nó que hospeda um componente, faça o seguinte:

  1. Interrompa a reversão do componente:
    1. Se você estiver revertendo qualquer um dos seguintes componentes no nó, precisará 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
    2. Se você estiver revertendo qualquer outro componente no nó, interrompa apenas esse componente:
      • > apigee-service comp stop
  2. 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
  3. Desinstale o componente para reverter no nó:
    1. 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
    2. Se você estiver revertendo qualquer outro componente no nó, desinstale apenas esse componente:
      > apigee-service comp uninstall
    3. Se você estiver revertendo o roteador, será necessário excluir o conteúdo de /opt/nginx/conf.d:
      > cd /opt/nginx/conf.d
      > rm -rf *
  4. Para reverter o componente:
    1. Desinstale a versão 4.18.01 de apigee-setup:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
    2. Faça o download de bootstrap.sh para a versão desejada: Por exemplo, para 4.16.09:
      > curl https://software.apigee.com/bootstrap_4.16.09.sh -o /tmp/bootstrap_4.16.09.sh 
    3. Instale o utilitário e as dependências apigee-service 4.16.01, 4.16.05 ou 4.16.09. Por exemplo, para 4.16.09:
      > sudo bash /tmp/bootstrap_4.16.09.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á necessário inserir esse valor.

    4. Instale apigee-setup:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-setup install
    5. Instale a versão desejada 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 para a versão desejada.

    6. Se você estiver revertendo o Qpid, limpe o iptables:
      > sudo iptables -F
  5. Para reverter o componente para uma versão específica da versão 4.18.01:
    1. Faça o download da versão do componente específico:
      > /opt/apigee/apigee-service/bin/apigee-service comp-version install

      em que comp-version é o componente e a versão a ser instalado. Exemplo:

      > /opt/apigee/apigee-service/bin/apigee-service edge-ui-4.17.09-0.0.3749 install

      Se você estiver usando o repositório on-line da Apigee, poderá determinar as versões dos componentes disponíveis usando o seguinte comando:

      > yum --showduplicates list comp

      Exemplo:

      > yum --showduplicates list edge-ui
    2. Use apigee-setup para instalar o componente:
      > /opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile

      Exemplo:

      > /opt/apigee/apigee-setup/bin/setup.sh -p ui -f configFile

      Observe que você só especifica o nome do componente ao fazer a instalação.

Entre em contato com o suporte do Apigee Edge se tiver problemas ao reverter.