Edge para nuvem privada v4.18.01
É possível instalar a API BaaS em vários data centers usando uma configuração ativa/ativa. Neste documento, descrevemos como adicionar um data center do BaaS a um data center do BaaS atual.
Como adicionar um data center quando o cluster do Cassandra é compartilhado com o Edge
Todos os data centers precisam ter o mesmo número de nós do Cassandra. Uma instalação da API BaaS pode usar o próprio cluster do Cassandra ou compartilhar um cluster do Cassandra com o Edge.
Se a instalação do BaaS compartilhar um cluster do Cassandra com o Edge, será necessário atualizar o servidor de gerenciamento no data center original para configurá-lo para reconhecer os nós do Cassandra no novo data center.
Como atualizar o data center atual
Para adicionar um novo data center do BaaS (data center 2), é necessário seguir as etapas para instalar e configurar o novo data center, mas também é preciso atualizar o data center original do BaaS (data center 1) . Essas modificações são necessárias porque:
- Você está adicionando novos nós do Cassandra no novo data center que precisam ser acessíveis pelo data center atual.
- É preciso configurar as informações de replicação usadas pelos nós da pilha do BaaS no data center 1 para incluir informações do data center 2. Não é possível realizar essa configuração até que o data center 2 seja instalado.
Para realizar essas atualizações no data center 1, atualize o arquivo de configuração original usado para instalar o data center 1 e execute novamente apigee-setup nos nós do Cassandra do data center 1. Se o cluster do Cassandra para o data center 1 for compartilhado com uma instalação do Edge, você também precisará atualizar o servidor de gerenciamento.
Como criar os arquivos de configuração
Para instalar o data center 1, use a configuração mostrada em Instalação da API BaaS. O arquivo de configuração não precisa incluir informações sobre o data center 2 no momento da instalação do data center 1.Adicione informações ao arquivo de configuração depois de instalar o data center 2.
Confira abaixo os arquivos de configuração do data center 2. Este arquivo de configuração pressupõe que você esteja instalando o dc-2 em 10 nós, conforme descrito em Topologias de instalação. Modifique esse arquivo de acordo se você estiver instalando em sete nós.
Observe que o arquivo de configuração do data center 2 (dc-2) contém informações sobre o data center 1 (dc-1):
# Specify IP address or DNS name of node for dc-2. IP1=192.168.1.1 # ElasticSearch IP2=192.168.1.2 # ElasticSearch IP3=192.168.1.3 # ElasticSearch IP4=192.168.1.4 # API BaaS Stack IP5=192.168.1.5 # API BaaS Stack IP6=192.168.1.6 # API BaaS Stack IP7=192.168.1.7 # API BaaS Portal IP8=192.168.1.8 # Cassandra dc-2 (shared with Edge or standalone) IP9=192.168.1.9 # Cassandra dc-2 (shared with Edge or standalone) IP10=192.168.1.10 # Cassandra dc-2 (shared with Edge or standalone) # Specify node information for dc-1 IP11=192.168.1.11 # Cassandra dc-1 (shared with Edge or standalone) IP12=192.168.1.12 # Cassandra dc-1 (shared with Edge or standalone) IP13=192.168.1.13 # Cassandra dc-1 (shared with Edge or standalone) IP14=192.168.1.14 # API BaaS Stack IP15=192.168.1.15 # API BaaS Stack # Must resolve to IP address or DNS name of host - not to 127.0.0.1 or localhost. HOSTIP=$(hostname -i) # Define the API BaaS administrator account. AS_ADMIN="superuser" # User name - default is "superuser". AS_ADMIN_EMAIL=stackAdmin@email.com AS_PASSWD=stackAdminPWord # Specify Cassandra data center and rack suffix. # List dc-2 nodes first, then dc-1. # Must use IP addresses for CASS_HOSTS, not DNS names. # CASS_HOSTS="$IP8:2,1 $IP9:2,1 $IP10:2,1 $IP11:1,1 $IP12:1,1 $IP13:1,1" # Specify the Cassandra region. REGION=dc-2 # Cassandra uname/pword. # Even if Cassandra authentication is disabled, # you must still pass values for these properties. CASS_USERNAME=cassandra # Default value CASS_PASSWORD=cassandra # Default value # Specify BaaS Cassandra connection information. # Specify the data center name as dc-2. BAAS_CASS_LOCALDC=dc-2 # Specify both data centers. BAAS_CASS_DC_LIST=dc-1,dc-2 # Replication is in the form "dataCenterName:#CassandraNodes". # Specify both data centers. BAAS_CASS_REPLICATION=dc-1:3,dc-2:3 # Defines the initial contact points for members of the BaaS cluster. # Specify the IP address of no more than two Stack nodes per data center. # Specify both data centers. BAAS_CLUSTER_SEEDS="dc-1:$IP14,dc-1:$IP15,dc-2:$IP4,dc-2:$IP5" # ElasticSearch IPs or DNS names, separated by spaces, for dc-2. ES_HOSTS="$IP1 $IP2 $IP3" # API BaaS Stack information. # Default cluster name is "apigee_baas" BAAS_USERGRID_CLUSTERNAME="apigee_baas" # URL and port of the load balancer for the API BaaS Stack nodes, # or IP/DNS and port 8080 of a single Stack node with no load balancer. BAAS_USERGRID_URL=http://myloadbalancer:8443 # API BaaS Portal information. # URL and port number of load balancer, if there is one in front of the Portal, # or the URL and port of the Portal node. BAAS_PORTAL_URL="http://$IP7:9000" # Portal port. Default value is 9000. BAAS_PORTAL_LISTEN_PORT=9000 # SMTP information. BaaS requires an SMTP server. SMTPHOST=smtp.gmail.com SMTPPORT=465 SMTPUSER=your@email.com SMTPPASSWORD=yourEmailPassword SMTPSSL=y SMTPMAILFROM="My Company <myco@company.com>"
Adicionar um data center do BaaS
- Instale o primeiro data center conforme descrito em Instalação da API BaaS. Esse documento inclui o arquivo de configuração usado para instalar o data center 1.
- Crie o arquivo de configuração para dc-2, conforme descrito acima.
- Instale o Cassandra como parte de uma instalação do Edge ou como um cluster independente para o BaaS:
- Instale o utilitário apigee-setup do Edge no primeiro nó do Cassandra de dc-2, máquina 8, usando o procedimento com ou sem Internet. Consulte Instalar o utilitário apigee-setup do Edge para mais informações.
- No prompt de comando, execute o script de configuração para instalar o Cassandra no primeiro nó:
> /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile
A opção "-p c" especifica a instalação do Cassandra.
O arquivo de configuração precisa ser acessível ou legível pelo usuário "apigee". - Repita as etapas 3 e 4 para os nós restantes do Cassandra, máquinas 9 e 10, em dc-2.
- Nos nós do Cassandra de dc-1, edite o arquivo de configuração para adicionar os nós do Cassandra do
data center 2 com base em como você instalou o Cassandra:
# List dc-1 nodes first, then dc-2,
# including Cassandra data center and rack suffix
CASS_HOSTS="$IP11:1,1 $IP12:1,1 $IP13:1,1 $IP8:2,1 $IP9:2,1 $IP10:2,1" - No primeiro nó do Cassandra de dc-1, execute setup.sh com o novo arquivo de configuração de dc-1 que
inclui os nós do Cassandra de dc-2:
> /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile - Repita as etapas 6 e 7 para os nós restantes do Cassandra em dc-1.
- Se você estiver se conectando a um cluster do Cassandra para dc-1 compartilhado com o Edge,
adicione os nós do Cassandra dc-2 ao arquivo de configuração do nó do servidor de gerenciamento de dc-1 e execute
setup.sh:
> /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile - Atualize os keyspaces do Cassandra com o fator de replicação correto para os dois data centers. Você
só precisa executar essa etapa uma vez em qualquer servidor do Cassandra em qualquer data center:
Observação: todos os comandos abaixo definem o fator de replicação como "3", indicando três nós do Cassandra no cluster. Modifique esse valor conforme necessário para sua instalação.- Inicie o utilitário cqlsh do Cassandra:
> /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP - Execute os seguintes comandos CQL no prompt "cqlsh>" para definir os níveis de replicação
para keyspaces do Cassandra:
- cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_1" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
- cqlsh> ALTER KEYSPACE "Apigee_Baas" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
- cqlsh> ALTER KEYSPACE "Apigee_Baas_Locks" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
- cqlsh> ALTER KEYSPACE "system_traces" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
- cqlsh> ALTER KEYSPACE "system_auth" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
- Veja os keyspaces usando o comando:
cqlsh> select * from system.schema_keyspaces; - Saia do cqlsh:
cqlsh> exit
- Inicie o utilitário cqlsh do Cassandra:
- Em todos os nós do Cassandra em dc-2, execute o comando de recriação, especificando o nome da região de
dc-1:
> /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP rebuild dc-1 - Execute "nodetool status" em cada nó do Cassandra e verifique se todos os nós do Cassandra têm
"100%" para o valor "Owns":
> /opt/apigee/apigee-cassandra/bin/nodetool status - Instale o BaaS no dc-2:
- Edite o arquivo de configuração para listar apenas os nós do Cassandra em dc-2:
# List dc-2 Cassandra nodes,
# omitting Cassandra data center and rack suffix
CASS_HOSTS="$IP8 $IP9 $IP10" - Instale o ElasticSearch nos nós 4, 5 e 6 de dc-2:
> /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile - Instale a pilha do BaaS nos nós 4, 5 e 6 de dc-2:
> /opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile - Instale o portal do BaaS na máquina 7:
> /opt/apigee/apigee-setup/bin/setup.sh -p p -f configFile
- Edite o arquivo de configuração para listar apenas os nós do Cassandra em dc-2:
- Atualize os nós da pilha do BaaS no data center 1:
- No primeiro nó da pilha do BaaS no data center 1, edite /opt/apigee/customer/application/usergrid.properties em um editor. Se o arquivo não existir, crie-o.
- Adicione as seguintes propriedades a usergrid.properties:
# Same value as BAAS_CLUSTER_SEEDS in the dc-2 arquivo de configuração,
# without double quotes.
usergrid-deployment_usergrid.cluster.seeds=dc-1:dc1StackIP1,dc-1:dc1StackIP2,dc-2:dc2StackIP1,dc-2:dc2StackIP2
# Same value as BAAS_CASS_DC_LIST in the dc-2 config file.
usergrid-deployment_usergrid.cluster.region.list=dc-1,dc-2 - Repita as etapas a e b nos nós restantes da pilha do BaaS.
- Reinicie todos os nós da pilha do BaaS.
Observação: ao reiniciar os nós da pilha do BaaS, reinicie-os na mesma ordem em que estão listados em BAAS_CLUSTER_SEEDS. BAAS_CLUSTER_SEEDS lista no máximo dois nós da pilha. Depois de reiniciar esses dois nós em ordem, você pode reiniciar os nós restantes em qualquer ordem.
> /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart
- Atualize os valores do keyspace do BaaS. Esses keyspaces precisam ser definidos para replicação no momento da instalação,
mas não precisam estar no ambiente de execução. A remoção da replicação também economiza memória do Cassandra.
?Você só precisa executar essa etapa uma vez em qualquer servidor do Cassandra em qualquer data center:- Inicie o utilitário cqlsh do Cassandra:
> /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP - Execute os seguintes comandos CQL para definir os níveis de replicação dos keyspaces do Cassandra:
- cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_1" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3' };
- cqlsh> ALTER KEYSPACE "Apigee_Baas_dc_2" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-2': '3' };
- Veja os keyspaces usando o comando:
cqlsh> select * from system.schema_keyspaces; - Saia do cqlsh:
cqlsh> exit
- Inicie o utilitário cqlsh do Cassandra:
A instalação do segundo data center foi concluída.
Depois de concluir a instalação e a configuração dos dois data centers, é possível validar a instalação usando o seguinte procedimento:
- Em todos os nós da pilha do BaaS, verifique o status:
> curl 0:8080/status - Verifique se a chamada de API do token está funcionando:
> curl -X POST "http://localhost:8080/management/token" -d '{"grant_type":"password", "username":"adminEmail","password":"pWord"}' - Tente fazer login no portal do BaaS para dc-2. Verifique se todos os dados foram replicados no dc-2, como as coleções criadas no dc-1.