Instalacja interfejsu BaaS API

Edge for Private Cloud w wersji 4.18.01

Omówienie instalacji

Po zainstalowaniu na węźle narzędzia apigee-setup w Edge możesz użyć tego narzędzia do zainstalowania na węźle co najmniej jednego komponentu BaaS.

.

Narzędzie apigee-setup ma postać:

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

Przekaż plik konfiguracji do narzędzia apigee-setup, który zawiera informacje o instalacji. Jeśli w pliku konfiguracji brakuje jakichkolwiek wymaganych informacji, narzędzie apigee-setup wyświetli prośbę o ich wpisanie w wierszu poleceń.

Jedynym wymaganiem jest to, aby plik konfiguracji był dostępny lub czytelny dla użytkownika „apigee”.

Aby na przykład zainstalować pakiet API BaaS Stack, użyj tego polecenia:

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

Określanie komponentów do zainstalowania

Narzędzie Apigee setup.sh obsługuje kilka opcji instalacji komponentów BaaS API. W instrukcjach poniżej użyto opcji samodzielnych (c, e, b i p), ale możesz użyć innych opcji w zależności od konfiguracji węzła:

Opcja

Opis

e

Zainstaluj tylko ElasticSearch.

b

Zainstaluj tylko pakiet API BaaS Stack, który instaluje też Tomcat.

p

Zainstaluj tylko portal API BaaS, który instaluje też router Nginx używany jako serwer WWW.

C

Zainstaluj tylko Cassandra.

eb

Zainstaluj w węźle ElasticSearch, stos BaaS API i Tomcat.

ebp

Zainstaluj ElasticSearch, API BaaS Portal, API BaaS Stack i Tomcat, ale nie Cassandra. Portal jest lekki, więc nie wymaga dodatkowych zasobów.

asa

Zainstaluj wszystkie komponenty BaaS API na jednym węźle (Cassandra, Elasticsearch, stos BaaS API, portal BaaS API, Tomcat). Używaj tej opcji tylko do programowania i testowania, a nie w środowisku produkcyjnym.

Tworzenie pliku konfiguracji

Plik konfiguracji zawiera wszystkie informacje potrzebne do zainstalowania interfejsu API BaaS. Często można używać tego samego pliku konfiguracji do instalowania wszystkich komponentów w usłudze BaaS.

Każda opisana poniżej topologia instalacji zawiera przykładowy plik konfiguracji dla tej topologii. Pełne informacje na temat pliku konfiguracji znajdziesz w artykule Dokumentacja pliku konfiguracji BaaS.

Instalowanie BaaS API na jednym węźle

Poniżej znajduje się plik konfiguracyjny instalacji interfejsu API BaaS w jednym węźle. Edytuj ten plik zgodnie z potrzebami konfiguracji. Pełną dokumentację dotyczącą pliku konfiguracji znajdziesz w artykule Informacje o pliku konfiguracji 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>"

Aby zainstalować API BaaS na osobnym węźle:

  1. Zainstaluj na węźle narzędzie apigee-setup Edge, korzystając z procedury internetowej lub bez użycia internetu. Więcej informacji znajdziesz w artykule Instalowanie narzędzia apige-setup w Edge.
  2. W wierszu polecenia uruchom skrypt konfiguracji:
    > /opt/apigee/apigee-setup/bin/setup.sh -p asa -f configFile

    Opcja „-p asa” określa instalację wszystkich komponentów API BaaS w jednym węźle (Cassandra, Elasticsearch, API BaaS Port, API Baa).
    Plik konfiguracji musi być dostępny lub czytelny dla użytkownika „apigee”.
  3. Ponieważ ElasticSearch został zainstalowany na autonomicznym węźle, zmień domyślną opcję pamięci, aby zwiększyć ilość pamięci przydzielonej ElasticSearch z 4 GB do 6 GB:
    1. Otwórz plik /opt/apigee/customer/application/elasticsearch.properties w edytorze. Jeśli plik nie istnieje, utwórz go.
    2. Ustaw parametr setenv_elasticsearch_max_mem_size na 6g (domyślnie 4g):
      setenv_elasticsearch_max_mem_size=6g
    3. Zapisz plik.
    4. Uruchom to polecenie:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-elasticsearch restart
  4. ?Zarejestruj organizację w sposób opisany poniżej w sekcji Wprowadzanie nowej organizacji.

Konfiguracja została pomyślnie ukończona na węźle.

Instalowanie BaaS API na 7 lub 10 węzłach

