Instalação do BaaS da API com 7 e 10 hosts

Edge for Private Cloud v. 4.16.05

Como usar um balanceador de carga

Uma instalação de produção do API BaaS usa um balanceador de carga entre o nó do portal da API BaaS e nós de pilha de BaaS da API. Ao configurar o portal, você especifica o endereço IP ou o nome DNS do do balanceador de carga, e não dos nós da pilha.

Como alternativa a um balanceador de carga, é possível usar o DNS round-robin. Nesse cenário, criar uma entrada DNS com vários registros A correspondentes aos endereços IP da pilha BaaS. Durante uma configuração pesquisa, o servidor DNS retornará automaticamente valores de registro A em formato round-robin.

Conectando ao Cassandra

Ao instalar o BaaS, você pode optar por conectar o BaaS e o Edge ao mesmo cluster do Cassandra, ou criar um cluster separado do Cassandra para BaaS. Instalações menores de BaaS, ou seja, com volumes de tráfego menores, geralmente compartilham um cluster do Cassandra com o Edge.

Para alta capacidade de processamento e disponibilidade ou para separar clusters do Cassandra em diferentes zonas de rede, a Apigee recomenda que você use clusters separados do Cassandra. Clusters separados maximize o desempenho se estiver com cargas de tráfego altas no BaaS.

Sincronização de datas

A data e a hora de todos os servidores precisam estar sincronizadas. Caso ainda não esteja configurado, O utilitário "ntpdate" pode servir para esse propósito, que verifica se os servidores estão sincronizados. Você pode usar “yum install ntp” para instalar o utilitário.

Segurança do Tomcat

O instalador da API BaaS também instala o servidor Apache Tomcat em todos os nós da pilha de BaaS da API, incluindo a interface do usuário do administrador do Tomcat. O instalador deixa as credenciais de administrador padrão que foi alterado de admin:admin.

Se necessário, você pode alterar essas credenciais como parte da proteção do Tomcat. Para mais mais informações, consulte:

Visão geral da instalação

Depois de instalar o Edge com o utilitário apigee-setup em um nó, use este para instalar um ou mais componentes BaaS no nó. O utilitário apigee-setup tem o seguinte formato:

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

Transmita um arquivo de configuração para o utilitário apigee-setup que contenha as seguintes informações: sobre a instalação. Se o arquivo de configuração estiver sem configurações o campo apigee-setup solicita que você o digite na linha de comando.

A única exigência é que o arquivo de configuração possa ser acessado ou lido por "apigee" usuário. Por exemplo, coloque o arquivo no diretório /tmp do nó.

Por exemplo, use o seguinte comando para instalar a pilha BaaS da API:

> sudo /opt/apigee/apigee-setup/bin/setup.sh -p b -f myConfig

O utilitário setup.sh da Apigee oferece suporte a várias opções de instalação de componentes da API BaaS. As instruções abaixo usam o opções independentes (c, e, b e p), mas é possível usar opções diferentes com base no nó configuração:

Opção

Descrição

e

Instalar apenas o ElasticSearch.

b

Instale somente a pilha de API BaaS, que também instala o Tomcat.

p

Instale somente o portal da API BaaS, que também instala o roteador Nginx para ser usado como uma servidor.

c

Instale apenas o Cassandra.

eb

Instalar o ElasticSearch, a API BaaS Stack e o Tomcat no nó.

ebp

Instalar o ElasticSearch, o Portal de APIs BaaS, a API BaaS Stack e o Tomcat. O portal é tão leve sem precisar de outros recursos para isso.

Asa

Instalar todos os componentes da API em um único nó (Cassandra, Elasticsearch, API BaaS Stack, e portal de API BaaS). Use essa opção apenas para desenvolvimento e teste, não para a produção.

Como criar uma configuração silenciosa arquivo

Veja abaixo um exemplo de arquivo de configuração silenciosa para uma instalação de BaaS da API de 10 nós. Editar conforme necessário para a configuração. Use a opção -f para setup.sh e incluir esse arquivo.

# Specify IP address or DNS name of node.
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 (shared with Edge or standalone)
IP9=192.168.1.9   # Cassandra (shared with Edge or standalone)
IP10=192.168.1.10  # Cassandra (shared with Edge or standalone)

# 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=stackAdminPWrod

# Only if you are installing Cassandra.
# Specify Cassandra configuration information.
# Must use IP addresses for CASS_HOSTS, not DNS names.
# CASS_HOSTS="$IP8:1,1 $IP9:1,1 $IP10:1,1"

# If connecting to existing Cassandra nodes, 
# specify Cassandra IPs.
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP8 $IP9 $IP10"

