Instalacja interfejsu BaaS API

Edge for Private Cloud w wersji 4.18.01

Omówienie instalacji

Po zainstalowaniu narzędzia Edge apigee-setup w węźle, za jego pomocą zainstaluj w nim co najmniej 1 komponent BaaS.

Narzędzie apigee-setup ma taki format:

> 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 jakichkolwiek wymaganych informacji, narzędzie apigee-setup wyświetli prośbę o wpisanie go w wierszu poleceń.

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

Na przykład za pomocą tego polecenia możesz zainstalować stos API BaaS:

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

Wskazywanie komponentów do zainstalowania

Narzędzie Apigee setup.sh obsługuje kilka opcji instalacji komponentów interfejsu API BaaS. W poniższych instrukcjach użyto samodzielnych opcji (c, e, b i p), ale możesz używać różnych 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 Portal, który instaluje też router Nginx, który ma być używany jako serwer WWW.

z

Zainstaluj tylko Cassandra.

eb

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

ebp

Zainstaluj ElasticSearch, API BaaS Portal, API BaaS Stack i Tomcat, ale nie Cassandra. Portal jest bardzo prosty i nie wymaga żadnych dodatkowych zasobów.

Asa

Zainstaluj wszystkie komponenty API BaaS w jednym węźle (Cassandra, Elasticsearch, API BaaS Stack, API BaaS Portal, Tomcat). Tej opcji możesz używać tylko na potrzeby programowania i testowania, a nie w środowisku produkcyjnym.

Tworzenie pliku konfiguracji

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

Dla każdej topologii opisanej poniżej znajdziesz przykładowy plik konfiguracyjny dla danej topologii. Pełne informacje o pliku konfiguracji znajdziesz w dokumentacji pliku konfiguracji BaaS.

Zainstaluj API BaaS w jednym węźle

Poniżej znajduje się plik konfiguracyjny umożliwiający zainstalowanie interfejsu API BaaS w jednym węźle. Zmodyfikuj ten plik zgodnie z potrzebami konfiguracji. 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
SMTPMAILFROM="My Company <myco@company.com>"

Aby zainstalować API BaaS w własnym węźle:

  1. Zainstaluj narzędzie Edge apigee-setup w węźle, korzystając z procedury internetowej lub innej. 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 asa -f configFile

    Opcja „-p asa” określa możliwość zainstalowania wszystkich komponentów API BaaS w jednym węźle (Cassandra, Elasticsearch, Tom BaaS Portal, API BaaS).
    Plik konfiguracji musi być dostępny i czytelny dla użytkownika „apigee”.
  3. Ponieważ zainstalowano ElasticSearch w samodzielnym węźle, dostosuj domyślną opcję pamięci, aby zwiększyć ilość pamięci przydzielonej do ElasticSearch z 4 GB do 6 GB:
    1. Otwórz w edytorze plik /opt/apigee/customer/application/elasticsearch.properties. Jeśli ten plik nie istnieje, utwórz go.
    2. Ustaw właściwość setenv_elasticsearch_max_mem_size na 6 g (domyślnie jest to 4 g):
      setenv_elasticsearch_max_mem_size=6g
    3. Zapisz plik.
    4. Uruchom to polecenie:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-elasticsearch restart
  4. ? Chcesz zarejestrować organizację w sposób opisany poniżej w sekcji Wprowadzanie nowej organizacji.

Konfiguracja w węźle się powiodła.

Zainstaluj interfejs API BaaS w 7 lub 10 węzłach

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

  • Instalacja na 10 węzłów, instalujesz 3 komponenty ElasticSearch i 3 komponenty stosu interfejsu API BaaS w osobnych węzłach, co daje łącznie 6 węzłów. Jest to zalecana konfiguracja umożliwiająca uzyskanie najwyższej wydajności, ponieważ ElasticSearch wymaga dużej ilości pamięci we/wy dysku i dużej ilości pamięci.
  • Instalacja 7 węzłów, instalujesz 3 komponenty ElasticSearch i 3 komponenty stosu API BaaS w tych samych węzłach, co daje łącznie 3 węzły.

W przypadku wersji API 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 instalacji interfejsu API BaaS.

Poniżej znajduje się przykład dyskretnego pliku konfiguracji instalacji BaaS interfejsu API z 10 węzłami. Jeśli instalujesz komponenty ElasticSearch i stos interfejsu API BaaS w tych samych 3 węzłach, zmodyfikuj plik w taki sposób, aby:

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

Zmodyfikuj ten plik odpowiednio do swojej konfiguracji. Pełne informacje o pliku konfiguracyjnym 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
SMTPMAILFROM="My Company <myco@company.com>"

Opcjonalnie – zainstaluj Cassandra: maszyna 8, 9 i 10

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

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

  1. Zainstaluj narzędzie Edge apigee-setup w węźle, korzystając z procedury przez internet lub bez połączenia z internetem. 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” określa, czy chcesz zainstalować Cassandra.
    Plik konfiguracji musi być dostępny i czytelny dla użytkownika „apigee”.

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

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

Skonfiguruj zadanie cron Cassandra

Jeśli musisz zainstalować Cassandra, skonfiguruj zadanie cron, które używa narzędzia nodetool do opróżniania, aby blokady uruchamiały się co godzinę w każdym węźle Cassandra.

