Installazione dell'API BaaS

Edge for Private Cloud v. 4.16.09

Utilizzo di un bilanciatore del carico

Un'installazione di produzione di API BaaS utilizza un bilanciatore del carico tra il nodo del portale API BaaS e i nodi dello stack API BaaS. Quando configuri il portale, specifichi l'indirizzo IP o il nome DNS del bilanciatore del carico, non dei nodi Stack.

In alternativa a un bilanciatore del carico, puoi utilizzare il DNS round robin. In questo scenario, crei una voce DNS con più record A corrispondenti agli indirizzi IP dello stack BaaS. Durante una ricerca DNS, il server DNS restituisce automaticamente i valori dei record A in modalità round robin.

Connessione a Cassandra

Quando installi BaaS, puoi scegliere di connettere BaaS ed Edge allo stesso cluster Cassandra o di creare un cluster Cassandra separato per BaaS. Le installazioni BaaS più piccole, ovvero quelle con volumi di traffico inferiori, spesso condividono un cluster Cassandra con Edge.

Per un throughput elevato e una disponibilità elevata o per separare i cluster Cassandra in zone di rete diverse, Apigee consiglia di utilizzare cluster Cassandra separati. I cluster separati massimizzano le prestazioni se riscontri carichi di traffico elevati su BaaS.

Sincronizzazione della data

La data e l'ora devono essere sincronizzate su tutti i server. Se non è già configurata, l'utilità "ntpdate" potrebbe servire a questo scopo, verificando se i server sono sincronizzati con l'ora. Puoi utilizzare "yum install ntp" per installare l'utilità.

Sicurezza di Tomcat

Il programma di installazione di API BaaS installa anche il server Apache Tomcat su tutti i nodi dello stack API BaaS, inclusa l'interfaccia utente dell'amministratore di Tomcat. Il programma di installazione lascia invariate le credenziali amministratore predefinite, ovvero admin:admin.

Se necessario, puoi modificare queste credenziali nell'ambito della protezione di Tomcat. Per saperne di più, consulta:

Panoramica dell'installazione

Dopo aver installato l'utilità apigee-setup di Edge su un nodo, utilizzala per installare uno o più componenti BaaS sul nodo. L'utilità apigee-setup ha il seguente formato:

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

Passa all'utilità apigee-setup un file di configurazione contenente le informazioni sull'installazione. Se nel file di configurazione mancano informazioni obbligatorie, l'utilità apigee-setup ti chiede di inserirle nella riga di comando.

L'unico requisito è che il file di configurazione deve essere accessibile o leggibile dall'utente "apigee".

Ad esempio, utilizza il seguente comando per installare lo stack BaaS dell'API:

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

L'utilità Apigee setup.sh supporta diverse opzioni per l'installazione dei componenti API BaaS. Le istruzioni riportate di seguito utilizzano le opzioni autonome (c, e, b e p), ma puoi utilizzare opzioni diverse in base alla configurazione del nodo:

Opzione

Descrizione

e

Installa solo ElasticSearch.

b

Installa solo lo stack API BaaS, che installa anche Tomcat.

p

Installa solo il portale API BaaS, che installa anche il router Nginx da utilizzare come server web.

c

Installa solo Cassandra.

eb

Installa Elasticsearch, lo stack API BaaS e Tomcat sul nodo.

ebp

Installa Elasticsearch, il portale API BaaS, lo stack API BaaS e Tomcat. Il portale è così leggero che non sono necessarie risorse aggiuntive.

asa

Installa tutti i componenti API su un singolo nodo (Cassandra, Elasticsearch, stack API BaaS e portale API BaaS). Utilizza questa opzione solo per lo sviluppo e i test, non per la produzione.

Creazione di un file di configurazione invisibile

Di seguito è riportato un esempio di file di configurazione silenziosa per un'installazione di API BaaS a 10 nodi. Modifica questo file in base alle tue esigenze di configurazione. Utilizza l'opzione -f per setup.sh per includere questo file.

# 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

La tabella seguente contiene ulteriori informazioni su queste proprietà:

Proprietà