Procedura instalacji wersji interfejsu API BaaS z 7 lub 10 węzłami jest bardzo podobna. Jedyna różnica polega na tym, że w przypadku:

  • Instalacja 10 węzłów: 3 komponenty ElasticSearch i 3 komponenty interfejsu API BaaS Stack na oddzielnych węzłach, w sumie 6 węzłów. Jest to zalecana konfiguracja zapewniająca najwyższą wydajność, ponieważ ElasticSearch wymaga dużej ilości pamięci i operacji wejścia/wyjścia na dysku.
  • W 7 węzłach instalujesz 3 komponenty ElasticSearch i 3 komponenty stosu BaaS API w tych samych węzłach, co daje łącznie 3 węzły.

W przypadku wersji BaaS z 7 i 10 węzłami musisz połączyć się z klastrem Cassandra. Jeśli masz już zainstalowaną przeglądarkę Edge, możesz połączyć się z jej klastrem Cassandra, co oznacza, że nie musisz instalować Cassandra w ramach instalowania interfejsu API BaaS.

Poniżej znajduje się przykładowy plik konfiguracji cichej dla instalacji BaaS interfejsu API z 10 węzłami. Jeśli instalujesz komponenty ElasticSearch i Baas API na tych samych 3 węzłach, zmodyfikuj plik, aby:

  • IP1 i IP4 mają ustawiony ten sam adres IP
  • IP2 i IP5 mają ustawiony ten sam adres IP
  • IP3 i IP6 mają ustawiony ten sam adres IP

W razie potrzeby edytuj ten plik w sposób odpowiedni do swojej konfiguracji. Pełną dokumentację dotyczącą pliku konfiguracji znajdziesz w artykule Informacje o pliku konfiguracji usługi 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>"

Opcjonalnie – zainstaluj: Cassandra: maszyny 8, 9 i 10

Możesz połączyć API BaaS z tym samym klastrem Cassandra, którego używa Edge. Jeśli nie masz zainstalowanej przeglądarki Edge, możesz opcjonalnie zainstalować Cassandra do użycia przez interfejs API BaaS.

Klaster Cassandra może używać uwierzytelniania lub można wyłączyć uwierzytelnianie Cassandra. Więcej informacji znajdziesz w artykule Włączanie uwierzytelniania Cassandra.

  1. Zainstaluj na węźle narzędzie apigee-setup Edge, korzystając z internetu lub procedury bez dostępu do internetu. Więcej informacji znajdziesz w artykule Instalowanie narzędzia Edge apigee-setup.
  2. W wierszu polecenia uruchom skrypt konfiguracji:
    > /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile

    Opcja „-p c” wskazuje, że chcesz zainstalować Cassandra.
    Plik konfiguracji musi być dostępny lub czytelny dla użytkownika „apigee”.

Konfiguracja kończy konfigurowanie magazynu danych na węźle.

Zwróć uwagę, że standard JMX jest domyślnie włączony dla Cassandra. Dostęp zdalny JMX do Cassandra nie wymaga hasła. Możesz skonfigurować Cassandra, aby używała uwierzytelniania dla JMX. Więcej informacji znajdziesz w artykule Jak korzystać z funkcji monitorowania.

Konfigurowanie zadania cron w Cassandra

Jeśli musisz zainstalować Cassandra, skonfiguruj zadanie crona, które używa narzędzia nodetool do wyczyszczania blokad co godzinę na każdym węźle Cassandra.

Jeśli masz wiele węzłów Cassandra, przesuń zadanie cron na każdym serwerze o 5 minut, aby wszystkie węzły nie zostały opróżnione w tym samym czasie.

Zadanie cron musi wykonać to polecenie:

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

gdzie IP_address to adres IP węzła Cassandra.

Instalacja ElasticSearch: maszyna 1, 2 i 3

Aby zainstalować ElasticSearch w osobnym węźle:

  1. Zainstaluj na węźle narzędzie apige-setup z Edge, korzystając z internetu lub procedury bez internetu. Więcej informacji znajdziesz w artykule Instalowanie narzędzia apige-setup w Edge.
  2. W wierszu poleceń uruchom skrypt konfiguracji:
    > /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile

    Opcja „-p e” wskazuje, że chcesz zainstalować ElasticSearch.
    Plik konfiguracji musi być dostępny lub czytelny dla użytkownika „apigee”.
  3. (Opcjonalnie) Jeśli instalujesz ElasticSearch na autonomicznym węźle, czyli nie instalujesz go za pomocą pakietu API BaaS Stack, zmień domyślną opcję pamięci, aby zwiększyć ilość pamięci przydzielonej ElasticSearch z 4 GB do 6 GB:
    1. Otwórz plik /opt/apigee/customer/application/elasticsearch.properties w edytorze. Jeśli plik nie istnieje, utwórz go.
    2. Ustaw wartość parametru setenv_elasticsearch_max_mem_size na 6g (domyślnie 4g):
      setenv_elasticsearch_max_mem_size=6g
    3. Zapisz plik.
    4. Uruchom to polecenie:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-elasticsearch restart

