Como desativar um data center

Às vezes, é necessário desativar um data center. Por exemplo, se você estiver fazendo upgrade do sistema operacional, instale o novo sistema em um novo data center e desative o antigo. As seções a seguir apresentam um exemplo de desativação de um data center, em que há dois data centers, dc-1 e dc-2, em uma instalação em cluster de 12 nós:

  • dc-1 é o data center a ser desativado.
  • dc-2 é um segundo data center, usado no procedimento de desativação.

Se você estiver fazendo upgrade do sistema operacional, "dc-2" poderá ser o data center em que você instalou a nova versão do sistema operacional (SO). No entanto, não é necessário instalar um novo SO para desativar um data center.

Considerações antes de desativar um data center

Tenha em mente as seguintes considerações ao desativar um data center:

  • Bloqueie todo o tráfego de gerenciamento e de tempo de execução para o data center desativado e redirecione para outros data centers.
  • Depois de desativar o data center, você terá capacidade reduzida no cluster do Apigee. Para compensar, considere aumentar a capacidade nos data centers restantes ou adicionar outros após o desativamento.
  • Durante o processo de desativação, há um potencial de perda de dados de análise, dependendo de quais componentes de análise estão instalados no data center que está sendo desativado. Para mais detalhes, consulte Adicionar ou remover nós do Qpid.
  • Antes de desativar um data center, entenda como todos os componentes são configurados em todos os data centers, especialmente os servidores SymasLDAP, ZooKeeper, Cassandra e Postgres. Também é recomendável fazer backups de todos os componentes e configurações.

Antes de começar

  • Servidor de gerenciamento:todas as etapas de desativação dependem muito do servidor de gerenciamento. Se você tiver apenas um servidor de gerenciamento disponível, recomendamos que instale um novo componente de servidor de gerenciamento em um data center diferente de dc-1 antes de desativar o servidor de gerenciamento em dc-1. Além disso, verifique se um dos servidores de gerenciamento está sempre disponível.
  • Roteador:antes de desativar um roteador, bloqueie a capacidade de alcance dos roteadores bloqueando a porta 15999. Verifique se nenhum tráfego de tempo de execução está sendo direcionado aos roteadores desativados.
  • Cassandra e ZooKeeper:As seções abaixo descrevem como desativar o dc-1 em uma configuração de dois data centers.

    Se você tiver mais de dois data centers, remova todas as referências ao nó desativado (dc-1, neste caso) de todos os arquivos de configuração silenciosa nos data centers restantes. Para os nós do Cassandra que serão desativados, remova esses hosts de CASS_HOSTS. Os nós restantes do Cassandra precisam permanecer na ordem original de CASS_HOSTS.

  • Postgres:se você desativar o mestre do Postgres, promova um dos nós de espera disponíveis como um novo mestre do Postgres. Embora o servidor QPID mantenha um buffer na fila, se o mestre do Postgres ficar indisponível por mais tempo, você corre o risco de perder dados de análise.

Pré-requisitos

  • Antes de desativar qualquer componente, recomendamos que você faça um backup completo de todos os nós. Use o procedimento da sua versão atual do Edge para fazer o backup. Para mais informações sobre backup, consulte Backup e restauração.

  • Verifique se o Edge está em execução antes de desativar usando o comando:
    /opt/apigee/apigee-service/bin/apigee-all status
  • Verifique se nenhum tráfego de tempo de execução está chegando ao data center que você está desativando.

Ordem de desativação dos componentes

Se você instalar o Edge para nuvem privada em vários nós, desative os componentes do Edge nesses nós na seguinte ordem:

  1. IU do Edge (edge-ui)
  2. Servidor de gerenciamento (edge-management-server)
  3. Symas LDAP (apigee-openldap)
  4. Roteador (roteador de borda)
  5. Processador de mensagens (edge-message-processor)
  6. Servidor Qpid e Qpidd (edge-qpid-server e apigee-qpidd)
  7. Banco de dados Postgres e PostgreSQL (edge-postgres-server e apigee-postgresql)
  8. ZooKeeper (apigee-zookeeper)
  9. Cassandra (apigee-cassandra)

As seções a seguir explicam como desativar cada componente.

Interface do Edge

Para interromper e desinstalar o componente da interface do Edge de dc-1, insira os seguintes comandos:

