Reverter o Apigee Edge 4.19.01

Edge para nuvem privada v4.19.01

Se você encontrar um erro durante uma atualização para o Edge 4.19.01, reverta o componente que causou o erro e tente atualizar novamente.

É possível reverter o Edge 4.19.01 para as seguintes versões de lançamento de recursos:

  • Versão 4.18.05
  • Versão 4.18.01
  • Versão 4.17.09*

* Para reverter da versão 4.19.01 para a 4.17.09, é necessário reverter o Postgres, além de reverter os componentes em cada nó. Se você reverter para 4.18.01 ou 4.18.05, não será necessário reverter o Postgres, porque o processo de upgrade não incluiu uma atualização do Postgres.

Há dois cenários em que você pode querer realizar uma reversão:

  1. Reverter para uma versão de recurso anterior. Por exemplo, da 4.19.01 para a 4.18.05.
  2. Reverter para uma versão de atualização anterior na mesma versão. Por exemplo, de 4.19.01.02 para 4.19.01.01.

Para mais informações, consulte Processo de lançamento da Apigee Edge.

Quem pode realizar uma reversão

O usuário que realiza uma 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.

Componentes com código comum

Os seguintes componentes do Edge compartilham código comum. Portanto, para reverter qualquer um desses componentes em um nó, é necessário reverter todos os componentes que estão nesse nó.

  • edge-management-server (servidor de gerenciamento)
  • edge-message-processor (processador de mensagens)
  • edge-router (roteador)
  • edge-postgres-server (servidor Postgres)
  • edge-qpid-server (servidor Qpid)

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.

Reverter para uma versão de recurso anterior

Para reverter da versão 4.19.01 para a 4.17.09, é necessário reverter o Postgres, além de reverter os componentes em cada nó. Se você reverter da versão 4.18.01 ou 4.18.05, não será necessário reverter o Postgres, porque o processo de upgrade não incluiu uma atualização do Postgres.

Para reverter para uma versão de recurso anterior, faça o seguinte em cada nó que hospeda o componente:

  1. Faça o download do arquivo bootstrap.sh da versão para a qual você quer reverter:

    • Para reverter para a versão 4.18.05, faça o download de bootstrap_4.18.05.sh:
      curl https://software.apigee.com/bootstrap_4.18.05.sh -o /tmp/bootstrap_4.18.05.sh 
    • Para reverter para a versão 4.18.01, faça o download de bootstrap_4.18.01.sh:
      curl https://software.apigee.com/bootstrap_4.18.01.sh -o /tmp/bootstrap_4.18.01.sh 
    • Para reverter para a versão 4.17.09, faça o download de bootstrap_4.17.09.sh:
      curl https://software.apigee.com/bootstrap_4.17.09.sh -o /tmp/bootstrap_4.17.09.sh 
  2. Interrompa o componente para reverter:
    1. Para reverter qualquer um dos componentes com código comum no nó, é necessário interromper todos eles, como mostra o exemplo a seguir:
      /opt/apigee/apigee-service/bin/apigee-service edge-management-server stop
      /opt/apigee/apigee-service/bin/apigee-service edge-router stop
      /opt/apigee/apigee-service/bin/apigee-service edge-message-processor stop
      /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
    2. Para reverter qualquer outro componente no nó, interrompa apenas esse componente:
      • /opt/apigee/apigee-service/bin/apigee-service component stop
  3. Se você estiver revertendo a Monetização, desinstale-a de todos os nós do servidor de gerenciamento e do processador de mensagens:
    /opt/apigee/apigee-service/bin/apigee-service edge-mint-gateway uninstall
  4. Desinstale o componente para reverter no nó:
    1. Para reverter qualquer um dos componentes com código comum no nó, é necessário desinstalar todos eles desinstalando o grupo de componentes edge-gateway, como mostra o exemplo a seguir:
      /opt/apigee/apigee-service/bin/apigee-service edge-gateway uninstall
    2. Para reverter qualquer outro componente no nó, desinstale apenas esse componente, como mostra o exemplo a seguir:
      /opt/apigee/apigee-service/bin/apigee-service component uninstall

      Em que component é o nome do componente.

    3. Para reverter o roteador de borda, exclua o conteúdo do arquivo /opt/nginx/conf.d e desinstale o grupo de componentes edge-gateway:
      cd /opt/nginx/conf.d
      rm -rf *
  5. Desinstale a versão 4.19.01 do apigee-setup:
    /opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
  6. Instale a versão 4.18.05, 4.18.01 ou 4.17.09 do utilitário apigee-service e as dependências dele. O exemplo a seguir instala a versão 4.17.09 do apigee-service:
    sudo bash /tmp/bootstrap_4.17.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á solicitado que você o insira.

    Se você receber um erro, verifique se fez o download do arquivo bootstrap.sh na etapa 1.

  7. Instale apigee-setup:
    /opt/apigee/apigee-service/bin/apigee-service apigee-setup install
  8. Instale a versão mais antiga do componente:
    /opt/apigee/apigee-setup/bin/setup.sh -p component -f configFile

    Em que component é o componente a ser instalado e configFile é o arquivo de configuração da versão mais antiga.

  9. Se você estiver revertendo o Qpid, limpe as iptables:
    sudo iptables -F
  10. Repita esse processo para cada nó que hospeda o componente que você está revertendo.

