Instalação do API BaaS

Edge para nuvem privada v4.18.01

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 estiver sem informações necessárias, o utilitário apigee-setup vai solicitar que você as insira na linha de comando.

O único requisito é que o arquivo de configuração precise estar acessível ou legível para o usuário "apigee".

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

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

Como especificar os componentes a serem instalados

O utilitário setup.sh da Apigee oferece suporte a várias opções de instalação de componentes de 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 API BaaS, que também instala o Tomcat.

p

Instale apenas o portal do 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, o API BaaS Stack e o Tomcat no nó.

ebp

Instale o ElasticSearch, o Portal de APIs BaaS, a pilha de APIs BaaS e o Tomcat, mas não o Cassandra. O portal é tão leve que não são necessários outros recursos para isso.

Asa

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

Como criar um arquivo de configuração

O arquivo de configuração contém todas as informações necessárias para instalar o API BaaS. É possível usar o mesmo arquivo de configuração para instalar todos os componentes em uma instalação de BaaS.

Cada topologia de instalação descrita abaixo mostra um exemplo de arquivo de configuração para essa topologia. Para uma referência completa sobre o arquivo de configuração, consulte Referência do arquivo de configuração do BaaS.

Instalar a API BaaS em um único nó

Confira abaixo o arquivo de configuração para instalar o API BaaS em um único nó. Edite esse arquivo conforme necessário para a configuração. Para uma referência completa sobre o arquivo de configuração, consulte Referência do arquivo de configuração do BaaS.

IP1=192.168.56.101   # IP address of single node

# 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

# Because you are installing Cassandra,
# specify Cassandra data center and rack suffix.
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP1:1,1"

# Specify the Cassandra region.
REGION=dc-1

# 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 Cassandra data center name.
BAAS_CASS_LOCALDC=dc-1

# For a single data center, specify the same value as BAAS_CASS_LOCALDC.
BAAS_CASS_DC_LIST=dc-1

# Replication is in the form "dataCenterName:#CassandraNodes". 
# For dc-1 with one Cassandra node, it is dc-1:1.
BAAS_CASS_REPLICATION=dc-1:1

# Defines the initial contact points for members of the BaaS cluster. 
# For a single node install, specify the IP address of the node. 
BAAS_CLUSTER_SEEDS="dc-1:$IP1"

# Single ElasticSearch IP.
ES_HOSTS="$IP1"

# API BaaS Stack information.
# Default cluster name is "apigee_baas"
BAAS_USERGRID_CLUSTERNAME="apigee_baas" 

# IP/DNS and port 8080 of a single Stack node.
BAAS_USERGRID_URL="http://$IP1:8080"

# URL and port of the BaaS Portal node.  
BAAS_PORTAL_URL="http://$IP1: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>"

Para instalar a API BaaS no próprio nó:

  1. Instale o utilitário apigee-setup do Edge no nó usando o procedimento de Internet ou não. 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 asa -f configFile

    A opção "-p asa" especifica a instalação de todos os componentes de API BaaS em um único nó (Cassandra, Elasticsearch, API BaaS Stack, API BaaS Portal, Tomás).
    O arquivo de configuração precisa ser acessível ou legível para o usuário da "apigee".
  3. Como você instalou o ElasticSearch em um nó autônomo, ajuste a opção de memória padrão para aumentar a memória alocada 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
  4. ?Integre uma organização conforme descrito abaixo em Integrar uma nova organização.

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

Instalar a API BaaS em 7 ou 10 nós

O procedimento para instalar uma versão de 7 ou 10 nós da API BaaS é muito semelhante. A única diferença é que, para um:

  • 10, você instala os três componentes do ElasticSearch e os três componentes da pilha BaaS da API em nós separados, para um total de seis nós. Essa é a configuração recomendada para garantir o melhor desempenho porque o ElasticSearch exige uma grande quantidade de E/S de disco e memória.
  • 7, você instala os três componentes do ElasticSearch e três componentes da pilha de BaaS da API nos mesmos nós, para um total de três nós.

Para as versões de 7 e 10 nós da API BaaS, é necessário se conectar a um cluster do Cassandra. Se você já tiver instalado o Edge, poderá se conectar ao cluster do Cassandra. Isso significa que não é necessário instalar o Cassandra como parte da instalação da API BaaS.

Confira abaixo um exemplo de arquivo de configuração silenciosa para uma instalação de BaaS de API de 10 nós. Se você estiver instalando os componentes da pilha do ElasticSearch e da API BaaS nos mesmos três nós, edite o arquivo para que:

  • IP1 e IP4 estão definidos com o mesmo endereço IP
  • IP2 e IP5 estão definidos como o mesmo endereço IP
  • IP3 e IP6 estão definidos com o mesmo endereço IP