Nota

CASS_HOSTS

Se stai installando Cassandra, specifica gli IP dei nodi Cassandra (non i nomi DNS) e includi il modificatore ":dc,ra" che specifica il data center e il rack del nodo Cassandra.

Ad esempio, "192.168.124.201:1,1" = data center 1 e rack/zona di disponibilità 1, mentre "192.168.124.204:2,1" = data center 2 e rack/zona di disponibilità 1.

CASS_USERNAME
CASS_PASSWORD

Nome utente e password di Cassandra.

Se l'autenticazione Cassandra è disabilitata, devi comunque passare questi valori. Tuttavia, i valori vengono ignorati.

BAAS_CASS_LOCALDC

I nomi delle regioni devono essere nel formato dc-#, dove # corrisponde a un valore intero.

Ad esempio, dc-1, dc-2 ecc. Se ti connetti a un cluster Cassandra installato con Edge, puoi chiedere questo valore all'amministratore di sistema di Edge. In un'installazione di Edge in un singolo data center, il valore predefinito è dc-1.

Se hai installato Cassandra nell'ambito dell'installazione di API BaaS, durante l'installazione di Cassandra hai aggiunto il modificatore ":dc,ra" agli indirizzi IP di Cassandra. Il primo valore "dc" è il numero del data center. Il nome del data center è la stringa "dc-" con il numero del data center come suffisso.

BAAS_CASS_REPLICATION

Il formato è "dataCenterName:#CassandraNodes". Ad esempio, per dc-1 con tre nodi Cassandra, è dc-1:3.

BAAS_USERGRID_URL

In un ambiente di produzione, questo è l'URL e la porta del bilanciatore del carico che si trova davanti ai nodi dello stack API BaaS, nel formato:

http://myStackLoadBalancer:8443

In un ambiente di test o sviluppo, in cui hai un solo nodo dello stack API BaaS, questo può essere l'URL e il numero di porta di un nodo dello stack API BaaS, nel formato:

http://stackIPorDNS:8080

Il numero di porta per il server API BaaS Stack è 8080.

BAAS_PORTAL_URL

L'URL e il numero di porta del bilanciatore del carico, se presente davanti al portale, nel formato:

http://myPortalLoadBalancer:8443

Se non è presente un bilanciatore del carico, l'URL e il numero di porta del nodo del portale, nel formato:

http://portalIPorDNS:9000

Per impostazione predefinita, il numero di porta per il portale API BaaS è 9000.

BAAS_PORTAL_LISTEN_PORT

Il numero di porta del server del portale API BaaS è 9000. Se questa porta non è disponibile, specificane un'altra.

Se imposti BAAS_PORTAL_URL sull'URL del nodo del portale, i numeri di porta devono essere gli stessi per entrambe le proprietà.

(Facoltativo) Installa Cassandra: macchine 8, 9 e 10

Sebbene sia possibile connettere API BaaS allo stesso cluster Cassandra utilizzato da Edge, Apigee consiglia di utilizzare cluster separati.

Il cluster Cassandra può utilizzare l'autenticazione oppure l'autenticazione Cassandra può essere disabilitata. Per saperne di più, consulta Attiva l'autenticazione Cassandra.

  1. Installa l'utilità Edge apigee-setup sul nodo utilizzando la procedura con o senza internet. Per saperne di più, consulta Installa l'utilità apigee-setup di Edge.
  2. Al prompt dei comandi, esegui lo script di configurazione:
    > /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile

    L'opzione "-p c" specifica di installare Cassandra.
    Il file di configurazione deve essere accessibile o leggibile dall'utente "apigee".

La configurazione completa correttamente la configurazione del datastore sul nodo.

Tieni presente che JMX è abilitato per impostazione predefinita per Cassandra. L'accesso remoto JMX a Cassandra non richiede una password. Puoi configurare Cassandra in modo che utilizzi l'autenticazione per JMX. Per saperne di più, consulta Come monitorare.

Configura il cron job di Cassandra

Configura un cron job che utilizzi nodetool per eseguire lo svuotamento dei blocchi ogni ora su ogni nodo Cassandra.

