Instalacja interfejsu BaaS API

Edge for Private Cloud wer. 4.16.09

Korzystanie z systemu równoważenia obciążenia

Instalacja produkcyjna API BaaS używa systemu równoważenia obciążenia między węzłem API BaaS Portal i węzłami stosu API BaaS. Konfigurując portal, musisz podać adres IP lub nazwę DNS systemu równoważenia obciążenia, a nie węzłów stosu.

Zamiast systemu równoważenia obciążenia możesz użyć systemu DNS typu „round-robin”. W tym scenariuszu tworzysz wpis DNS z wieloma rekordami A odpowiadającymi adresom IP stosu BaaS. Podczas wyszukiwania DNS serwer DNS automatycznie zwraca wartości rekordów A w systemie kołowym.

Łączę z Cassandrą

Podczas instalowania BaaS możesz połączyć BaaS i Edge z tym samym klastrem Cassandra lub utworzyć oddzielny klaster Cassandra dla BaaS. Mniejsze instalacje BaaS, czyli te z mniejszym ruchem, często współużytkują klaster Cassandra z Edge.

Aby uzyskać dużą przepustowość i dostępność lub podzielić klastry Cassandra na różne strefy sieci, Apigee zaleca używanie oddzielnych klastrów Cassandra. Oddzielne klastry maksymalizują wydajność, jeśli występuje duże obciążenie ruchem w BaaS.

Synchronizacja dat

Musisz synchronizować datę i godzinę na wszystkich serwerach. Może to być narzędzie „ntpdate”, które sprawdza, czy serwery są synchronizowane pod względem czasu. Aby zainstalować to narzędzie, możesz użyć polecenia „yuminstall ntp”.

Zabezpieczenia Tomcat

Instalator API BaaS instaluje też serwer Apache Tomcat we wszystkich węzłach stosu API BaaS, w tym w interfejsie administratora Tomcat. Instalator pozostawia domyślne dane logowania administratora bez zmian z poziomu admin:admin.

W razie potrzeby możesz zmienić te dane logowania w ramach zabezpieczania serwera Tomcat. Więcej informacji:

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

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. Portal jest bardzo nieskomplikowany i nie wymaga do tego żadnych dodatkowych zasobów.

Asa

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

Tworzenie cichego pliku konfiguracji

Poniżej znajduje się przykład dyskretnego pliku konfiguracji instalacji BaaS interfejsu API z 10 węzłami. Zmodyfikuj ten plik zgodnie z potrzebami konfiguracji. Aby dołączyć ten plik, użyj opcji -f setup.sh.

# 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

Tabela poniżej zawiera dodatkowe informacje o tych właściwościach:

Właściwość

Uwaga

CASS_HOSTS

Jeśli instalujesz Cassandra, podaj adresy IP węzła Cassandra (nie nazwy DNS) i uwzględnij modyfikator „:dc,ra”, który określa centrum danych i stojak w węźle Cassandra.

Na przykład „192.168.124.201:1,1 = centrum danych 1 i strefa stojaka/dostępności 1 oraz „192.168.124.204:2,1 = centrum danych 2 i strefa stojaka/dostępności 1.

CASS_USERNAME
CASS_PASSWORD

Nazwa użytkownika i hasło Cassandra.

Nawet jeśli uwierzytelnianie Cassandra jest wyłączone, nadal musisz przekazać te wartości. Wartości te są jednak ignorowane.

BAAS_CASS_LOCALDC

Nazwy regionów muszą mieć format dc-#, gdzie # odpowiada wartości całkowitej.

Na przykład dc-1, dc-2 itp. Jeśli łączysz się z klastrem Cassandra zainstalowanym za pomocą Edge, możesz poprosić administratora systemu Edge o tę wartość. W przypadku instalacji Edge z jednym centrum danych wartością domyślną jest dc-1.

Jeśli zainstalowano Cassandra w ramach instalacji interfejsu API BaaS, to podczas instalacji Cassandra dodano modyfikator „:dc,ra” do adresów IP Cassandra. Pierwsza wartość „dc” to numer centrum danych. Nazwa centrum danych to ciąg znaków „dc-” z numerem centrum w sufiksie.

BAAS_CASS_REPLICATION

Format to „dataCenterName:#CassandraNodes”. Na przykład w przypadku dc-1 z 3 węzłami Cassandra będzie to dc-1:3.

BAAS_USERGRID_URL

W środowisku produkcyjnym jest to adres URL i port systemu równoważenia obciążenia znajdujący się przed węzłami stosu API BaaS w formacie:

http://myStackLoadBalancer:8443

W środowisku testowym lub programistycznym, gdzie masz tylko jeden węzeł stosu API BaaS, może to być adres URL i numer portu węzła stosu API BaaS w formie:

http://stackIPorDNS:8080

Numer portu serwera stosu API BaaS to 8080.

BAAS_PORTAL_URL

Adres URL i numer portu systemu równoważenia obciążenia, jeśli znajduje się przed portalem, w formacie:

http://myPortalLoadBalancer:8443

Jeśli nie ma systemu równoważenia obciążenia, adres URL i numer portu węzła portalu mają postać:

http://portalIPorDNS:9000

domyślnie jako numer portu 90 interfejsu API.

BAAS_PORTAL_LISTEN_PORT

Numer portu serwera API BaaS Portal to 9000. Jeśli ten port jest niedostępny, podaj inny.

Jeśli ustawiasz BAAS_PORTAL_URL na URL węzła portalu, numery portów muszą być takie same w obu usługach.

Opcjonalnie – zainstaluj Cassandra: maszyna 8, 9 i 10

Możesz połączyć interfejs API BaaS z tym samym klastrem Cassandra, z którego korzysta Edge, ale Apigee zaleca używanie oddzielnych klastrów.

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

Skonfiguruj zadanie cron, które używa narzędzia nodetool do opróżniania blokad, aby w każdym węźle Cassandra były uruchamiane co godzinę.

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.

Instalowanie ElasticSearch: maszyna 1, 2 i 3

Aby zainstalować ElasticSearch:

  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.

Instalowanie stosu BaaS API: maszyna 4, 5 i 6

Aby zainstalować stos API BaaS:

  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 konfigurację interfejsu API BaaS Portal.

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 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 te właściwości w pliku /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

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

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:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid configure
  2. Wdróż zmiany w Tomcat:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid deploy
  3. Ponownie uruchom stos BaaS:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid restart
  4. Jeśli zmodyfikowano domenę portal.properties, skonfiguruj węzeł portalu:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal configure
  5. Wdróż zmiany:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal deploy
  6. Ponownie uruchom BaaS Portal:
    > /<inst_root>/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.