Konfiguracja została pomyślnie ukończona na węźle.

Instalowanie pakietu API BaaS: maszyna 4, 5 i 6

Aby zainstalować pakiet API BaaS Stack na osobnym węźle:

  1. Zainstaluj na węźle narzędzie apige-setup z Edge, korzystając z internetu lub procedury bez internetu. Więcej informacji znajdziesz w artykule Instalowanie narzędzia apige-setup w Edge.
  2. Uruchom skrypt konfiguracji w wierszu poleceń:
    > /opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile

    Opcja „-p b” wskazuje, że chcesz zainstalować pakiet API BaaS.
    Plik konfiguracji musi być dostępny lub czytelny dla użytkownika „apigee”.

Po pobraniu prawidłowych danych logowania administratora instalator instaluje Tomcat, tworzy klucze BaaS API i konfiguruje na serwerze pakiet BaaS API. SMTP jest też skonfigurowany tak, aby umożliwić interfejsowi wysyłanie e-maili z potwierdzeniem hasła.

Instalowanie portalu BaaS API: maszyna

Aby zainstalować interfejs API BaaS Portal:

  1. Zainstaluj na węźle narzędzie apige-setup z Edge, korzystając z internetu lub procedury bez internetu. Więcej informacji znajdziesz w artykule Instalowanie narzędzia Edge apigee-setup.
  2. Uruchom skrypt konfiguracji w wierszu poleceń:
    > /opt/apigee/apigee-setup/bin/setup.sh -p p -f configFile

    Opcja „-p p” wskazuje, że chcesz zainstalować portal BaaS API.
    Plik konfiguracji musi być dostępny lub czytelny dla użytkownika „apigee”.

    Instalator uruchamia serwer WWW Nginx, a następnie kończy konfigurację portalu BaaS API.
  3. Kolejny krok zależy od instalacji.
    1. Jeśli przed węzłami stosu portali lub równoważnika obciążenia znajduje się system równoważenia obciążenia, w następnej sekcji dowiesz się, jak skonfigurować interfejs BaaS interfejsu API pod kątem systemów równoważenia obciążenia.
    2. Jeśli nie masz systemu równoważenia obciążenia przed węzłami Portalu lub stosu, zainicjuj proces rejestracji organizacji w sposób opisany poniżej w sekcji Rejestracja nowej organizacji.

Zanotuj adres URL portalu BaaS API. To adres URL, który wpisujesz w przeglądarce, aby otworzyć interfejs użytkownika portalu API BaaS.

Konfigurowanie węzłów API BaaS dla systemu równoważenia obciążenia Stack lub Portal

Jeśli umieścisz system równoważenia obciążenia przed węzłami stosu lub portali, musisz skonfigurować w węzłach prawidłowy adres URL systemu równoważenia obciążenia. Na przykład węzły zbiorcze wymagają tych informacji, gdy:

  • Dodawanie adresu URL w odpowiedziach na żądania interfejsu API BaaS.
  • Dodawanie linków w szablonach e-maili podczas resetowania hasła lub wysyłania innych powiadomień.
  • Przekierowywanie użytkowników na strony konkretnych portali.

Jeśli używasz systemu równoważenia obciążenia przed węzłami stosu, ustaw tę właściwość w pliku /opt/apigee/customer/application/usergrid.properties:

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

Zastąp http://localhost:8080 adresem URL systemu równoważenia obciążenia. Jeśli system równoważenia obciążenia jest skonfigurowany do używania protokołu TLS, użyj protokołu HTTPS. Portu musisz użyć tylko wtedy, gdy używasz portu niestandardowego, czyli innego niż port 80 dla HTTP i 443 dla HTTPS.

Jeśli używasz systemu równoważenia obciążenia przed węzłami stosu, musisz też ustawić tę właściwość w /opt/apigee/customer/application/portal.properties :

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