Se hai più nodi Cassandra, compensa il cron job su ogni server di cinque minuti in modo che non tutti i nodi eseguano lo svuotamento contemporaneamente.

Il cron job deve eseguire il seguente comando:

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

dove IP_address è l'indirizzo IP del nodo Cassandra.

Installa ElasticSearch: macchina 1, 2 e 3

Per installare ElasticSearch:

  1. Installa l'utilità apigee-setup di Edge sul nodo utilizzando la procedura con o senza connessione a internet. Per saperne di più, consulta Installa l'utilità apigee-setup di Edge.
  2. Al prompt dei comandi, esegui lo script di configurazione:
    > /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile

    L'opzione "-p e" specifica di installare Elasticsearch.
    Il file di configurazione deve essere accessibile o leggibile dall'utente "apigee".
  3. (Facoltativo) Se installi ElasticSearch su un nodo autonomo, ovvero non è installato con API BaaS Stack, regola l'opzione di allocazione della memoria predefinita per aumentare la memoria allocata per ElasticSearch da 4 GB a 6 GB:
    1. Apri /opt/apigee/customer/application/elasticsearch.properties in un editor. Se questo file non esiste, crealo.
    2. Imposta la proprietà setenv_elasticsearch_max_mem_size su 6g (il valore predefinito è 4g):
      setenv_elasticsearch_max_mem_size=6g
    3. Salva il file.
    4. Esegui questo comando:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-elasticsearch restart

La configurazione completa correttamente la configurazione sul nodo.

Installa lo stack API BaaS: macchine 4, 5 e 6

Per installare lo stack API BaaS:

  1. Installa l'utilità apigee-setup di Edge sul nodo utilizzando la procedura con o senza connessione a internet. Per saperne di più, consulta Installa l'utilità apigee-setup di Edge.
  2. Al prompt dei comandi, esegui lo script di configurazione:
    > /opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile

    L'opzione "-p b" specifica di installare lo stack API BaaS.
    Il file di configurazione deve essere accessibile o leggibile dall'utente "apigee".

Dopo che il programma di installazione ha recuperato le credenziali di amministratore corrette, installa Tomcat, crea gli spazi delle chiavi API BaaS e configura lo stack API BaaS sul server. SMTP è configurato anche per consentire alla UI di inviare email di conferma della password.

Installa il portale API BaaS: macchina 7

Per installare il portale API BaaS:

  1. Installa l'utilità apigee-setup di Edge sul nodo utilizzando la procedura con o senza connessione a internet. Per saperne di più, consulta Installa l'utilità apigee-setup di Edge.
  2. Al prompt dei comandi, esegui lo script di configurazione:
    > /opt/apigee/apigee-setup/bin/setup.sh -p p -f configFile

    L'opzione "-p p" specifica di installare il portale API BaaS.
    Il file di configurazione deve essere accessibile o leggibile dall'utente "apigee".

Il programma di installazione avvia il server web Nginx e poi completa la configurazione del portale API BaaS.

Prendi nota dell'URL del portale API BaaS. Questo è l'URL che inserisci in un browser per accedere all'interfaccia utente del portale API BaaS.

Configura i nodi API BaaS per un bilanciatore del carico Stack o Portal

Se includi un bilanciatore del carico davanti ai nodi Stack o Portal, devi configurare i nodi con l'URL corretto del bilanciatore del carico. Ad esempio, i nodi Stack richiedono queste informazioni quando:

  • Includere un URL nelle risposte alle richieste API BaaS.
  • Aggiunta di link nei modelli di email durante la reimpostazione di una password o l'invio di altre notifiche.
  • Reindirizzamento degli utenti a pagine specifiche del portale.

Se utilizzi un bilanciatore del carico davanti ai nodi Stack, imposta le seguenti proprietà in /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

Sostituisci http://localhost:8080 con l'URL del bilanciatore del carico. Se il bilanciatore del carico è configurato per l'utilizzo di TLS, utilizza il protocollo HTTPS. Devi includere la porta solo se utilizzi una porta non standard, ovvero una porta diversa dalla porta 80 per HTTP e dalla porta 443 per HTTPS.

