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:
- https://tomcat.apache.org/tomcat-7.0-doc/manager-howto.html
- https://www.owasp.org/index.php/Securing_tomcat
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 |
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: 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: |
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.
- 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.
- 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:
- 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.
- 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”. - (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:
- Otwórz w edytorze plik /opt/apigee/customer/application/elasticsearch.properties. Jeśli ten plik nie istnieje, utwórz go.
- Ustaw właściwość setenv_elasticsearch_max_mem_size na 6 g (domyślnie jest to 4 g):
setenv_elasticsearch_max_mem_size=6g - Zapisz plik.
- 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:
- 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.
- 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:
- 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.
- 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:
- Skonfiguruj węzeł stosu:
> /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid configure - Wdróż zmiany w Tomcat:
> /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid deploy - Ponownie uruchom stos BaaS:
> /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid restart - Jeśli zmodyfikowano domenę portal.properties, skonfiguruj węzeł portalu:
> /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal configure - Wdróż zmiany:
> /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal deploy - 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ę:
- Zmień katalog na /opt/apigee/baas-usergrid/bin.
- 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. - 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. - 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.