Installazione dell'API BaaS a 7 e 10 host

Edge per Private Cloud v. 4.16.05

Utilizzo di un bilanciatore del carico

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

In alternativa a un bilanciatore del carico, puoi utilizzare il DNS round-robin. In questo scenario, creerai 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 modo "round robin".

Connessione a Cassandra

Durante l'installazione di BaaS, puoi scegliere di connettere BaaS ed Edge allo stesso cluster Cassandra o creare un cluster Cassandra separato per BaaS. Le installazioni BaaS più piccole, ovvero con volumi di traffico più bassi, spesso condividono un cluster Cassandra con Edge.

Per la velocità effettiva e la disponibilità elevate 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 data

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

Sicurezza Tomcat

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

Se necessario, puoi modificare queste credenziali per proteggere Tomcat. Per maggiori informazioni, consulta:

Panoramica dell'installazione

Dopo aver installato Edge, l'utilità apigee-setup su un nodo, utilizza questa utilità 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 un file di configurazione all'utilità apigee-setup che contiene le informazioni sull'installazione. Se nel file di configurazione mancano eventuali informazioni richieste, l'utilità apigee-setup ti chiede di inserirle nella riga di comando.

L'unico requisito è che il file di configurazione sia accessibile o leggibile dall'utente "apigee". Ad esempio, inserisci il file nella directory /tmp sul nodo.

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

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

L'utilità setup.sh Apigee 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 l'API BaaS Stack, 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, API BaaS Stack e Tomcat sul nodo.

ebp

Installa ElasticSearch, il portale API BaaS, l'API BaaS Stack e Tomcat. Il portale è quindi leggero e non sono necessarie risorse aggiuntive.

asa