Zastąp http://localhost:8080 adresem URL systemu równoważenia obciążenia dla tej grupy.

Jeśli używasz systemu równoważenia obciążenia przed węzłem Portal, w pliku usergrid.properties ustaw te właściwości:

usergrid-deployment_portal.url=http://localhost:9000

Zastąp http://localhost:9000 adresem URL systemu równoważenia obciążenia. Jeśli system równoważenia obciążenia jest skonfigurowany do używania protokołu TLS, użyj protokołu HTTPS. Musisz uwzględnić port tylko wtedy, gdy używasz portu niestandardowego, czyli innego niż port 80 dla HTTP i 443 dla HTTPS.

Po edytowaniu plików usergrid.propertiesi portal.properties:

  1. Skonfiguruj węzeł zbioru:
    > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid configure
  2. Ponownie uruchom BaaS Stack:
    > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart

    Uwaga: podczas restartowania węzłów usługi BaaS należy je uruchamiać w tej samej kolejności, w jakiej są wymienione w parametrye BAAS_CLUSTER_SEEDS. BAAS_CLUSTER_SEEDS zawiera maksymalnie 2 węzły zbioru. Po ponownym uruchomieniu tych 2 węzłów możesz to zrobić w dowolnej kolejności.

  3. Jeśli zmodyfikowano plik portal.properties, skonfiguruj węzeł Portal:
    > /opt/apigee/apigee-service/bin/apigee-service baas-portal configure
  4. Ponownie uruchom porat BaaS:
    > /opt/apigee/apigee-service/bin/apigee-service baas-portal restart

Wprowadzanie nowej organizacji

Rejestracja to proces tworzenia organizacji i jej administratora. Po utworzeniu organizacji i administratora organizacji możesz zalogować się w interfejsie API BaaS Portal i przesyłać żądania do interfejsu API BaaS REST API.

Gdy utworzysz organizację, adres e-mail jej administratora:

  • Musi być inny niż adres e-mail administratora systemu.
  • Musi być niepowtarzalna wśród wszystkich innych organizacji. Oznacza to, że nie możesz utworzyć 2 organizacji z tym samym adresem e-mail administratora. Po utworzeniu organizacji możesz jednak dodać kolejnych administratorów, których można powielać w różnych organizacjach.

Aby przeprowadzić proces wdrożenia, użyj skryptu Pythona create_org_and_user.py. Wywoływanie tego skryptu bez argumentów wiersza poleceń powoduje, że prosi o podanie wszystkich informacji:

> python create_org_and_user.py

Możesz też przekazać dowolną opcję lub wszystkie opcje jako argumenty wiersza poleceń. Pojawi się prośba o podanie wszystkich informacji, które zostaną pominięte w wierszu poleceń:

> 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>'

Aby utworzyć organizację:

  1. Zmień katalog na /opt/apigee/baas-usergrid/bin.
  2. Uruchom skrypt Pythona create_org_and_user.py.
    Pojawi się prośba o podanie nazwy użytkownika i hasła administratora systemu BaaS, aby tylko administrator Sys mógł go uruchomić.
  3. Zaloguj się w porcie API BaaS w przeglądarce, korzystając z adresu URL zapisanego na końcu adresu URL instalacji portalu API BaaS. Aby uzyskać dostęp do portalu, wpisz adres URL portalu BaaS API w formacie:
    http://{portalExternalIP}:9000/

    Uwaga: to zewnętrzny adres IP/nazwa hosta portalu portalu. Upewnij się, że port jest otwarty.
  4. Gdy pojawi się ekran logowania do portalu, możesz:
    • Zaloguj się przy użyciu nazwy użytkownika i hasła administratora organizacji.
    • Zaloguj się przy użyciu nazwy użytkownika i hasła administratora systemu.

Dostęp do interfejsu API BaaS REST

Aby uzyskać dostęp do interfejsu API BaaS REST, użyj adresu URL w formacie:

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

W środowisku programistycznym możesz zainstalować wszystkie komponenty BaaS API na jednym węźle, co oznacza, że masz jedną grupę komponentów BaaS API. Możesz też mieć małe środowisko z jednym węzłem API BaaS Stack i bez systemu równoważenia obciążenia. W tych typach środowisk można wykonywać wywołania interfejsu API bezpośrednio do węzła stosu BaaS API:

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

Więcej informacji o pierwszych krokach z portalem API BaaS znajdziesz w dokumentacji Apigee na stronie http://apigee.com/docs/content/build-apps-home.