Edite esse arquivo conforme necessário para sua configuração. Para uma referência completa sobre o arquivo de configuração, consulte a Referência do arquivo de configuração do BaaS.

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

# Only if you are installing Cassandra.
# Specify Cassandra data center and rack suffix.
# 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"

# Specify the Cassandra region.
REGION=dc-1

# 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.

# For a single data center, specify the same value as BAAS_CASS_LOCALDC.
BAAS_CASS_DC_LIST=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

# Defines the initial contact points for members of the BaaS cluster. 
# Specify the IP address of no more than two Stack nodes. 
BAAS_CLUSTER_SEEDS="dc-1:$IP4,dc-1:$IP5"

# 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
SMTPMAILFROM="My Company <myco@company.com>"

Opcional: instalar Cassandra: máquina 8, 9 e 10

É possível conectar o API BaaS ao mesmo cluster do Cassandra usado pelo Edge. Se você não tiver instalado o Edge, poderá instalar o Cassandra para uso pela API BaaS.

O cluster do Cassandra pode usar autenticação ou a autenticação do Cassandra 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 de configuração da Apigee Apigee 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ó.

Observe que o JMX está ativado por padrão para o Cassandra. O acesso remoto do JMX ao Cassandra não requer 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

Se você precisar instalar o Cassandra, configure um job cron que use o nodetool para limpar as fechaduras e executar a cada hora em cada nó do Cassandra.

Se você tiver vários nós do Cassandra, desloque o job cron em cada servidor em cinco minutos para que todos os nós não sejam limpos ao mesmo tempo.

O job do cron 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 no próprio nó:

  1. Instale o utilitário de configuração apigee-setup do Edge no nó usando o procedimento de Internet ou fora da Internet. Consulte Instalar o utilitário de configuração da Apigee 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ó autônomo, o que significa que ele não está instalado com a API BaaS Stack, ajuste a opção de memória padrão para aumentar a memória alocada para ElasticSearch de 4 GB para 6 GB:
    1. Abra /opt/apigee/customer/application/elasticsearch.properties em um editor. Crie esse arquivo se ele não existir.
    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 é concluída no nó.

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

Para instalar a pilha API BaaS no próprio nó:

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

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

Instalar o portal do BaaS da API: máquina 7

Para instalar o portal do API BaaS:

  1. Instale o utilitário de configuração da Apigee do Edge no nó usando o procedimento de Internet ou não. 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 do 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.
  3. ?A próxima etapa depende da sua instalação.
    1. Se você tiver um balanceador de carga na frente dos nós da pilha Portalor, a próxima seção descreve como configurar o API BaaS para os balanceadores de carga.
    2. Se você não tiver um balanceador de carga na frente dos nós do Portalor Stack, configure uma organização conforme descrito abaixo em Configurar uma nova organização.

Anote o URL do portal do 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 do Stack ou do 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 da pilha exigem essas 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 outras 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 da pilha, defina a propriedade a seguir em /opt/apigee/customer/application/usergrid.properties:

usergrid-deployment_usergrid.api.url.base=http://localhost:8080

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

Também será preciso definir a seguinte propriedade em /opt/apigee/customer/application/portal.properties se você usar um balanceador de carga na frente dos nós de 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_portal.url=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. 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 443 para HTTPS.

Depois de editar usergrid.properties e portal.properties:

  1. Configure o nó da pilha:
    > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid configure
  2. Reinicie a pilha BaaS:
    > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart

    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 dos nós da pilha. Depois de reiniciar esses dois nós em ordem, você pode reiniciar os nós restantes em qualquer ordem.

  3. Se você modificou portal.properties, configure o nó do portal:
    > /opt/apigee/apigee-service/bin/apigee-service baas-portal configure
  4. Reinicie o portal do BaaS:
    > /opt/apigee/apigee-service/bin/apigee-service baas-portal restart

Integrar uma nova organização

O processo de integração é a criação de uma organização e de um administrador dela. Depois de criar a organização e o administrador, faça login na interface 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:

  • 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 para o administrador. No entanto, após 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 opção ou todas elas como argumento da linha de comando. Você vai receber uma solicitação para qualquer informação omitida 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. Mude o diretório para /opt/apigee/baas-usergrid/bin.
  2. Invoque o script create_org_and_user.py do Python.
    Você vai receber uma solicitação para inserir o nome de usuário e a senha do administrador do sistema do BaaS 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 a 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 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ó, ou seja, você tem uma única pilha de API BaaS. Ou você pode ter um ambiente pequeno com um único nó da API BaaS Stack e nenhum balanceador de carga. Nesses tipos de ambientes, é 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 de APIs BaaS, consulte a documentação da Apigee em: http://apigee.com/docs/content/build-apps-home.