Para reverter da versão 4.19.01 para a 4.17.09, é necessário reverter o Postgres, além de reverter os componentes em cada nó. Se você reverter da versão 4.18.01 ou 4.18.05, não será necessário reverter o Postgres, porque o processo de upgrade não incluiu uma atualização do Postgres.

Reverter para uma versão de atualização anterior

Para reverter um componente para uma versão específica de uma versão, faça o seguinte em cada nó que hospeda o componente:

  1. Faça o download da versão específica do componente:
    /opt/apigee/apigee-service/bin/apigee-service component_version install

    Em que component_version é o componente e a versão de atualização a ser instalada. Por 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, determine as versões de 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

    Ao instalar o componente, especifique apenas o nome dele, não a versão.

  3. Repita esse processo para cada nó que hospeda o componente que você está revertendo.

Para reverter da versão 4.19.01 para a 4.17.09, é necessário reverter o Postgres, além de reverter os componentes em cada nó. Se você reverter da versão 4.18.01 ou 4.18.05, não será necessário reverter o Postgres, porque o processo de upgrade não incluiu uma atualização do Postgres.

Reverter a atualização do Postgres 9.6

Se você fez upgrade para a versão 4.19.01 da versão 4.17.09, reverta a atualização do Postgres, além dos componentes do Edge.

Para reverter a atualização do Postgres ao atualizar o Postgres em uma configuração mestre-em espera:

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

  1. 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
  2. Verifique se o Postgres está parado 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 é "postgres" por padrão.

    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 nó em espera antigo:
    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 no nó de espera antigo:
      cd /opt/apigee/data/apigee-postgresql/pgdata > rm -rf *
    3. 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
    4. 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
  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. Veja as informações atuais de análise e do 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. 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ê verá uma 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

    O UUID do nó vai aparecer no final da saída, no formato:

    "type" : [ "postgres-server" ],
    "uUID" : "599e8ebf-5d69-4ae4-aa71-154970a8ec75"
  9. Repita a etapa anterior para receber os endereços IP do nó de espera antigo 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á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 do grupo de consumidores. Talvez seja necessário especificá-los como standbyUUID,masterUUID.

    A propriedade datastores de 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 deve estar vazia.

  12. Registre novos nós mestre e em 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
  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 do Edge:
    /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 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 diz que é o mestre. No nó de espera antigo:

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

    Verifique 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, é possível desinstalar o Qpid do mestre antigo e instalá-lo no novo nó mestre. Depois de desinstalar o Qpid, é possível desativar o nó mestre antigo.

Desinstalar o Qpid do mestre antigo e instalar o Qpid no novo mestre

Para desinstalar o Qpid do mestre antigo e instalá-lo no novo mestre:

  1. Bloqueie o acesso à porta 5672 do Qpid no mestre antigo para que os processadores de mensagens não possam acessá-la. Para isso, execute o seguinte comando em todos os processadores de mensagens:
    iptables -A OUTPUT -p tcp -d 10.233.147.20 --dport 5672 -j DROP
  2. 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 mostra uma tabela com 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 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
  4. 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
  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 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
  7. Remova o servidor Qpid antigo 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 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
  10. 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
  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 do 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.

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