# 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.
BAAS_CASS_LOCALDC=dc-1    # Default is dc-1.

# Replication is in the form "dataCenterName:#CassandraNodes". 
# For example, for dc-1 with three Cassandra nodes, it is dc-1:3.
BAAS_CASS_REPLICATION=dc-1:3

# ElasticSearch IPs or DNS names, separated by spaces.
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

A tabela a seguir contém informações adicionais sobre essas propriedades:

Propriedade

Observação

CASS_HOSTS

Se você estiver instalando o Cassandra, especifique os IPs de nó do Cassandra (não os nomes DNS) e incluir o modificador “:dc,ra” que especifica o data center e o rack da Nó do Cassandra.

Por exemplo, "192.168.124.201:1, 1 = data center 1 e rack/zona de disponibilidade 1 e '192.168.124.204:2,1 = data center 2 e rack/zona de disponibilidade 1.

CASS_USERNAME
CASS_PASSWORD

Nome de usuário e senha do Cassandra.

Se a autenticação do Cassandra estiver desativada, você ainda precisará transmitir esses valores. No entanto, os valores serão ignorados.

BAAS_CASS_LOCALDC

Os nomes das regiões devem estar no formato dc-#, em que # corresponde a um valor inteiro.

Por exemplo, dc-1, dc-2 etc. Se você estiver se conectando a um cluster do Cassandra instalado com o Edge, você pode pedir esse valor ao administrador do sistema. In an Edge – single data center, o valor padrão será dc-1.

Se você instalou o Cassandra como parte da instalação da API BaaS, então durante o Cassandra você adicionou o modificador “:dc,ra” aos endereços IP do Cassandra. O primeiro valor "dc" é o número do data center. O nome do data center é a string "dc-" com o número do data center como sufixo.

BAAS_CASS_REPLICATION

O formato é "dataCenterName:#CassandraNodes". Por exemplo, para dc-1 com três nós do Cassandra, é dc-1:3.

BAAS_USERGRID_URL

Em um ambiente de produção, é o URL e a porta do balanceador de carga que está em à frente dos nós da pilha de BaaS da API, no formato:

http://myStackLoadBalancer:8443 (link em inglês)

Em um ambiente de teste ou desenvolvimento em que você tem apenas uma pilha BaaS de API , pode ser o URL e o número da porta de um nó de pilha de BaaS da API, no formato:

http://stackIPorDNS:8080 (link em inglês)

O número da porta do servidor da API BaaS Stack é 8080.

BAAS_PORTAL_URL

O URL e o número da porta do balanceador de carga, se houver um na frente do portal. no formato:

http://myPortalLoadBalancer:8443
(link em inglês)
Se não houver balanceador de carga, o URL e o número da porta do nó do portal, no formulário:

http://portalIPorDNS:9000

Por padrão, o número da porta do portal da API BaaS é 9000.

BAAS_PORTAL_LISTEN_PORT

O número da porta do servidor do portal da API BaaS é 9000. Se a porta não estiver disponível, especificar uma porta diferente.

Se você estiver definindo BAAS_PORTAL_URL como o URL do Nó de portal, os números das portas precisam ser os mesmos para as duas propriedades.

Opcional - Instalar o Cassandra: Machine 8, 9 e 10

Embora seja possível conectar o API BaaS ao mesmo cluster do Cassandra usado pelo Edge, a Apigee recomenda o uso de clusters separados.

O cluster do Cassandra pode usar autenticação ou a autenticação do Cassandra pode ser desativada. Consulte Ative a autenticação do Cassandra para mais.

  1. Instale o utilitário apigee-setup do Edge no nó usando a procedimento na Internet ou fora dela. Consulte Instalar o utilitário de configuração da Apigee Apigee (em inglês) para mais.
  2. No prompt de comando, execute o script de configuração:
    > /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 para a "apigee" usuário. Por exemplo, coloque o arquivo no diretório /tmp do nó.

A configuração conclui com êxito a configuração do repositório de dados no nó.

Observe que o JMX está ativado por padrão para o Cassandra. O acesso remoto do JMX ao Cassandra não exigem uma senha. Você pode configurar o Cassandra para usar a autenticação para o JMX. Para mais informações, consulte Como monitorar.

Configurar o cron job do Cassandra

Configurar um cron job que use nodetool para esvaziar os bloqueios para que sejam executados a cada hora em cada nó do Cassandra.

Se você tiver vários nós do Cassandra, reduza o cron job em cada servidor em cinco minutos para que para que nenhum dos nós seja liberado ao mesmo tempo.

O cron job precisa executar o seguinte comando:

/opt/apigee/apigee-cassandra/bin/nodetool -h IP_address flush Apigee_Baas_Locks

em que IP_address é o endereço IP do nó do Cassandra.

Instalar o ElasticSearch: máquinas 1, 2 e 3

Para instalar o ElasticSearch:

  1. Instalar o utilitário de configuração da Apigee Apigee no nó usando a Internet ou não procedimento Consulte Instalar a configuração da Apigee do Edge para saber mais.
  2. No prompt de comando, execute o script de configuração:
    > /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile

    A opção "-p e" especifica a instalação do ElasticSearch.
    O arquivo de configuração precisa ser acessível ou legível para a "apigee" usuário. Por exemplo, coloque o arquivo no diretório /tmp do nó.
  3. (Opcional) Se você instalar o ElasticSearch em um nó autônomo, ou seja, ele não está instalado com a pilha de BaaS de API e, em seguida, ajustar a opção de memória padrão para aumentar a memória alocada para ElasticSearch de 4 GB a 6 GB:
    1. Abra /opt/apigee/customer/application/elasticsearch.properties. em um editor. Crie esse arquivo se ele não existir.
    2. Defina a variável setenv_elasticsearch_max_mem_size como 6g (o padrão é 4g):
      setenv_elasticsearch_max_mem_size=6g
    3. Salve o arquivo.
    4. Execute este comando:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-elasticsearch reinicialização

A configuração foi concluída no nó.

Instalar a pilha de APIs BaaS: máquinas 4, 5 e 6

Para instalar a pilha de BaaS da API:

  1. Instalar o utilitário de configuração da Apigee Apigee no nó usando a Internet ou não procedimento Consulte Instalar a configuração da Apigee do Edge para saber mais.
  2. No prompt de comando, execute o script de configuração:
    > /opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile

    A opção "-p b" especifica a instalação da pilha de BaaS da API.
    O arquivo de configuração precisa ser acessível ou legível para a "apigee" usuário. Por exemplo, coloque o arquivo no diretório /tmp do nó.

Depois que o instalador busca as credenciais de administrador corretas, ele instala o Tomcat, cria a API Keyspaces de BaaS e configure a pilha de API BaaS no servidor. O SMTP também está configurado para permitir interface para enviar e-mails de confirmação de senha.

Instalar o portal de API BaaS: Machine 7

Para instalar o portal de API BaaS:

  1. Instalar o utilitário de configuração da Apigee Apigee no nó usando a Internet ou não procedimento Consulte Instalar a configuração da Apigee do Edge para saber mais.
  2. No prompt de comando, execute o script de configuração:
    > /opt/apigee/setup/bin/setup.sh -p "p -f" configFile

    A opção "-p p" especifica a instalação do portal do BaaS da API.
    O arquivo de configuração precisa ser acessível ou legível para a "apigee" usuário. Por exemplo, coloque o arquivo no diretório /tmp do nó.

O instalador inicia o servidor da Web Nginx e conclui o portal da API BaaS configuração do Terraform.

Anote o URL do portal da API BaaS. Esse é o URL que você insere no navegador para acessar o Interface do usuário do portal de APIs BaaS.

Configurar nós de BaaS de API para uma pilha ou balanceador de carga do portal

Se você incluir um balanceador de carga na frente dos nós de pilha ou portal, precisará configurar os nós com o URL correto do balanceador de carga. Por exemplo, os nós da pilha exigem que informações quando:

  • Incluir um URL nas respostas de solicitações da API BaaS.
  • Adicionar links em modelos de e-mail ao redefinir uma senha ou enviar outros notificações.
  • redirecionamento de usuários para páginas específicas do portal

Se você usar um balanceador de carga na frente dos nós de pilha, defina as seguintes propriedades em /opt/apigee/customer/application/usergrid.properties:

usergrid-deployment_swagger.basepath=http://localhost:8080
usergrid-deployment_usergrid.organization.activation.url=http://localhost:8080/management/organizations/%s/activate
usergrid-deployment_usergrid.admin.activation.url=http://localhost:8080/management/users/%s/activate
usergrid-deployment_usergrid.admin.resetpw.url=http://localhost:8080/management/users/%s/resetpw
usergrid-deployment_usergrid.admin.confirmation.url=http://localhost:8080/management/users/%s/confirm
usergrid-deployment_usergrid.user.activation.url=http://localhost:8080/%s/%s/users/%s/activate
usergrid-deployment_usergrid.user.confirmation.url=http://localhost:8080/%s/%s/users/%s/confirm
usergrid-deployment_usergrid.user.resetpw.url=http://localhost:8080/%s/%s/users/%s/resetpw