Installa tutti i componenti API su un singolo nodo (Cassandra, Elasticsearch, API BaaS Stack 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 all'utente

Di seguito è riportato un esempio di file di configurazione invisibile all'utente per un'installazione BaaS con API a 10 nodi. Modifica questo file in base alle esigenze della tua 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 informazioni aggiuntive su queste proprietà:

Proprietà

Nota

CASS_HOSTS

Se stai installando Cassandra, specifica gli IP del nodo 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 e "192.168.124.204:2,1 = data center 2 e rack/zona di disponibilità 1.

CASS_USERNAME
CASS_PASSWORD

Nome utente e password Cassandra.

Se l'autenticazione Cassandra è disattivata, 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 e così via. Se ti stai connettendo a un cluster Cassandra installato con Edge, puoi chiedere questo valore all'amministratore di sistema Edge. In un'installazione di un singolo data center Edge, il valore predefinito è dc-1.

Se hai installato Cassandra durante l'installazione dell'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, l'URL e la porta del bilanciatore del carico che si trovano davanti ai nodi dello stack BaaS dell'API sono:

http://myStackLoadBalancer:8443

In un ambiente di test o di sviluppo, in cui hai un solo nodo API BaaS Stack, i valori possono essere l'URL e il numero di porta di un nodo dello stack BaaS API 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 ne esiste uno 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
Il numero della porta B0S per impostazione predefinita è

BAAS_PORTAL_LISTEN_PORT

Il numero di porta per il server del portale API BaaS è 9000. Se questa porta non è disponibile, specificane una diversa.

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: macchina 8, 9 e 10

Sebbene sia possibile connettere l'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 Attivare l'autenticazione Cassandra.

  1. Installa l'utilità Edge apigee-setup sul nodo utilizzando la procedura Internet o non internet. Per saperne di più, consulta Installare l'utilità Edge apigee-setup.
  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". Ad esempio, inserisci il file nella directory /tmp sul nodo.

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 ulteriori informazioni, consulta Come monitorare.

Configura cron job di Cassandra

Configura un cron job che utilizza nodetool per eseguire lo svuotamento dei blocchi in modo che vengano eseguiti ogni ora su ogni nodo Cassandra.

Se disponi di più nodi Cassandra, applica un offset di cinque minuti per il cron job su ciascun server, in modo che i nodi non vengano eliminati contemporaneamente.

Il cron job deve eseguire il comando seguente:

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

dove IP_address è l'indirizzo IP del nodo Cassandra.

Installa ElasticSearch: Machine 1, 2 e 3

Per installare ElasticSearch:

  1. Installa l'utilità Edge apigee-setup sul nodo utilizzando la procedura internet o non internet. Per saperne di più, consulta Installare l'utilità Edge apigee-setup.
  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". Ad esempio, inserisci il file nella directory /tmp sul nodo.
  3. (Facoltativo) Se installi ElasticSearch su un nodo autonomo, ovvero non è installato con l'API BaaS Stack, modifica l'opzione di 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 il file non esiste, crealo.
    2. Imposta la proprietà setenv_elasticsearch_max_mem_size su 6 g (il valore predefinito è 4 g):
      setenv_elasticsearch_max_mem_size=6g
    3. Salva il file.
    4. Esegui il seguente comando:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-elasticsearch companion

La configurazione sul nodo è stata completata correttamente.

Installa stack API BaaS: macchine 4, 5 e 6

Per installare lo stack BaaS dell'API:

  1. Installa l'utilità Edge apigee-setup sul nodo utilizzando la procedura internet o non internet. Per saperne di più, consulta Installare l'utilità Edge apigee-setup.
  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 BaaS dell'API.
    Il file di configurazione deve essere accessibile o leggibile dall'utente "apigee". Ad esempio, inserisci il file nella directory /tmp sul nodo.

Dopo che il programma di installazione recupera le credenziali amministrative corrette, installa Tomcat, crea spazi delle chiavi API BaaS e configura lo stack BaaS dell'API sul server. SMTP è configurato anche per consentire all'interfaccia utente di inviare email di conferma della password.

Installa il portale API BaaS: macchina 7

Per installare il portale API BaaS:

  1. Installa l'utilità Edge apigee-setup sul nodo utilizzando la procedura internet o non internet. Per saperne di più, consulta Installare l'utilità Edge apigee-setup.
  2. Al prompt dei comandi, esegui lo script di configurazione:
    > /opt/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". Ad esempio, inserisci il file nella directory /tmp sul nodo.

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 BaaS dell'API.

Configura nodi API BaaS per un bilanciatore del carico stack o portale

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

  • Inclusione di un URL nelle risposte delle richieste API BaaS.
  • Aggiunta di link nei modelli email quando si reimposta una password o si inviano altre notifiche.
  • Reindirizzamento degli utenti a pagine specifiche del portale.

Se utilizzi un bilanciatore del carico davanti ai nodi dello 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.

Inoltre, se utilizzi un bilanciatore del carico davanti ai nodi dello stack, devi 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 Portal, 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, vale a dire 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 a 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 reboot

Onboarding di una nuova organizzazione

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

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. Ciò significa che 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 vengono chieste tutte le informazioni:

> python create_org_and_user.py

In alternativa, puoi passare una o tutte le opzioni come argomento della riga di comando. Vengono richieste le eventuali 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 verranno chiesti il nome utente e la password dell'amministratore di sistema BaaS in modo che solo un amministratore di sistema possa eseguirli.
  3. Accedi al portale API BaaS in un browser web utilizzando l'URL indicato alla fine dell'installazione dell'URL del portale BaaS API. Per accedere al portale, inserisci l'URL del portale API BaaS nel 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 nome utente e password dell'amministratore di sistema.

Accesso all'API REST BaaS dell'API

Per accedere all'API REST BaaS dell'API, 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 avere un singolo stack BaaS API. Oppure potresti avere un ambiente di piccole dimensioni con un singolo nodo API BaaS Stack e nessun bilanciatore del carico. In questi tipi di ambienti, puoi effettuare chiamate API direttamente al nodo API BaaS Stack:

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

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