Edge dla chmury prywatnej w wersji 4.16.09
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:
- 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 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
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 |
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: 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: |
|
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.
- 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.
- 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
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:
- 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.
- 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”. - (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:
- Otwórz plik /opt/apigee/customer/application/elasticsearch.properties w edytorze. Jeśli ten plik nie istnieje, utwórz go.
- Ustaw właściwość setenv_elasticsearch_max_mem_size na 6g (domyślnie jest to 4g):
setenv_elasticsearch_max_mem_size=6g - Zapisz plik.
- 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:
- 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.
- 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:
- 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.
- 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.
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:
- Skonfiguruj węzeł Stack:
> /<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 - Uruchom ponownie stos BaaS:
> /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid restart - Jeśli plik portal.properties został zmodyfikowany, 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 - 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ę:
- Zmień katalog na opt/apigee/baas-usergrid/bin.
- 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ć. - 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. - 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.