Edge for Private Cloud v4.18.01
Puedes instalar la BaaS de la API en varios centros de datos con una API activa/activa configuración. En este documento, se describe cómo agregar un centro de datos de BaaS a un conjunto de datos de BaaS existente. en el centro de atención.
Agregar un centro de datos cuando la El clúster de Cassandra se comparte con Edge
Todos los centros de datos deben tener la misma cantidad de nodos Cassandra. Una instalación de BaaS de API puede usar su propio clúster de Cassandra o compartir un clúster de Cassandra con Edge.
Si la instalación de BaaS comparte un clúster de Cassandra con Edge, debes actualizar el en el centro de datos original para configurarlo de modo que reconozca los nodos de Cassandra el nuevo centro de datos.
Actualiza el centro de datos existente
Para agregar un nuevo centro de datos de BaaS (centro de datos 2), debes seguir los pasos para instalar y configurar el nuevo centro de datos, pero también debes actualizar el centro de datos de BaaS original (centro de datos 1). Estas modificaciones son necesarias por los siguientes motivos:
- Estás agregando nuevos nodos de Cassandra al nuevo centro de datos, que deben ser accesibles para el centro de datos existente.
- Debes configurar la información de replicación que usan los nodos de la pila de BaaS en los datos centro de datos 1 para incluir información del centro de datos 2. No puedes realizar esa configuración hasta que se instale el centro de datos 2.
Para realizar estas actualizaciones en el centro de datos 1, debes actualizar el archivo de configuración original que se usó para instalar el centro de datos 1 y, luego, volver a ejecutar apigee-setup en los nodos de datos de Cassandra. centro 1. Si el clúster de Cassandra del centro de datos 1 se comparte con una instalación de Edge, también debes actualizar el servidor de administración.
Crea los archivos de configuración
Para instalar el centro de datos 1, usa la configuración que se muestra en Instalación de BaaS de la API. El archivo de configuración no necesita incluir información sobre el centro de datos 2 cuando lo instales 1. Agregarás información al archivo de configuración después de instalar el centro de datos. 2.
A continuación, se muestran los archivos de configuración del centro de datos 2. Este archivo de configuración supone que que instalan dc-2 en 10 nodos, como se describe en Topologías de instalación. Modifica este archivo según corresponda si se están instalando en 7 nodos.
Ten en cuenta que el archivo de configuración del centro de datos 2 (dc-2) contiene información sobre el centro de datos 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>"
Agrega un centro de datos de BaaS
- Instala el primer centro de datos como se describe en Instalación de BaaS de la API. Ese documento incluye el archivo de configuración que usas para instalar el centro de datos 1.
- Crea el archivo de configuración para dc-2 como se describió anteriormente.
- Instala Cassandra, ya sea como parte de una instalación de Edge existente o como un clúster independiente para BaaS:
- Instala la utilidad apigee-setup de Edge en el primer nodo de Cassandra de dc-2, máquina 8, con el procedimiento con o sin Internet. Consulta Instala la utilidad apigee-setup de Edge para obtener más información.
- En el símbolo del sistema, ejecuta la secuencia de comandos de configuración para instalar Cassandra en el primer nodo:
> /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile
La opción “-p c” especifica la instalación de Cassandra.
El archivo de configuración debe ser accesible y legible por el “Apigee” usuario. - Repite los pasos 3 y 4 para los nodos de Cassandra, las máquinas 9 y 10 restantes, en dc-2.
- En los nodos de Cassandra de dc-1, edita el archivo de configuración para agregar los nodos de Cassandra desde
según la forma en que instalaste Cassandra:
# Enumera primero los nodos de dc-1 y, luego, dc-2.
#, incluidos el centro de datos de Cassandra y el sufijo de bastidor
CASS_HOSTS="$IP11:1,1 $IP12:1,1 $IP13:1,1 $IP8:2,1 $IP9:2,1 $IP10:2,1" - En el primer nodo de Cassandra de dc-1, ejecuta setup.sh con el nuevo archivo de configuración dc-1 que
incluye los nodos de Cassandra de dc-2:
> /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile - Repite los pasos 6 y 7 para los nodos de Cassandra restantes en dc-1.
- Si te conectas a un clúster de Cassandra para dc-1 compartido con Edge,
agrega los nodos de Cassandra de dc-2 al archivo de configuración del nodo del servidor de administración de dc-1 y ejecuta
setup.sh:
> /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile - Actualiza los espacios de claves de Cassandra con el factor de replicación correcto para los dos centros de datos. Tú
solo debes ejecutar este paso una vez en cualquier servidor Cassandra en cualquiera de los centros de datos:
Nota: Los siguientes comandos establecen el factor de replicación en “3”, lo que indica tres nodos de Cassandra en el clúster. Modifica este valor según sea necesario para tu instalación.- Inicia la utilidad cqlsh de Cassandra:
> /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP - Ejecuta los siguientes comandos de CQL en “cqlsh>” para configurar la replicación
para los espacios de claves de Cassandra:
- cqlsh> ALTER KEYSPACE “Apigee_Baas_dc_1” WITH replicación = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
- cqlsh> ALTER KEYSPACE “Apigee_Baas” WITH replicación = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
- cqlsh> ALTER KEYSPACE “Apigee_Baas_Locks” WITH replicación = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
- cqlsh> ALTERAR ESPACIO DE CLAVES “seguimientos del sistema” WITH replicación = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
- cqlsh> ALTER KEYSPACE “system_auth” WITH replicación = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
- Para ver los espacios de claves, usa el comando:
cqlsh> seleccionar * de system.schema_keyspaces; - Salir de cqlsh:
cqlsh> salir
- Inicia la utilidad cqlsh de Cassandra:
- En todos los nodos de Cassandra en dc-2, ejecuta el comando de reconstrucción y especifica el nombre de la región de dc-1:
> /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP rebuild dc-1 - Ejecuta “nodetool status” en cada nodo de Cassandra y verificar que todos tengan
"100%" para el valor de "Propietario":
> Estado de /opt/apigee/apigee-cassandra/bin/nodetool - Instala BaaS en dc-2:
- Edita el archivo de configuración para mostrar solo los nodos de Cassandra en dc-2:
# List dc-2 Cassandra nodes,
# omitting Cassandra data center and rack suffix
CASS_HOSTS="$IP8 $IP9 $IP10" - Instala ElasticSearch en los nodos 4, 5 y 6 de dc-2:
> /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile - Instala la pila de BaaS en los nodos 4, 5 y 6 de dc-2:
> /opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile - Instala el portal de BaaS en la máquina 7:
> /opt/apigee/apigee-setup/bin/setup.sh -p p -f configFile
- Edita el archivo de configuración para mostrar solo los nodos de Cassandra en dc-2:
- Actualiza los nodos de la pila de BaaS en el centro de datos 1:
- En el primer nodo de pila de BaaS del centro de datos 1, edita /opt/apigee/customer/application/usergrid.properties. en un editor. Si el archivo no existe, créalo.
- Agrega las siguientes propiedades a usergrid.properties:
# El mismo valor que BAAS_CLUSTER_SEEDS en el archivo de configuración de dc-2,
# sin comillas dobles.
usergrid-deployment_usergrid.cluster.seeds=dc-1:dc1StackIP1,dc-1:dc1StackIP2,dc-2:dc2StackIP1,dc-2:dc2StackIP2
# El mismo valor que BAAS_CASS_DC_LIST en el archivo de configuración dc-2.
usergrid-deployment_usergrid.cluster.region.list=dc-1,dc-2 - Repite los pasos a y b en los nodos restantes de la pila de BaaS.
- Reinicia todos los nodos de la pila de BaaS.
Nota: Cuando reinicies los nodos de la pila de BaaS, reinícialos en el mismo orden en que aparecen en BAAS_CLUSTER_SEEDS. BAAS_CLUSTER_SEEDS en la mayoría de los dos nodos de pila. Después de reiniciar esos dos nodos en orden, puedes reiniciar los nodos restantes en cualquier orden.
> /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart
- Actualiza los valores de espacio de claves BaaS. Estos espacios de claves deben configurarse para la replicación en el momento de la instalación, pero no es necesario que lo hagan en el tiempo de ejecución. Quitar la replicación también ahorra memoria de Cassandra.
?Solo debes ejecutar este paso una vez en cualquier servidor de Cassandra en cualquiera de los centros de datos:- Inicia la utilidad de cqlsh de Cassandra:
> /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP - Ejecuta los siguientes comandos de CQL para establecer los niveles de replicación de los espacios de claves de 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' };
- Para ver los espacios de claves, usa el comando:
cqlsh> seleccionar * de system.schema_keyspaces; - Salir de cqlsh:
cqlsh> exit
- Inicia la utilidad de cqlsh de Cassandra:
Se completó la instalación del segundo centro de datos.
Después de completar la instalación y configuración de los dos centros de datos, puedes validar la instalación con el siguiente procedimiento:
- En todos los nodos de la pila de BaaS, verifica el estado:
> curl 0:8080/status - Verifica que la llamada a la API del token funcione:
> curl -X POST "http://localhost:8080/management/token" -d '{"grant_type":"password", "username":"adminEmail","password":"pWord"}' - Intenta acceder al portal de BaaS de dc-2. Verifica que todos los datos se hayan replicado en dc-2, como las colecciones creadas en dc-1.