Instalacja interfejsu BaaS API

Edge dla chmury prywatnej w wersji 4.17.05

Omówienie instalacji

Po zainstalowaniu narzędzia apigee-setup Edge w węźle użyj go do zainstalowania w węźle co najmniej 1 komponentu BaaS.

Narzędzie apigee-setup ma postać:

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

Przekaż do narzędzia apigee-setup plik konfiguracji zawierający informacje o instalacji. Jeśli w pliku konfiguracji brakuje wymaganych informacji, narzędzie apigee-setup poprosi o ich podanie w wierszu poleceń.

Jedynym wymaganiem jest to, aby plik konfiguracji był dostępny lub możliwy do odczytania przez użytkownika „apigee”.

Na przykład, aby zainstalować stos API BaaS, użyj tego polecenia:

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

Określanie komponentów do zainstalowania

Narzędzie setup.sh Apigee obsługuje kilka opcji instalowania komponentów API BaaS. W poniższych instrukcjach 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 stos API BaaS, który instaluje też Tomcat.

p

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

c

Zainstaluj tylko Cassandrę.

eb

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

ebp

Zainstaluj ElasticSearch, portal API BaaS, stos API BaaS i Tomcat, ale nie Cassandrę. Portal jest tak lekki, że nie wymaga żadnych dodatkowych zasobów.

asa

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

Tworzenie pliku konfiguracji

Plik konfiguracji zawiera wszystkie informacje niezbędne do zainstalowania API BaaS. Często możesz użyć tego samego pliku konfiguracji do zainstalowania wszystkich komponentów w instalacji BaaS.

Każda topologia instalacji opisana poniżej zawiera przykładowy plik konfiguracji. Pełne informacje o pliku konfiguracji znajdziesz w dokumentacji pliku konfiguracji BaaS.

Instalowanie API BaaS na jednym węźle