Se utilizzi un bilanciatore del carico davanti ai nodi Stack, devi anche impostare la seguente proprietà in /opt/apigee/customer/application/portal.properties :

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

Sostituisci http://localhost:8080 con l'URL del bilanciatore del carico per lo stack.

Se utilizzi un bilanciatore del carico davanti al nodo del portale, imposta le seguenti proprietà in 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

Sostituisci http://localhost:9000 con l'URL del bilanciatore del carico. Se il bilanciatore del carico è configurato per l'utilizzo di TLS, utilizza il protocollo HTTPS. Devi includere la porta solo se utilizzi una porta non standard, ovvero una porta diversa dalla porta 80 per HTTP e dalla porta 443 per HTTPS.

Dopo aver modificato usergrid.properties e portal.properties:

  1. Configura il nodo Stack:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid configure
  2. Esegui il deployment delle modifiche in Tomcat:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid deploy
  3. Riavvia lo stack BaaS:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid restart
  4. Se hai modificato portal.properties, configura il nodo Portal:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal configure
  5. Esegui il deployment delle modifiche:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal deploy
  6. Riavvia il portale BaaS:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal restart

Onboarding di una nuova organizzazione

L'onboarding è il processo di creazione di un'organizzazione e di un amministratore dell'organizzazione. Dopo aver creato l'organizzazione e l'amministratore dell'organizzazione, puoi accedere alla UI del portale API BaaS ed effettuare richieste all'API REST API BaaS.

Quando crei un'organizzazione, l'indirizzo email dell'amministratore dell'organizzazione:

  • Deve essere diverso dall'indirizzo email dell'amministratore di sistema.
  • Deve essere univoco tra tutte le altre organizzazioni. In altre parole, non puoi creare due organizzazioni con lo stesso indirizzo email per l'amministratore dell'organizzazione. Tuttavia, dopo aver creato l'organizzazione, puoi aggiungere altri amministratori che possono essere duplicati in più organizzazioni.

Per eseguire l'onboarding, utilizza lo script Python create_org_and_user.py. Se richiami questo script senza argomenti della riga di comando, ti verranno richieste tutte le informazioni:

> python create_org_and_user.py

In alternativa, puoi passare una o tutte le opzioni come argomento della riga di comando. Ti verranno richieste le informazioni omesse dalla riga di 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>'

Per creare un'organizzazione:

  1. Cambia la directory in /opt/apigee/baas-usergrid/bin.
  2. Richiama lo script Python create_org_and_user.py.
    Ti vengono richiesti il nome utente e la password dell'amministratore di sistema BaaS in modo che solo un amministratore di sistema possa eseguirlo.
  3. Accedi al portale API BaaS in un browser web utilizzando l'URL annotato alla fine dell'installazione dell'URL del portale API BaaS. Per accedere al portale, inserisci l'URL del portale API BaaS nel seguente formato:
    http://{portalExternalIP}:9000/

    Nota: l'IP è l'indirizzo IP esterno/nome host della macchina del portale. Assicurati che la porta sia aperta.
  4. Quando viene visualizzata la schermata di accesso al portale, puoi:
    • Accedi utilizzando il nome utente e la password dell'amministratore dell'organizzazione.
    • Accedi utilizzando il nome utente e la password dell'amministratore di sistema.

Accesso all'API REST di API BaaS

Per accedere all'API REST di API BaaS, utilizza un URL nel formato:

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

In un ambiente di sviluppo, puoi installare tutti i componenti API BaaS su un singolo nodo, il che significa che hai un singolo stack API BaaS. In alternativa, potresti avere un ambiente di piccole dimensioni con un singolo nodo dello stack API BaaS e nessun bilanciatore del carico. In questi tipi di ambienti, puoi effettuare chiamate API direttamente al nodo dello stack API BaaS:

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

Per saperne di più su come iniziare a utilizzare il portale API BaaS, consulta la documentazione di Apigee all'indirizzo: http://apigee.com/docs/content/build-apps-home.