Jeśli masz wiele węzłów Cassandra, odsuń zadanie cron na każdym serwerze o 5 minut, aby żadne węzły nie były opróżniane 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.

Zainstaluj ElasticSearch: maszyna 1, 2 i 3

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

  1. Zainstaluj w węźle narzędzie konfiguracji Edge Apigee, korzystając z procedury internetowej lub innej. 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 e -f configFile

    Opcja „-p e” określa, czy chcesz zainstalować ElasticSearch.
    Plik konfiguracji musi być dostępny i czytelny dla użytkownika „apigee”.
  3. (Opcjonalnie) Jeśli zainstalujesz ElasticSearch na samodzielnym węźle, czyli nie jest ono zainstalowane ze stosem API BaaS, dostosuj domyślną opcję pamięci, aby zwiększyć ilość pamięci przydzielonej do ElasticSearch z 4 GB do 6 GB:
    1. Otwórz w edytorze plik /opt/apigee/customer/application/elasticsearch.properties. Jeśli ten plik nie istnieje, utwórz go.
    2. Ustaw właściwość setenv_elasticsearch_max_mem_size na 6 g (domyślnie jest to 4 g):
      setenv_elasticsearch_max_mem_size=6g
    3. Zapisz plik.
    4. Uruchom to polecenie:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-elasticsearch restart

Konfiguracja w węźle się powiodła.

Zainstaluj stos API BaaS: maszyna 4, 5 i 6

Aby zainstalować stos API BaaS w własnym węźle:

  1. Zainstaluj w węźle narzędzie konfiguracji Edge Apigee, korzystając z procedury internetowej lub innej. 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 b -f configFile

    Opcja „-p b” określa, czy chcesz zainstalować stos API BaaS.
    Plik konfiguracji musi być dostępny i czytelny dla 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żliwić interfejsowi wysyłanie e-maili z potwierdzeniem hasła.

Zainstaluj portal API BaaS: maszyna 7

Aby zainstalować API BaaS Portal:

  1. Zainstaluj w węźle narzędzie konfiguracji Edge Apigee, korzystając z procedury internetowej lub innej. 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 p -f configFile

    Opcja „-p p” określa, czy chcesz zainstalować API BaaS Portal.
    Plik konfiguracji musi być dostępny i czytelny dla użytkownika „apigee”.

    Instalator uruchamia serwer WWW Nginx, a następnie kończy konfigurowanie interfejsu API BaaS Portal.
  3. ? Następny krok zależy od instalacji.
    1. Jeśli przed węzłami stosu portali lub węzłów masz system równoważenia obciążenia, w następnej sekcji dowiesz się, jak skonfigurować interfejs API BaaS.
    2. Jeśli nie masz systemu równoważenia obciążenia przed węzłami portalu lub stosu, zarejestruj organizację w sposób opisany poniżej w sekcji Wdrażanie nowej organizacji.

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

Skonfiguruj węzły API BaaS interfejsu API dla systemu równoważenia obciążenia stosu lub portalu

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

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

Jeśli używasz systemu równoważenia obciążenia przed węzłami stosu, ustaw tę właściwość w /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. Musisz uwzględnić port tylko wtedy, gdy używasz niestandardowego portu, czyli innego niż port 80 w przypadku protokołu HTTP i port 443 w przypadku protokołu HTTPS.

Jeśli używasz systemu równoważenia 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 stosu.

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

Po zakończeniu edycji plików usergrid.properties i portal.properties:

  1. Skonfiguruj węzeł stosu:
    > /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: gdy ponownie uruchamiasz węzły stosu BaaS, uruchom je ponownie w tej samej kolejności, w jakiej są wymienione w: BAAS_CLUSTER_SEEDS. BAAS_CLUSTER_SEEDS pokazuje maksymalnie 2 węzły stosu. Po ponownym uruchomieniu tych 2 węzłów w określonej kolejności możesz ponownie uruchomić pozostałe węzły w dowolnej kolejności.

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

Wprowadzenie nowej organizacji

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

Gdy tworzysz 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 organizacji. Jednak po utworzeniu organizacji możesz dodać kolejnych administratorów, których będzie można powielić w wielu organizacjach.

Aby przeprowadzić wprowadzenie, użyj skryptu Pythona create_org_and_user.py. Wywołanie skryptu bez argumentów wiersza poleceń powoduje, że wyświetla się prośba o podanie wszystkich informacji:

> python create_org_and_user.py

Jako argument wiersza poleceń możesz też przekazać dowolne lub wszystkie opcje. Pojawi się prośba o podanie informacji pominiętych 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.
    Pojawi się prośba o podanie nazwy użytkownika i hasła administratora systemu BaaS, aby mógł go uruchomić tylko administrator systemu.
  3. Zaloguj się do portalu API BaaS w przeglądarce przy użyciu adresu URL podanego na końcu instalacji tego adresu URL. Aby uzyskać dostęp do portalu, wpisz URL interfejsu API BaaS Portal w formacie:
    http://{portalExternalIP}:9000/

    Uwaga: adres IP to zewnętrzny adres IP/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 API

Aby uzyskać dostęp do interfejsu API BaaS REST API, 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 tych typach środowisk 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 rozpocząć korzystanie z API BaaS Portal, znajdziesz w dokumentacji Apigee na stronie http://apigee.com/docs/content/build-apps-home.