/opt/apigee/apigee-service/bin/apigee-service edge-ui stop
/opt/apigee/apigee-service/bin/apigee-service edge-ui uninstall

Servidor de gerenciamento

Para desativar o servidor de gerenciamento em dc-1, siga estas etapas:

  1. Pare o servidor de gerenciamento em dc-1:
    apigee-service edge-management-server stop
  2. Encontre o UUID do servidor de gerenciamento registrado em dc-1:
    curl -u <AdminEmailID>:'<AdminPassword>' -X GET “http://{MS_IP}:8080/v1/servers?pod=central&region=dc-1&type=management-server”
  3. Cancele o registro do tipo de servidor:
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=management-server&region=dc-1&pod=central&uuid=UUID&action=remove"
  4. Exclua o servidor. Observação:se outros componentes também estiverem instalados nesse servidor, cancele o registro de todos eles antes de excluir o UUID.
    curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/{UUID}
  5. Desinstale o componente do servidor de gerenciamento em dc-1:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server uninstall

Symas LDAP

Nesta seção, explicamos como desativar o SymasLDAP em dc-1.

Observação:se você tiver mais de dois data centers, consulte Configurações com mais de dois data centers abaixo.

Para desativar o SymasLDAP em dc-1, siga estas etapas:

  1. Faça backup do nó dc-1 SymasLDAP seguindo as etapas em Como fazer backup.
  2. Interrompa a replicação de dados entre os dois data centers, dc-1 e dc-2, executando as etapas a seguir em ambos.

    1. Verifique o estado atual:
            /opt/symas/bin/ldapsearch -H ldap://{HOST}:{PORT} -LLL -x -b "cn=config" -D "cn=admin,cn=config" -w {credentials} -o ldif-wrap=no 'olcSyncRepl' | grep olcSyncrepl

      A saída será semelhante a esta:

      olcSyncrepl: {0}rid=001 provider=ldap://{HOST}:{PORT}/ binddn="cn=manager,dc=apigee,dc=com" bindmethod=simple credentials={credentials} searchbase="dc=apigee,dc=com" attrs="*,+" type=refreshAndPersist retry="60 1 300 12 7200 +" timeout=1
    2. Crie um arquivo break_repl.ldif com os seguintes comandos:
      dn: olcDatabase={2}mdb,cn=config
      changetype: modify
      delete: olcSyncRepl
      
      dn: olcDatabase={2}mdb,cn=config
      changetype: modify
      delete: olcMirrorMode
    3. Execute o comando ldapmodify:
            /opt/symas/bin/ldapmodify -x -w {credentials} -D "cn=admin,cn=config" -H "ldap://{HOST}:{PORT}/" -f path/to/file/break_repl.ldif

      A saída será semelhante a esta:

      modifying entry "olcDatabase={2}mdb,cn=config"
      modifying entry "olcDatabase={2}mdb,cn=config"
  3. Para verificar se o dc-2 não está mais replicando para o dc-1, crie uma entrada no LDAP do dc-2 e confira se ela não aparece no LDAP do dc-1.

    Se quiser, siga as etapas abaixo, que criam um usuário somente leitura no nó dc-2 SymasLDAP e verificam se o usuário foi replicado ou não. O usuário é excluído posteriormente.

    1. Crie um arquivo readonly-user.ldif em dc-2 com o seguinte conteúdo:
      dn: uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com
      objectClass: organizationalPerson
      objectClass: person
      objectClass: inetOrgPerson
      objectClass: top
      cn: readonly-user
      sn: readonly-user
      userPassword: {testPassword}
    2. Adicione o usuário com o comando "ldapadd" em dc-2:
      /opt/symas/bin/ldapadd -H ldap://{HOST}:{PORT} -w {credentials} -D "cn=manager,dc=apigee,dc=com" -f path/to/file/readonly-user.ldif

      A saída será semelhante a esta:

      adding new entry "uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com"
    3. Pesquise o usuário em dc-1 para garantir que ele não seja replicado. Se o usuário não estiver presente em dc-1, você terá certeza de que os dois LDAPs não estão mais sendo replicados:
      /opt/symas/bin/ldapsearch -H ldap://{HOST}:{PORT} -x -w {credentials} -D "cn=manager,dc=apigee,dc=com" -b uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com -LLL

      A saída será semelhante a esta:

      No such object (32)
      Matched DN: ou=users,ou=global,dc=apigee,dc=com
    4. Remova o usuário somente leitura que você adicionou anteriormente:
      /opt/symas/bin/ldapdelete -v -H ldap://{HOST}:{PORT} -w {credentials} -D "cn=manager,dc=apigee,dc=com" "uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com"
  4. Pare o SymasLDAP em dc-1:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
  5. Desinstale o componente SymasLDAP em dc-1:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap uninstall