Substitua http://localhost:8080 pelo URL da carga. de carga. Se o balanceador de carga estiver configurado para usar TLS, utilize o protocolo HTTPS. Você só precisa incluir a porta se estiver usando uma porta não padrão, ou seja, algo diferente da porta. 80 para HTTP e porta 443 para HTTPS.

Também é preciso definir a seguinte propriedade em /opt/apigee/customer/application/portal.properties se use um balanceador de carga na frente dos nós da pilha:

baas.portal.config.overrideUrl=http://localhost:8080

Substitua http://localhost:8080 pelo URL da de carga HTTP(S) externo global para a pilha.

Se você usar um balanceador de carga na frente do nó do portal, defina as seguintes propriedades em usergrid.properties:

usergrid-deployment_usergrid.view.management.organizations.organization.activate=http://localhost:9000
usergrid-deployment_usergrid.view.management.organizations.organization.confirm=http://localhost:9000
usergrid-deployment_usergrid.view.management.users.user.activate=http://localhost:9000
usergrid-deployment_usergrid.view.management.users.user.confirm=http://localhost:9000

Substitua http://localhost:9000 pelo URL do de carga HTTP(S) externo global. Se o balanceador de carga estiver configurado para usar TLS, utilize o protocolo HTTPS. Você só precisa incluir a porta se estiver usando uma porta não padrão, ou seja, algo diferente porta 80 para HTTP e porta 443 para HTTPS.

Depois de editar usergrid.properties e portal.properties:

  1. Configure o nó da pilha:
    &gt; /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid configure
  2. Implante as alterações no Tomcat:
    &gt; /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid deploy
  3. Reinicie a pilha BaaS:
    &gt; /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid reboot
  4. Se você modificou portal.properties, configure nó do portal:
    &gt; /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal configure
  5. Implante as alterações:
    &gt; /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal deploy
  6. Reinicie o portal do BaaS:
    &gt; /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal reiniciar

Integrar uma nova organização

A integração é o processo de criar uma organização e um administrador da organização. Depois criar a organização e o administrador dela, faça login no portal da API BaaS e fazer solicitações à API REST BaaS.

Quando você cria uma organização, o endereço de e-mail do administrador:

  • Precisa ser diferente do endereço de e-mail do administrador do sistema.
  • Precisa ser único entre todas as outras organizações. Ou seja, não é possível criar duas organizações com o mesmo endereço de e-mail do administrador da organização. No entanto, depois de criar organização, é possível adicionar outros administradores que podem ser duplicados em vários organizações.

Para realizar a integração, use o script Python create_org_and_user.py. Invocar esse script sem argumentos de linha de comando faz com que ele solicite todas as informações:

> python create_org_and_user.py

Também é possível transmitir qualquer uma ou todas as opções como argumento de linha de comando. Você precisa inserir todas as informações que você omitir da linha de comando:

> python create_org_and_user.py -o '<org name>'
> python create_org_and_user.py -o '<org name>' -a '<new admin email>' -p '<new admin password>'

Para criar uma organização:

  1. Altere o diretório para /opt/apigee/baas-usergrid/bin.
  2. Invoque o script create_org_and_user.py do Python.
    É solicitado o nome de usuário e a senha de administrador do sistema do BaaS para que apenas um administrador pode executá-lo.
  3. Faça login no portal da API BaaS em um navegador da Web usando o URL que você anotou no final da Instalação do URL do portal do BaaS da API. Para acessar o portal, insira o URL do portal da API BaaS em o formulário:
    http://{portalExternalIP}:9000/

    Observação: o IP é o endereço IP/nome do host externo da máquina do portal. Garanta essa porta está aberta.
  4. Quando a tela de login do portal aparecer, você poderá:
    • Faça login usando o nome de usuário e a senha do administrador da organização.
    • Faça login usando o nome de usuário e a senha do administrador do sistema.

Como acessar a API REST BaaS

Para acessar a API REST BaaS, use um URL no formato:

https://{loadBalancerIP}:8080/{your-org}/{your-app}

Em um ambiente de desenvolvimento, é possível instalar todos os componentes de API BaaS em um único nó, ou seja, você tem uma única pilha de APIs BaaS. Ou você pode ter um ambiente pequeno com uma única Nó de pilha BaaS da API e nenhum balanceador de carga. Nesses tipos de ambientes, é possível fazer chamadas de API diretamente para o nó da pilha de BaaS da API:

curl -v "http://portalExternalIP:8080/status"

Para mais informações sobre como começar a usar o portal de APIs BaaS, consulte a documentação da Apigee em: http://apigee.com/docs/content/build-apps-home.