Instalacja interfejsu BaaS API

Edge for Private Cloud w wersji 4.17.01

Omówienie instalacji

Po zainstalowaniu w węźle Edge narzędzia apigee-setup użyj go, aby zainstalować w nim co najmniej 1 komponent 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 konfiguracyjnym brakuje wymaganych informacji, narzędzie apigee-setup wyświetli komunikat z prośbą o ich podanie na wierszu poleceń.

Jedynym wymaganiem jest to, aby plik konfiguracji był dostępny i 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 BaaS API, który instaluje też router Nginx do użycia 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 do celów produkcyjnych.

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łną dokumentację dotyczącą pliku konfiguracji znajdziesz w artykule Informacje o pliku konfiguracji BaaS.

Instalowanie BaaS API na jednym węźle

Poniżej znajduje się plik konfiguracji do instalowania BaaS API na jednym węźle. W razie potrzeby edytuj ten plik w celu dostosowania go do swojej 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

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 Edge apigee-setup.
  2. W wierszu poleceń uruchom skrypt konfiguracji:
    > /opt/apigee/apigee-setup/bin/setup.sh -p asa -f configFile

    Opcja „-p asa” wskazuje, że wszystkie komponenty BaaS API mają zostać zainstalowane na jednym węźle (Cassandra, Elasticsearch, pakiet BaaS API, portal BaaS API, Tomcat).
    Plik konfiguracji musi być dostępny lub czytelny dla użytkownika „apigee”.
  3. Ponieważ zainstalowano ElasticSearch w samodzielnym 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ę zgodnie z opisem w sekcji Rejestracja organizacji.

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

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

Procedura instalowania 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, która zapewnia największą wydajność, ponieważ ElasticSearch wymaga dużej ilości pamięci i operacji wejścia/wyjścia na dysku.
  • Instalacja 7 węzłów: instalujesz 3 komponenty ElasticSearch i 3 komponenty BaaS API. Umieszczasz je na tych samych węzłach, co daje w sumie 3 węzły.

W przypadku wersji BaaS API z węzłami 7 i 10 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 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

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

Możesz połączyć BaaS API 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 narzędzie Edge apigee-setup w węźle, wykonując procedurę z użyciem internetu lub poza internetem. 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 c -f configFile

    Opcja „-p c” określa instalację systemu Cassandra.
    Plik konfiguracji musi być dostępny lub czytelny dla użytkownika „apigee”.

Konfiguracja kończy konfigurację magazynu danych w węźle.

Pamiętaj, że JMX jest domyślnie włączony w przypadku Cassandra. Dostęp zdalny JMX do Cassandra nie wymaga hasła. Możesz skonfigurować Cassandra tak, 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.

Zadaniem crona musi być wykonanie tego polecenia:

/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 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. W wierszu polecenia uruchom skrypt konfiguracji:
    > /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile

    Opcja „-p e” określa instalację 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 tego pliku nie ma, 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.

Zainstaluj portal API BaaS: maszyna 7

Aby zainstalować portal BaaS API:

  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 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 masz system równoważenia obciążenia przed węzłami Portalu lub Stack, w następnej sekcji znajdziesz opis konfigurowania BaaS API dla 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 przed węzłami stosu lub portalu umieścisz system równoważenia obciążenia, musisz skonfigurować węzły, podając poprawny 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 do określonych stron Portalu.

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 równoważnika obciążenia przed węzłami stosu, musisz też ustawić tę właściwość w pliku /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 wprowadzeniu zmian w plikach usergrid.properties i portal.properties:

  1. Skonfiguruj węzeł zbioru:
    > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid configure
  2. Ponownie uruchom stos BaaS:
    > /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 uruchomieniu tych dwóch węzłów w kolejności możesz uruchomić pozostałe węzły w dowolnej kolejności.

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

Wprowadzanie nowej organizacji

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

Gdy tworzysz organizację, adres e-mail administratora organizacji:

  • 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łanie tego skryptu bez argumentów wiersza poleceń spowoduje wyświetlenie 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: adres IP to zewnętrzny adres IP lub nazwa hosta maszyny 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 w 1 węźle, co oznacza, że masz 1 stos 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.