Roteador

Esta seção explica como desativar um roteador. Consulte Remover um servidor para mais detalhes sobre como remover o roteador.

As etapas a seguir desativam o roteador de dc-1. Se houver vários nós de roteador configurados em dc-1, execute as etapas em todos os nós de roteador um de cada vez.

Observação:aqui, presumimos que a porta de verificação de integridade 15999 do roteador está configurada no balanceador de carga e que o bloqueio da porta 15999 vai tornar o roteador inacessível. Talvez seja necessário ter acesso root para bloquear a porta.

Para desativar um roteador, siga estas etapas:

  1. Bloqueie a porta 15999, a porta de verificação de integridade, para desativar a capacidade de alcance dos roteadores. Verifique se o tráfego de tempo de execução está bloqueado neste data center:

    iptables -A INPUT -i eth0 -p tcp --dport 15999 -j REJECT
  2. Verifique se o roteador está acessível:

    curl -vvv -X GET http://{ROUTER_IP}:15999/v1/servers/self/reachable

    A saída será semelhante a esta:

    About to connect() to 10.126.0.160 port 15999 (#0)
    Trying 10.126.0.160...
    Connection refused
    Failed connect to 10.126.0.160:15999; Connection refused
    Closing connection 0
    curl: (7) Failed connect to 10.126.0.160:15999; Connection refused
  3. Acesse o UUID do roteador, conforme descrito em Acessar UUIDs.
  4. Pare o roteador:
    /opt/apigee/apigee-service/bin/apigee-service edge-router stop
  5. Liste os pods de gateway disponíveis na organização com o seguinte comando:
    curl -u  <AdminEmailID>:'<AdminPassword>' -X GET "http://{MS_IP}:8080/v1/organizations/{ORG}/pods"

    Consulte Sobre os pods.

  6. Remova o registro do tipo de servidor:
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=router&region=dc-1&pod=gateway-1&uuid=UUID&action=remove"
  7. Cancele o registro do servidor:
    curl -u <AdminEmailID>:'<AdminPassword>’ -X DELETE http://{MS_IP}:8080/v1/servers/UUID
  8. Desinstale o edge-router:
    /opt/apigee/apigee-service/bin/apigee-service edge-router uninstall
    Consulte Remover um servidor.
  9. Limpe as regras iptables para ativar a porta bloqueada 15999:
    iptables -F

processador de mensagens

Esta seção descreve como desativar o processador de mensagens do dc-1. Consulte Remover um servidor para mais detalhes sobre como remover o processador de mensagens.

Como estamos supondo que dc-1 tem uma instalação em cluster de 12 nós, há dois nós do processador de mensagens configurados em dc-1. Execute os comandos a seguir nos dois nós.

  1. Acesse os UUIDs dos processadores de mensagens, conforme descrito em Acessar UUIDs.
  2. Interrompa o processador de mensagens:
    apigee-service edge-message-processor stop
  3. Remova o registro do tipo de servidor:
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=message-processor&region=dc-1&pod=gateway-1&uuid=UUID&action=remove"
  4. Desassociar um ambiente do processador de mensagens.
    curl -H "Content-Type:application/x-www-form-urlencoded" <AdminEmailID>:'<AdminPassword>’  \
    -X POST http://{MS_IP}:8080/v1/organizations/{ORG}/environments/{ENV}/servers \
    -d "action=remove&uuid=UUID"
  5. Remova o registro do tipo de servidor:
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=message-processor&region=dc-1&pod=gateway-1&uuid=UUID&action=remove"
  6. Desinstale o processador de mensagens:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor uninstall
  7. Cancele o registro do servidor:
    curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID

Servidor Qpid e Qpidd

Esta seção explica como desativar o servidor Qpid (edge-qpid-server) e o Qpidd (apigee-qpidd). Há dois nós do Qpid configurados em dc-1. Portanto, siga as etapas abaixo para os dois nós:

  1. Acesse o UUID do Qpidd, conforme descrito em Acessar UUIDs.
  2. Pare edge-qpid-server e apigee-qpidd:
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
    /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd stop
  3. Confira uma lista de grupos de análise e consumidores:
    curl -u <AdminEmailID>:'<AdminPassword>' -X GET http://{MS_IP}:8080/v1/analytics/groups/ax
  4. Remova o Qpid do grupo de consumidores:
    curl -u <AdminEmailID>:'<AdminPassword>' -H "Content-Type: application/json"  -X DELETE \ "http://{MS_IP}:8080/v1/analytics/groups/ax/{ax_group}/consumer-groups/{consumer_group}/consumers/{QPID_UUID}"
  5. Remova o Qpid do grupo de análise:
    curl -v -u <AdminEmailID>:'<AdminPassword>' \
    -X DELETE "http://{MS_IP}:8080/v1/analytics/groups/ax/{ax_group}/servers?uuid={QPID_UUID}&type=qpid-server"
  6. Cancele o registro do servidor Qpid na instalação do Edge:
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers \
    -d "type=qpid-server&region=dc-1&pod=central&uuid={QPID_UUID}&action=remove"
  7. Remova o servidor Qpid da instalação do Edge:
    curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
  8. Reinicie todos os componentes edge-qpid-server em todos os nós para garantir que a mudança seja detectada por esses componentes:
    $ /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
    $ /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server wait_for_ready
  9. Desinstale edge-qpid-server e apigee-qpidd:
    $ /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server uninstall
    $ /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd uninstall

Postgres e Postgresql

O data center que você está desativando pode ter um master ou um standby do Postgres. As seções a seguir explicam como desativá-los:

Desativação do mestre do Postgres

Observação:se você desativar o master do Postgres, promova um dos nós de espera disponíveis como um novo master do Postgres. Embora as filas do QPID armazenem dados em buffer, se o mestre do Postgres ficar indisponível por muito tempo, você corre o risco de perder dados de análise.

Para desativar o mestre do Postgres:

  1. Faça backup do nó principal do Postgres dc-1 seguindo as instruções nos links abaixo:
  2. Acesse os UUIDs dos servidores Postgres, conforme descrito em Acessar UUIDs.
  3. Em dc-1, pare edge-postgres-server e apigee-postgresql no mestre atual:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
  4. No nó de espera em dc-2, digite o seguinte comando para torná-lo o nó principal:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql promote-standby-to-master <IP of OLD Progress master>

    Observação:se você tiver mais de um nó do Postgres em espera, adicione entradas de host no novo master e atualize a configuração de replicação para todos os nós do Postgres em espera disponíveis.

    Para adicionar entradas de host ao novo master do Postgres, siga as etapas na seção apropriada abaixo:

    Se houver apenas um nó de espera restante

    Por exemplo, suponha que, antes da desativação, havia três nós do Postgres configurados. Você desativou o mestre atual e promoveu um dos nós de espera do postgres restantes para mestre. Configure o nó de espera restante com as seguintes etapas:

    1. No novo mestre, edite o arquivo de configuração para definir:
      PG_MASTER=IP_or_DNS_of_new_PG_MASTER
      PG_STANDBY=IP_or_DNS_of_PG_STANDBY
    2. Ative a replicação no novo mestre:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle

    Se houver mais de um nó em espera restante

    1. Adicione a seguinte configuração em /opt/apigee/customer/application/postgresql.properties:
      conf_pg_hba_replication.connection=host replication apigee standby_1_ip/32 trust \n host replication apigee standby_2_ip/32 trust
    2. Verifique se o arquivo /opt/apigee/customer/application/postgresql.properties pertence ao usuário apigee:
      chown apigee:apigee /opt/apigee/customer/application/postgresql.properties
    3. Restart apigee-postgresql:
      apigee-service apigee-postgresql restart
    4. Para atualizar as configurações de replicação em um nó de espera:

      1. Modifique o arquivo de configuração /opt/silent.conf e atualize o campo PG_MASTER com o endereço IP do novo mestre do Postgres.
      2. Remova todos os dados antigos do Postgres com o seguinte comando:
        rm -rf /opt/apigee/data/apigee-postgresql/
      3. Configure a replicação no nó em espera:
        /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
    5. Verifique se o mestre do Postgres está configurado corretamente inserindo o seguinte comando em dc-2:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
    6. Remova e adicione servidores PostgreSQL dos grupos de análise e de consumidores.
      1. Remova o servidor Postgres antigo do grupo de análise seguindo as instruções em Remover um servidor Postgres de um grupo de análise.
      2. Adicione um novo servidor postgres ao grupo de análise seguindo as instruções em Adicionar um servidor Postgres a um grupo de análise.
    7. Cancele o registro do servidor postgres antigo em dc-1:
      curl -u <AdminEmailID>:<AdminPassword> -X POST http://{MS_IP}:8080/v1/servers \
      -d "type=postgres-server®ion=dc-1&pod=analytics&uuid=UUID&action=remove"
            
    8. Exclua o servidor postgres antigo de dc-1:
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
    9. O mestre do Postgres antigo pode ser desativado com segurança. Desinstale edge-postgres-server e apigee-postgresql:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server uninstall
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql uninstall

    Desativação do standby do Postgres

    Observação:a documentação de uma instalação em cluster de 12 nós mostra o nó dc-1 postgresql como mestre, mas, para conveniência, nesta seção, presume-se que o nó dc-1 postgresql esteja em espera e o nó dc-2 postgresql seja mestre.

    Para desativar o standby do Postgres, siga estas etapas:

    1. Siga as instruções em Receber UUIDs para conseguir os UUIDs dos servidores do Postgres.
    2. Pare apigee-postgresql no nó de espera atual em dc-1:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
    3. Remova e adicione servidores PostgreSQL dos grupos de análise e de consumidores.
      1. Remova o servidor Postgres antigo do grupo de análise seguindo as instruções em Remover um servidor Postgres de um grupo de análise.
      2. Adicione um novo servidor postgres ao grupo de análise seguindo as instruções em Adicionar um servidor Postgres a um grupo de análise.
    4. Cancele o registro do servidor postgres antigo em dc-1:
      curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers \
      -d "type=postgres-server&region=dc-1&pod=analytics&uuid=UUID&action=remove"
    5. Exclua o servidor postgres antigo de dc-1:
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
    6. O mestre do Postgres antigo pode ser desativado com segurança. Desinstale edge-postgres-server e apigee-postgresql:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server uninstall
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql uninstall

    ZooKeeper e Cassandra

    Esta seção explica como desativar servidores do ZooKeeper e do Cassandra em uma configuração de dois data centers.

    Se você tiver mais de dois data centers, remova todas as referências ao nó desativado (dc-1, neste caso) de todos os arquivos de configuração silenciosa nos data centers restantes. Para os nós do Cassandra que serão desativados, remova esses hosts de CASS_HOSTS. Os nós restantes do Cassandra precisam permanecer na ordem original de CASS_HOSTS.

    Observação sobre o ZooKeeper:é necessário manter um quorum de nós eleitores ao modificar a propriedade ZK_HOST no arquivo de configuração para garantir que o conjunto do ZooKeeper permaneça funcional. Você precisa ter um número ímpar de nós de votação na sua configuração. Para mais informações, consulte Tarefas de manutenção do Apache ZooKeeper.

    Para desativar os servidores do ZooKeeper e do Cassandra:

    1. Faça backup dos nós do Cassandra e do ZooKeeper dc-1 seguindo as instruções nos links abaixo:
    2. Liste os UUIDs dos servidores do ZooKeeper e do Cassandra no data center em que os nós do Cassandra estão prestes a ser desativados.

      apigee-adminapi.sh servers list -r dc-1 -p central -t application-datastore --admin <AdminEmailID> --pwd '<AdminPassword>' --host localhost
    3. Remova o registro do tipo de servidor:
      curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://MS_IP:8080/v1/servers -d "type=cache-datastore&type=user-settings-datastore&type=scheduler-datastore&type=audit-datastore&type=apimodel-datastore&type=application-datastore&type=edgenotification-datastore&type=identityzone-datastore&type=user-settings-datastore&type=auth-datastore&region=dc-1&pod=central&uuid=UUID&action=remove"
    4. Cancele o registro do servidor:
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MS_IP:8080/v1/servers/UUID
    5. Atualize o arquivo de configuração com os IPs dos nós desativados removidos de ZK_HOSTS e CASS_HOSTS.

      Exemplo: suponha que você tenha os IPs $IP1 $IP2 $IP3 em dc-1 e $IP4 $IP5 $IP6 em dc-2, e que você esteja desativando dc-1. Em seguida, remova os IPs $IP1 $IP2 $IP3 dos arquivos de configuração.

      • Entradas de arquivo de configuração atuais:
        ZK_HOSTS="$IP1 $IP2 $IP3 $IP4 $IP5 $IP6"
        CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1, $IP4:2,1 $IP5:2,1 $IP6:2,1”
      • Novas entradas de arquivo de configuração:
        ZK_HOSTS="$IP4 $IP5 $IP6"
        CASS_HOSTS="$IP4:2,1 $IP5:2,1 $IP6:2,1"
    6. Atualize o arquivo de configuração silenciosa (modificado na etapa e) com os IPs dos nós removidos desativados e execute o perfil do servidor de gerenciamento em todos os nós que hospedam servidores de gerenciamento:
      /opt/apigee/apigee-setup/bin/setup.sh -p ms -f updated_config_file
    7. Atualize o arquivo de configuração com os IPs dos nós removidos e desativados e execute o perfil MP/RMP em todos os nós do roteador e do processador de mensagens:
      • Se o roteador de borda e o processador de mensagens estiverem configurados no mesmo nó, insira:
        /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f updated_config_file
      • Se o roteador do Edge e o processador de mensagens estiverem configurados em nós separados, insira o seguinte:

        Para o roteador:

        /opt/apigee/apigee-setup/bin/setup.sh -p r -f updated_config_file

        Para o processador de mensagens:

        /opt/apigee/apigee-setup/bin/setup.sh -p mp -f updated_config_file
    8. Reconfigure todos os nós do Qpid, com os IPs dos nós desativados removidos do arquivo de resposta:
      /opt/apigee/apigee-setup/bin/setup.sh -p qs -f updated_config_file
    9. Reconfigure todos os nós do Postgres, com os IPs dos nós desativados removidos do arquivo de resposta:
      /opt/apigee/apigee-setup/bin/setup.sh -p ps -f updated_config_file
    10. Altere o keyspace system_auth. Se a autenticação do Cassandra estiver ativada em um nó do Cassandra, atualize o fator de replicação do keyspace system_auth executando o seguinte comando:
      ALTER KEYSPACE system_auth WITH replication = {'class': 'NetworkTopologyStrategy', 'dc-2': '3'};

      Esse comando define o fator de replicação como '3', indicando três nós do Cassandra no cluster. Modifique esse valor conforme necessário.

      Depois de concluir essa etapa, a topologia do Cassandra não terá dc-1 em nenhum dos keyspaces.

    11. Desative os nós do Cassandra em dc-1, um por um.

      Para desativar os nós do Cassandra, insira o seguinte comando:

      /opt/apigee/apigee-cassandra/bin/nodetool -h cassIP -u cassandra -pw '<AdminPassword>' decommission
    12. Verifique a conexão dos nós do Cassandra de dc-1 usando um dos seguintes comandos:
      /opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra -p '<AdminPassword>'

      Ou o comando de verificação secundária a ser executado no nó desativado:

      /opt/apigee/apigee-cassandra/bin/nodetool netstats

      O comando acima vai retornar:

      Mode: DECOMMISSIONED
    13. Execute o perfil de DS para todos os nós do Cassandra e do ZooKeeper em dc-2:
      /opt/apigee/apigee-setup/bin/setup.sh -p ds -f updated_config_file
    14. Pare apigee-cassandra e apigee-zookeeper em dc-1:
      apigee-service apigee-cassandra stop
      apigee-service apigee-zookeeper stop
    15. Desinstale apigee-cassandra e apigee-zookeeper em dc-1:
      apigee-service apigee-cassandra uninstall
      apigee-service apigee-zookeeper uninstall

    Exclua as vinculações de dc-1

    Para excluir as vinculações de dc-1, siga estas etapas:

    1. Exclua as vinculações de dc-1.
      1. Liste todos os pods disponíveis na organização:
        curl -v -u  <AdminEmailID>:'<AdminPassword>' -X GET "http://MS_IP:8080/v1/o/ORG/pods"
      2. Para verificar se todas as vinculações foram removidas, extraia os UUIDs dos servidores associados aos pods:
        curl -v -u  <AdminEmailID>:'<AdminPassword>' \
        -X GET "http://MS_IP:8080/v1/regions/dc-1/pods/gateway-1/servers"

        Se esse comando não retornar nenhum UUID, as etapas anteriores removeram todas as vinculações e você pode pular a próxima etapa. Caso contrário, siga para a próxima etapa.

      3. Remova todas as vinculações de servidor para os UUIDs obtidos na etapa anterior:
        curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MS_IP:8080/v1/servers/UUID
      4. Desassocie a organização do pod:
        curl -v -u  <AdminEmailID>:'<AdminPassword>'  "http://MS_IP:8080/v1/o/ORG/pods" -d "action=remove&region=dc-1&pod=gateway-1" -H "Content-Type: application/x-www-form-urlencoded" -X POST
    2. Exclua os pods:
      curl -v -u <AdminEmailID>:'<AdminPassword>' "http://MS_IP:8080/v1/regions/dc-1/pods/gateway-1" -X DELETE
    3. Exclua a região.
      curl -v -u <AdminEmailID>:'<AdminPassword>'  "http://MS_IP:8080/v1/regions/dc-1" -X DELETE

    Neste ponto, você concluiu a desativação do dc-1.

    Apêndice

    Solução de problemas

    Se, depois de realizar as etapas anteriores, ainda houver servidores em alguns pods, siga estas etapas para cancelar o registro e excluir os servidores. Observação:mude os tipos e o pod conforme necessário.

    1. Receba os UUIDs usando o seguinte comando:
      apigee-adminapi.sh servers list -r dc-1 -p POD -t  --admin <AdminEmailID> --pwd  '<AdminPassword>’ --host localhost
    2. Cancele o registro do tipo de servidor:
      curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://MP_IP:8080/v1/servers -d "type=TYPE=REGION=dc-1&pod=POD&uuid=UUID&action=remove"
    3. Exclua os servidores um por um:
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MP_IP:8080/v1/servers/UUID

    Validação

    É possível validar a desativação usando os comandos a seguir.

    Servidor de gerenciamento

    1. Execute os comandos a seguir nos servidores de gerenciamento em todas as regiões.
      curl -v -u  <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/servers?pod=central&region=dc-1
      curl -v -u  <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/servers?pod=gateway&region=dc-1
      curl -v -u  <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/servers?pod=analytics&region=dc-1
    2. Execute o comando a seguir em todos os componentes para verificar os requisitos de porta para todas as portas de gerenciamento.
      curl -v http://MS_IP:8080/v1/servers/self
    3. Verifique o grupo de análise.
      curl -v  -u  <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/o/ORG/e/ENV/provisioning/axstatus
      curl -v  -u  <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/analytics/groups/ax
    4. Nós do Cassandra/ZooKeeper

      1. Em todos os nós do Cassandra, insira:
        /opt/apigee/apigee-cassandra/bin/nodetool -h <host> statusthrift

        Isso vai retornar um status running ou not running para esse nó específico.

      2. Em um nó, digite:
        /opt/apigee/apigee-cassandra/bin/nodetool -h <host> ring
        /opt/apigee/apigee-cassandra/bin/nodetool -h <host> status

        Os comandos acima vão retornar informações sobre o data center ativo.

      3. Nos nós do ZooKeeper, primeiro insira:
        echo ruok | nc <host> 2181
        

        Esse comando retorna imok.

        Em seguida, digite:

        echo stat | nc <host> 2181 | grep Mode
        

        O valor de Mode retornado pelo comando acima será um dos seguintes: observer, leader ou follower.

      4. Em um nó do ZooKeeper, execute:
        /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh >> /tmp/zk-tree.out.txt
      5. No nó mestre do Postgres, execute:
        /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master

        Valide se a resposta diz que o nó é o mestre.

      6. No nó em espera, execute:
        /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby

        Verifique se a resposta confirma que o nó é o standby.

      7. Faça login no banco de dados PostgreSQL usando o seguinte comando:
        psql -h localhost -d apigee -U postgres

        Quando solicitado, digite a senha do usuário postgres (padrão: postgres).

        Em seguida, execute a consulta a seguir para verificar o client_received_start_timestamp máximo:

        SELECT max(client_received_start_timestamp) FROM "analytics"."$org.$env.fact" LIMIT 1;

      Registros

      Verifique os registros nos componentes para garantir que não há erros.