Instalacja BaaS API dla 7 hostów i 10 hostów

Edge dla chmury prywatnej w wersji 4.16.05

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

W instalacji produkcyjnej API BaaS między węzłem portalu API BaaS a węzłami stosu API BaaS używany jest system równoważenia obciążenia. Podczas konfigurowania portalu podajesz adres IP lub nazwę DNS systemu równoważenia obciążenia, a nie węzłów Stack.

Zamiast systemu równoważenia obciążenia możesz użyć 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 karuzelowym.

Łączenie z bazą danych Cassandra

Podczas instalowania BaaS możesz połączyć BaaS i Edge z tym samym klastrem Cassandra lub utworzyć osobny klaster Cassandra dla BaaS. Mniejsze instalacje BaaS, czyli te z mniejszym natężeniem ruchu, często współdzielą klaster Cassandra z Edge.

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

Synchronizacja daty

Data i godzina muszą być zsynchronizowane na wszystkich serwerach. Jeśli nie jest jeszcze skonfigurowane, do tego celu można użyć narzędzia „ntpdate”, które sprawdza, czy serwery są zsynchronizowane czasowo. Aby zainstalować to narzędzie, możesz użyć polecenia „yum install ntp”.

Zabezpieczenia Tomcat

Instalator API BaaS instaluje też serwer Apache Tomcat na wszystkich węzłach stosu API BaaS, w tym interfejs administratora Tomcat. Instalator pozostawia domyślne dane logowania administratora bez zmian (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 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”. Możesz na przykład umieścić plik w katalogu /tmp w węźle.

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

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

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. Portal jest tak lekki, że nie wymaga żadnych dodatkowych zasobów.

asa

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

Tworzenie pliku konfiguracji instalacji dyskretnej

Poniżej znajduje się przykładowy plik konfiguracji instalacji API BaaS na 10 węzłach w trybie cichym. W razie potrzeby zmodyfikuj ten plik, aby dostosować go do swojej konfiguracji. Aby dołączyć ten plik, użyj opcji -f w 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

Poniższa tabela zawiera dodatkowe informacje o tych właściwościach:

Właściwość

Uwaga

CASS_HOSTS

Jeśli instalujesz Cassandrę, podaj adresy IP węzłów Cassandry (nie nazwy DNS) i dołącz modyfikator „:dc,ra”, który określa centrum danych i szafę serwerową węzła Cassandry.

Na przykład „192.168.124.201:1,1” = centrum danych 1 i szafa rack/strefa dostępności 1, a „192.168.124.204:2,1” = centrum danych 2 i szafa rack/strefa dostępności 1.

CASS_USERNAME
CASS_PASSWORD

nazwę użytkownika i hasło do bazy Cassandra,

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

BAAS_CASS_LOCALDC

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

Na przykład dc-1, dc-2 itd. Jeśli łączysz się z klastrem Cassandra zainstalowanym z Edge, możesz poprosić administratora systemu Edge o tę wartość. W przypadku instalacji Edge w jednym centrum danych domyślna wartość to dc-1.

Jeśli system Cassandra został zainstalowany w ramach instalacji API BaaS, podczas instalacji systemu Cassandra do adresów IP systemu Cassandra został dodany modyfikator „:dc,ra”. Pierwsza wartość „dc” to numer centrum danych. Nazwa centrum danych to ciąg znaków „dc-” z numerem centrum danych jako sufiksem.

BAAS_CASS_REPLICATION

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

BAAS_USERGRID_URL

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

http://myStackLoadBalancer:8443

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

http://stackIPorDNS:8080

Numer portu serwera API BaaS Stack to 8080.

BAAS_PORTAL_URL

Adres URL i numer portu systemu równoważenia obciążenia, jeśli znajduje się on 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 w formacie:

http://portalIPorDNS:9000

Domyślnie numer portu portalu API BaaS to 9000.

BAAS_PORTAL_LISTEN_PORT

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

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

Opcjonalnie – zainstaluj Cassandrę: maszyny 8, 9 i 10

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

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”. Możesz na przykład umieścić plik w katalogu /tmp na węźle.

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

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

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.

Instalowanie ElasticSearch: maszyny 1, 2 i 3

Aby zainstalować ElasticSearch:

  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 konfiguracji:
    > /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”. Możesz na przykład umieścić plik w katalogu /tmp na węźle.
  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:

  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”. Możesz na przykład umieścić plik w katalogu /tmp na węźle.

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/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”. Możesz na przykład umieścić plik w katalogu /tmp na węźle.

Instalator uruchamia serwer WWW Nginx, a następnie kończy konfigurację portalu API BaaS.

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 dla 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 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 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_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 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:
    > /<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. Uruchom ponownie stos BaaS:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid restart
  4. Jeśli plik portal.properties został zmodyfikowany, 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. Uruchom ponownie portal BaaS:
    > /<inst_root>/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.