Poniżej znajduje się plik konfiguracji do instalacji API BaaS na jednym węźle. W razie potrzeby zmodyfikuj ten plik zgodnie z konfiguracją. Pełne informacje o pliku konfiguracji znajdziesz w dokumentacji 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 we własnym węźle:

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

    Opcja „-p asa” określa, że wszystkie komponenty API BaaS mają zostać zainstalowane na jednym węźle (Cassandra, Elasticsearch, API BaaS Stack, API BaaS Portal, Tomcat).
    Plik konfiguracji musi być dostępny lub możliwy do odczytania przez użytkownika „apigee”.
  3. Ponieważ ElasticSearch został zainstalowany na węźle samodzielnym, dostosuj domyślną opcję pamięci, aby zwiększyć alokację pamięci dla ElasticSearch z 4 GB do 6 GB:
    1. Otwórz plik /opt/apigee/customer/application/elasticsearch.properties w edytorze. Jeśli ten plik nie istnieje, utwórz go.
    2. Ustaw właściwość setenv_elasticsearch_max_mem_size na 6g (domyślnie jest to 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. Wprowadź organizację zgodnie z opisem w sekcji Wprowadzanie nowej organizacji poniżej.

Konfiguracja pomyślnie kończy konfigurację węzła.

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

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

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

Zarówno w przypadku 7-, jak i 10-węzłowej wersji API BaaS musisz połączyć się z klastrem Cassandra. Jeśli masz już zainstalowaną platformę Edge, możesz połączyć się z jej klastrem Cassandra, co oznacza, że nie musisz instalować Cassandry w ramach instalacji API BaaS.

Poniżej znajduje się przykładowy plik konfiguracji instalacji API BaaS na 10 węzłach w trybie cichym. Jeśli instalujesz komponenty ElasticSearch i API BaaS Stack na tych samych 3 węzłach, zmodyfikuj plik tak, aby:

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

W razie potrzeby zmodyfikuj ten plik, aby dostosować go do swojej konfiguracji. Pełne informacje o pliku konfiguracji znajdziesz w dokumentacji pliku konfiguracji 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 Cassandrę: 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 zainstalowanego Edge, możesz opcjonalnie zainstalować Cassandrę do użytku przez API BaaS.

Klaster Cassandra może używać uwierzytelniania lub uwierzytelnianie Cassandra może być wyłączone. Więcej informacji znajdziesz w artykule o włączaniu uwierzytelniania w systemie Cassandra.

  1. Zainstaluj narzędzie Edge apigee-setup w węźle, korzystając z procedury z dostępem do internetu lub bez niego. Więcej informacji znajdziesz w artykule Instalowanie narzędzia apigee-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, że ma zostać zainstalowana Cassandra.
    Plik konfiguracji musi być dostępny lub możliwy do odczytania przez użytkownika „apigee”.

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

Pamiętaj, że JMX jest domyślnie włączony w przypadku Cassandry. Zdalny dostęp JMX do Cassandra nie wymaga hasła. Możesz skonfigurować Cassandrę tak, aby używała uwierzytelniania na potrzeby JMX. Więcej informacji znajdziesz w artykule Jak monitorować.

Konfigurowanie zadania cron Cassandra

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

Jeśli masz kilka węzłów Cassandra, przesuwaj zadanie cron na każdym serwerze o 5 minut, aby wszystkie węzły nie były czyszczone jednocześnie.

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.

Zainstaluj ElasticSearch: maszyny 1, 2 i 3

Aby zainstalować ElasticSearch na własnym węźle:

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

    Opcja „-p e” określa, że ma zostać zainstalowany ElasticSearch.
    Plik konfiguracji musi być dostępny lub możliwy do odczytania przez użytkownika „apigee”.
  3. (Opcjonalnie) Jeśli instalujesz ElasticSearch na węźle samodzielnym, czyli nie jest on zainstalowany ze stosem API BaaS, dostosuj domyślną opcję pamięci, aby zwiększyć alokację pamięci dla ElasticSearch z 4 GB do 6 GB:
    1. Otwórz plik /opt/apigee/customer/application/elasticsearch.properties w edytorze. Jeśli ten plik nie istnieje, utwórz go.
    2. Ustaw właściwość setenv_elasticsearch_max_mem_size na 6g (domyślnie jest to 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 pomyślnie kończy konfigurację węzła.

Instalowanie stosu API BaaS: maszyny 4, 5 i 6

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

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

    Opcja „-p b” określa, że ma zostać zainstalowany stos API BaaS.
    Plik konfiguracji musi być dostępny lub możliwy do odczytania przez użytkownika „apigee”.

Gdy instalator pobierze prawidłowe dane logowania administratora, zainstaluje Tomcat, utworzy przestrzenie kluczy API BaaS i skonfiguruje stos API BaaS na serwerze. Protokół SMTP jest też skonfigurowany tak, aby umożliwiać interfejsowi wysyłanie e-maili z potwierdzeniem hasła.

Instalowanie portalu API BaaS: maszyna 7

Aby zainstalować portal API BaaS:

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

    Opcja „-p p” określa, że ma zostać zainstalowany portal API BaaS.
    Plik konfiguracji musi być dostępny lub możliwy do odczytania przez użytkownika „apigee”.

    Instalator uruchamia serwer WWW Nginx, a następnie kończy konfigurację portalu API BaaS.
  3. Dalsze kroki zależą od sposobu instalacji.
    1. Jeśli przed węzłami Portal lub Stack masz system równoważenia obciążenia, w następnej sekcji dowiesz się, jak skonfigurować API BaaS 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 Stack, dodaj organizację zgodnie z opisem poniżej w sekcji Dodawanie nowej organizacji.

Zanotuj adres URL portalu API BaaS. Jest to adres URL, który wpisujesz w przeglądarce, aby uzyskać dostęp do interfejsu użytkownika portalu API BaaS.

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

Jeśli przed węzłami Stack lub Portal umieścisz system równoważenia obciążenia, musisz skonfigurować węzły z prawidłowym adresem URL systemu równoważenia obciążenia. Na przykład węzły Stack wymagają tych informacji, gdy:

  • uwzględnianie adresu URL w odpowiedziach na żądania do interfejsu API BaaS;
  • dodawanie linków w szablonach e-maili podczas resetowania hasła lub wysyłania innych powiadomień;
  • przekierowywanie użytkowników na określone strony Portalu;

Jeśli przed węzłami Stack używasz systemu równoważenia obciążenia, 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 TLS, użyj protokołu HTTPS. Port musisz podać tylko wtedy, gdy używasz portu niestandardowego, czyli innego niż port 80 w przypadku HTTP i port 443 w przypadku HTTPS.

Jeśli przed węzłami stosu używasz systemu równoważenia obciążenia, 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 stosu.

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

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 TLS, użyj protokołu HTTPS. Port musisz podać tylko wtedy, gdy używasz portu niestandardowego, czyli innego niż port 80 w przypadku HTTP i port 443 w przypadku HTTPS.

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

  1. Skonfiguruj węzeł Stack:
    > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid configure
  2. Uruchom ponownie stos BaaS:
    > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart

    Uwaga: podczas ponownego uruchamiania węzłów stosu BaaS uruchamiaj je ponownie w tej samej kolejności, w jakiej są wymienione w BAAS_CLUSTER_SEEDS. BAAS_CLUSTER_SEEDS zawiera listę maksymalnie 2 węzłów Stack. Po ponownym uruchomieniu tych 2 węzłów w odpowiedniej kolejności możesz ponownie uruchomić pozostałe węzły w dowolnej kolejności.

  3. Jeśli plik portal.properties został zmodyfikowany, skonfiguruj węzeł portalu:
    > /opt/apigee/apigee-service/bin/apigee-service baas-portal configure
  4. Uruchom ponownie portal BaaS:
    > /opt/apigee/apigee-service/bin/apigee-service baas-portal restart

Wprowadzanie nowej organizacji medialnej

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

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

  • Musi różnić się od adresu e-mail administratora systemu.
  • Musi być unikalna wśród wszystkich innych organizacji. Oznacza to, że nie możesz utworzyć 2 organizacji z tym samym adresem e-mail administratora organizacji. Jednak po utworzeniu organizacji możesz dodać kolejnych administratorów, których można powielać w wielu organizacjach.

Aby przeprowadzić rejestrację, użyj skryptu w Pythonie create_org_and_user.py. Wywołanie tego skryptu bez argumentów wiersza poleceń spowoduje, że zostaniesz poproszony o podanie wszystkich informacji:

> python create_org_and_user.py

Możesz też przekazać dowolne lub wszystkie opcje jako argument wiersza poleceń. Pojawi się prośba o podanie informacji, które zostały 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. Wywołaj skrypt w Pythonie create_org_and_user.py.
    Zostaniesz poproszony o podanie nazwy użytkownika i hasła administratora systemu BaaS, aby tylko administrator systemu mógł go uruchomić.
  3. Zaloguj się w portalu API BaaS w przeglądarce, używając adresu URL zapisanego na końcu instalacji adresu URL portalu API BaaS. Aby uzyskać dostęp do portalu, wpisz adres URL portalu API BaaS w formie:
    http://{portalExternalIP}:9000/

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

Uzyskiwanie dostępu do interfejsu API typu REST w API BaaS

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

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

W środowisku programistycznym możesz zainstalować wszystkie komponenty API BaaS w jednym węźle, co oznacza, że masz jeden stos API BaaS. Możesz też mieć małe środowisko z pojedynczym węzłem stosu API BaaS i bez systemu równoważenia obciążenia. W tego typu środowiskach możesz wykonywać wywołania interfejsu API bezpośrednio do węzła stosu API BaaS:

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

Więcej informacji o tym, jak zacząć korzystać z portalu API BaaS, znajdziesz w dokumentacji Apigee na stronie http://apigee.com/docs/content/build-apps-home.