Instalação do API BaaS

Edge para nuvem privada v. 4.16.09

Como usar um balanceador de carga

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

Como alternativa a um balanceador de carga, é possível usar o DNS round-robin. Nesse cenário, você cria uma entrada DNS com vários registros A correspondentes aos endereços IP da pilha do BaaS. Durante uma busca DNS, o servidor DNS retorna automaticamente os valores do registro A em um rodízio.

Como se conectar ao Cassandra

Ao instalar o BaaS, é possível conectar o BaaS e o Edge ao mesmo cluster do Cassandra ou criar um cluster separado para o BaaS. As instalações menores do BaaS, ou seja, aquelas com volumes de tráfego mais baixos, 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 o uso de clusters separados do Cassandra. Clusters separados maximizam o desempenho se você estiver enfrentando cargas de tráfego altas no BaaS.

Sincronização de datas

A data/hora em todos os servidores precisa estar sincronizada. Se ainda não estiver configurado, o utilitário "ntpdate" pode servir para essa finalidade, que verifica se os servidores estão sincronizados com o horário. Use "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 da API BaaS, incluindo a interface do administrador do Tomcat. O instalador deixa as credenciais de administrador padrão inalteradas em admin:admin.

Se necessário, é possível mudar essas credenciais como parte da proteção do Tomcat. Para mais informações, consulte:

Visão geral da instalação

Depois de instalar o utilitário apigee-setup do Edge em um nó, use esse utilitário para instalar um ou mais componentes do 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 contém as informações sobre a instalação. Se o arquivo de configuração não tiver as informações necessárias, o utilitário apigee-setup solicitará que você as insira na linha de comando.

O único requisito é que o arquivo de configuração precisa ser acessível ou legível pelo usuário "apigee".

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

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

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

Opção

Descrição

e

Instale apenas o ElasticSearch.

b

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

p

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

c

Instale apenas o Cassandra.

eb

Instale o ElasticSearch, a pilha de API BaaS e o Tomcat no nó.

ebp

Instale o ElasticSearch, o portal da API BaaS, a pilha da API BaaS e o Tomcat. O portal é tão leve que não são necessários recursos adicionais para isso.

asa

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

Como criar um arquivo de configuração silencioso

Veja abaixo um exemplo de arquivo de configuração silenciosa para uma instalação da API BaaS de 10 nós. Edite esse arquivo conforme necessário para sua configuração. Use a opção -f para setup.sh para 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 mais informações sobre essas propriedades:

Propriedade

Observação

CASS_HOSTS

Se você estiver instalando o Cassandra, especifique os IPs do nó do Cassandra (não os nomes DNS) e inclua o modificador ":dc,ra" que especifica o data center e o rack do 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 são ignorados.

BAAS_CASS_LOCALDC

Os nomes das regiões precisam 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, peça esse valor ao administrador do sistema do Edge. Em uma instalação de data center único do Edge, o valor padrão é dc-1.

Se você instalou o Cassandra como parte da instalação da API BaaS, durante a instalação do 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, esse é o URL e a porta do balanceador de carga que está na frente dos nós da pilha da API BaaS, no formato:

http://myStackLoadBalancer:8443

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

http://stackIPorDNS:8080

O número da porta do servidor da pilha da API BaaS é 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

Se não houver um balanceador de carga, o URL e o número da porta do nó do portal, no formato:

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 essa porta não estiver disponível, especifique outra.

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

Opcional: instalar o Cassandra: máquinas 8, 9 e 10

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

O cluster do Cassandra pode usar a autenticação ou ela pode ser desativada. Consulte Ativar a autenticação do Cassandra para mais informações.

  1. Instale o utilitário apigee-setup do Edge no nó usando o procedimento com ou sem Internet. Consulte Instalar o utilitário apigee-setup do Edge para mais informações.
  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 pelo usuário "apigee".

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

O JMX é ativado por padrão para o Cassandra. O acesso remoto JMX ao Cassandra não requer uma senha. É possível configurar o Cassandra para usar a autenticação para JMX. Para mais informações, consulte Como monitorar.

Configurar o cron job do Cassandra

Configure um cron job que use nodetool para limpar os bloqueios e ser executado a cada hora em cada nó do Cassandra.

Se você tiver vários nós do Cassandra, desloque o cron job em cada servidor em cinco minutos para que todos os nós não sejam limpos 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. Instale o utilitário apigee-setup do Edge no nó usando o procedimento com ou sem Internet. Consulte Instalar o utilitário apigee-setup do Edge para mais informações.
  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 pelo usuário "apigee".
  3. (Opcional) Se você instalar o ElasticSearch em um nó independente, ou seja, ele não será instalado com a pilha de API BaaS, ajuste a opção de memória padrão para aumentar a alocação de memória para o ElasticSearch de 4 GB para 6 GB:
    1. Abra /opt/apigee/customer/application/elasticsearch.properties em um editor. Se esse arquivo não existir, crie-o.
    2. Defina a propriedade setenv_elasticsearch_max_mem_size como 6g (o padrão é 4g):
      setenv_elasticsearch_max_mem_size=6g
    3. Salve o arquivo.
    4. Execute o seguinte comando:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-elasticsearch restart

A configuração conclui a configuração no nó.

Instalar a pilha da API BaaS: máquinas 4, 5 e 6

Para instalar a pilha de BaaS da API:

  1. Instale o utilitário apigee-setup do Edge no nó usando o procedimento com ou sem Internet. Consulte Instalar o utilitário apigee-setup do Edge para mais informações.
  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 da API BaaS.
    O arquivo de configuração precisa ser acessível ou legível pelo usuário "apigee".

Depois que o instalador busca as credenciais de administrador corretas, ele instala o Tomcat, cria keyspaces da API BaaS e configura a pilha da API BaaS no servidor. O SMTP também é configurado para permitir que a IU envie e-mails de confirmação de senha.

Instalar o portal da API BaaS: máquina 7

Para instalar o portal da API BaaS:

  1. Instale o utilitário apigee-setup do Edge no nó usando o procedimento com ou sem Internet. Consulte Instalar o utilitário apigee-setup do Edge para mais informações.
  2. No prompt de comando, execute o script de configuração:
    > /opt/apigee/apigee-setup/bin/setup.sh -p p -f configFile

    A opção "-p p" especifica a instalação do portal da API BaaS.
    O arquivo de configuração precisa ser acessível ou legível pelo usuário "apigee".

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

Anote o URL do portal da API BaaS. Esse é o URL que você insere em um navegador para acessar a interface do usuário do portal da API BaaS.

Configurar nós da API BaaS para um balanceador de carga de pilha ou portal

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

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

Se você usar um balanceador de carga na frente dos nós da 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 do balanceador de carga. Se o balanceador de carga estiver configurado para usar TLS, use o protocolo HTTPS. Só é necessário incluir a porta se você estiver usando uma porta não padrão, ou seja, algo diferente da porta 80 para HTTP e da porta 443 para HTTPS.

Você também precisa definir a seguinte propriedade em /opt/apigee/customer/application/portal.properties se usar um balanceador de carga na frente dos nós da pilha:

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

Substitua http://localhost:8080 pelo URL do balanceador de carga da 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 balanceador de carga. Se o balanceador de carga estiver configurado para usar TLS, use o protocolo HTTPS. Só é necessário incluir a porta se você estiver usando uma porta não padrão, ou seja, algo diferente da porta 80 para HTTP e da porta 443 para HTTPS.

Depois de editar usergrid.properties e portal.properties:

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

Integração de uma nova organização

A integração é o processo de criação de uma organização e de um administrador da organização. Depois de criar a organização e o administrador da organização, faça login na IU do portal da API BaaS e faça solicitações para a API REST da API BaaS.

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

  • Precisa ser diferente do endereço de e-mail do administrador do sistema.
  • Precisa ser exclusivo entre todas as outras organizações. Ou seja, não é possível criar duas organizações com o mesmo endereço de e-mail para o administrador da organização. No entanto, depois de criar a organização, é possível adicionar outros administradores que podem ser duplicados em várias 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

Como alternativa, é possível transmitir qualquer uma ou todas as opções como argumento de linha de comando. Você vai precisar informar as informações que omitir na 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. Mude o diretório para /opt/apigee/baas-usergrid/bin.
  2. Invoque o script Python create_org_and_user.py.
    O nome de usuário e a senha do administrador do sistema BaaS são solicitados para que apenas um administrador do sistema possa 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 da API BaaS. Para acessar o portal, insira o URL do portal da API BaaS no formulário:
    http://{portalExternalIP}:9000/

    Observação: o IP é o endereço IP externo/nome do host da máquina do portal. Verifique se 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 da API BaaS

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

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

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

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

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