Edge for Private Cloud версии 4.16.09
Использование балансировщика нагрузки
В рабочей версии API BaaS между узлом портала API BaaS и узлами стека API BaaS используется балансировщик нагрузки. При настройке портала необходимо указать IP-адрес или имя DNS балансировщика нагрузки, а не узлов стека.
Вместо балансировщика нагрузки можно использовать DNS с циклической пересылкой. В этом случае вы создаете запись DNS с несколькими записями A, соответствующими IP-адресам стека BaaS. Во время DNS-запроса DNS-сервер автоматически возвращает значения записи A по круговому алгоритму.
Как подключиться к Cassandra
При установке BaaS можно подключить BaaS и Edge к одному кластеру Cassandra или создать отдельный кластер Cassandra для BaaS. Небольшие установки BaaS, то есть с низким объемом трафика, часто используют кластер Cassandra совместно с Edge.
Чтобы обеспечить высокую пропускную способность и доступность или разделить кластеры Cassandra на разные сетевые зоны, Apigee рекомендует использовать отдельные кластеры Cassandra. Отдельные кластеры позволяют повысить производительность, если BaaS испытывает высокую нагрузку.
Синхронизация даты
На всех серверах должны быть синхронизированы дата и время. Если у вас ещё не настроена синхронизация времени, для этой цели можно использовать утилиту ntpdate, которая проверяет, синхронизировано ли время на серверах. Чтобы установить утилиту, используйте команду yum install ntp.
Безопасность Tomcat
Установщик API BaaS также устанавливает сервер Apache Tomcat на все узлы стека API BaaS, включая интерфейс администратора Tomcat. Установщик не меняет учетные данные администратора по умолчанию (admin:admin).
При необходимости вы можете изменить эти учетные данные в рамках защиты Tomcat. Дополнительная информация приведена в следующих статьях:
- https://tomcat.apache.org/tomcat-7.0-doc/manager-howto.html
- https://www.owasp.org/index.php/Securing_tomcat
Обзор установки
После установки Edge на узле с помощью утилиты apigee-setup установите на нем один или несколько компонентов BaaS. Утилита apigee-setup имеет следующий формат:
> sudo /opt/apigee/apigee-setup/bin/setup.sh -p component -f configFile
Передайте утилите apigee-setup файл конфигурации, содержащий информацию об установке. Если в файле конфигурации отсутствует какая-либо обязательная информация, утилита apigee-setup предложит вам ввести ее в командной строке.
Единственное требование – файл конфигурации должен быть доступен для чтения пользователю apigee.
Например, чтобы установить API BaaS Stack, используйте следующую команду:
> sudo /opt/apigee/apigee-setup/bin/setup.sh -p b -f myConfig
Утилита Apigee setup.sh поддерживает несколько вариантов установки компонентов API BaaS. В приведенных ниже инструкциях используются отдельные варианты (c, e, b и p), но вы можете использовать другие варианты в зависимости от конфигурации узла:
|
Вариант |
Описание |
|---|---|
|
e |
Установите только ElasticSearch. |
|
b |
Установите только API BaaS Stack, который также устанавливает Tomcat. |
|
p |
Установите только портал API BaaS, который также устанавливает маршрутизатор Nginx, используемый в качестве веб-сервера. |
|
c |
Установите только Cassandra. |
|
eb |
Установите на узле ElasticSearch, API BaaS Stack и Tomcat. |
|
ebp |
Установите ElasticSearch, API BaaS Portal, API BaaS Stack и Tomcat. Портал очень легкий, поэтому для него не нужны дополнительные ресурсы. |
|
asa |
Установите все компоненты API на одном узле (Cassandra, Elasticsearch, API BaaS Stack и API BaaS Portal). Используйте этот вариант только для разработки и тестирования, но не для рабочей среды. |
Как создать файл конфигурации для автоматической установки
Ниже приведен пример файла конфигурации для установки API BaaS на 10 узлах в тихом режиме. При необходимости измените этот файл. Чтобы включить этот файл, используйте параметр -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
В таблице ниже приведена дополнительная информация об этих свойствах.
|
Ресурс |
Примечание |
|---|---|
|
CASS_HOSTS |
Если вы устанавливаете Cassandra, укажите IP-адреса узлов Cassandra (не имена DNS) и добавьте модификатор ":dc,ra", который указывает центр обработки данных и стойку узла Cassandra. Например, "192.168.124.201:1,1" означает центр обработки данных 1 и стойку/зону доступности 1, а "192.168.124.204:2,1" – центр обработки данных 2 и стойку/зону доступности 1. |
|
CASS_USERNAME |
Имя пользователя и пароль Cassandra. Если аутентификация Cassandra отключена, вам все равно нужно передать эти значения. Однако эти значения игнорируются. |
|
BAAS_CASS_LOCALDC |
Названия регионов должны быть указаны в формате dc-#, где # – целое число. Например, dc-1, dc-2 и т. д. Если вы подключаетесь к кластеру Cassandra, установленному с помощью Edge, запросите это значение у системного администратора Edge. В установке Edge с одним центром обработки данных значение по умолчанию – dc-1. Если вы установили Cassandra в рамках установки API BaaS, то во время установки Cassandra вы добавили модификатор ":dc,ra" к IP-адресам Cassandra. Первое значение, dc, – это номер центра обработки данных. Название центра обработки данных – это строка "dc-" с номером центра обработки данных в качестве суффикса. |
|
BAAS_CASS_REPLICATION |
Формат: dataCenterName:#CassandraNodes. Например, для dc-1 с тремя узлами Cassandra это dc-1:3. |
|
BAAS_USERGRID_URL |
В рабочей среде это URL и порт балансировщика нагрузки, который находится перед узлами API BaaS Stack, в следующем формате: В тестовой или рабочей среде, где у вас есть только один узел API BaaS Stack, это может быть URL и номер порта узла API BaaS Stack в следующем формате: http://stackIPorDNS:8080 Номер порта для сервера API BaaS Stack – 8080. |
|
BAAS_PORTAL_URL |
URL и номер порта балансировщика нагрузки, если он используется перед порталом, в следующем формате: |
|
BAAS_PORTAL_LISTEN_PORT |
Номер порта для сервера портала API BaaS – 9000. Если этот порт недоступен, укажите другой. Если вы задаете для BAAS_PORTAL_URL URL узла портала, номера портов должны быть одинаковыми для обоих свойств. |
Установка Cassandra (необязательно): машины 8, 9 и 10
Вы можете подключить API BaaS к тому же кластеру Cassandra, который используется Edge, но Apigee рекомендует использовать отдельные кластеры.
Кластер Cassandra может использовать аутентификацию, или аутентификацию Cassandra можно отключить. Подробнее о том, как включить аутентификацию Cassandra…
- Установите утилиту Edge apigee-setup на узел, используя процедуру с подключением к интернету или без него. Подробнее о том, как установить утилиту apigee-setup для Edge…
- В командной строке запустите скрипт настройки:
> /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile
Параметр "-p c" указывает на то, что нужно установить Cassandra.
Файл конфигурации должен быть доступен для чтения пользователю "apigee".
Конфигурация успешно завершает настройку хранилища данных на узле.
Обратите внимание, что JMX по умолчанию включен для Cassandra. Для удаленного доступа JMX к Cassandra пароль не требуется. Вы можете настроить Cassandra так, чтобы для JMX использовалась аутентификация. Подробнее о том, как отслеживать эффективность экспериментов…
Как настроить задание cron для Cassandra
Настройте задание cron, которое использует nodetool для сброса блокировок каждый час на каждом узле Cassandra.
Если у вас несколько узлов Cassandra, сместите задание cron на каждом сервере на пять минут, чтобы все узлы не сбрасывались одновременно.
Задание cron должно выполнять следующую команду:
/opt/apigee/apigee-cassandra/bin/nodetool -h IP_address flush Apigee_Baas_Locks
где IP_address – IP-адрес узла Cassandra.
Установите ElasticSearch на машинах 1, 2 и 3.
Чтобы установить ElasticSearch:
- Установите утилиту Edge apigee-setup на узел, используя интернет или процедуру без интернета. Подробнее о том, как установить утилиту apigee-setup для Edge…
- В командной строке запустите скрипт настройки:
> /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile
Параметр "-p e" указывает на то, что нужно установить ElasticSearch.
Файл конфигурации должен быть доступен для чтения пользователю "apigee". - Если вы устанавливаете ElasticSearch на отдельном узле, то есть не вместе со стеком API BaaS, измените параметр памяти по умолчанию, чтобы увеличить объем памяти, выделяемой для ElasticSearch, с 4 до 6 ГБ:
- Откройте файл /opt/apigee/customer/application/elasticsearch.properties в редакторе. Если такого файла нет, создайте его.
- Задайте для свойства setenv_elasticsearch_max_mem_size значение 6g (по умолчанию используется 4g):
setenv_elasticsearch_max_mem_size=6g - Сохраните файл.
- Выполните следующую команду:
> /opt/apigee/apigee-service/bin/apigee-service apigee-elasticsearch restart
Конфигурация успешно завершает настройку на узле.
Установка стека API BaaS: машины 4, 5 и 6
Чтобы установить API BaaS Stack:
- Установите утилиту Edge apigee-setup на узел, используя интернет или процедуру без интернета. Подробнее о том, как установить утилиту apigee-setup для Edge…
- В командной строке запустите скрипт настройки:
> /opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile
Параметр "-p b" указывает на то, что нужно установить API BaaS Stack.
Файл конфигурации должен быть доступен для чтения пользователю "apigee".
После того как установщик получит правильные учетные данные администратора, он установит Tomcat, создаст пространства ключей API BaaS и настроит стек API BaaS на сервере. Протокол SMTP также настроен таким образом, чтобы интерфейс мог отправлять письма с подтверждением пароля.
Установка портала API BaaS: машина 7
Чтобы установить портал API BaaS:
- Установите утилиту Edge apigee-setup на узел, используя интернет или процедуру без интернета. Подробнее о том, как установить утилиту apigee-setup для Edge…
- В командной строке запустите скрипт настройки:
> /opt/apigee/apigee-setup/bin/setup.sh -p p -f configFile
Параметр "-p p" указывает, что нужно установить портал API BaaS.
Файл конфигурации должен быть доступен для чтения пользователю "apigee".
Установщик запустит веб-сервер Nginx, а затем завершит настройку портала API BaaS.
Запишите URL портала API BaaS. Это URL, который вы вводите в браузере, чтобы получить доступ к интерфейсу портала API BaaS.
Как настроить узлы API BaaS для балансировщика нагрузки Stack или Portal
Если вы добавите балансировщик нагрузки перед узлами Stack или Portal, вам нужно будет настроить узлы с правильным URL балансировщика нагрузки. Например, узлам стека требуется эта информация в следующих случаях:
- Включать URL в ответы на запросы BaaS API.
- Добавление ссылок в шаблоны электронных писем при сбросе пароля или отправке других уведомлений.
- перенаправлять пользователей на определенные страницы портала;
Если вы используете балансировщик нагрузки перед узлами Stack, задайте следующие свойства в файле /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
Замените http://localhost:8080 на URL балансировщика нагрузки. Если балансировщик нагрузки настроен на использование TLS, используйте протокол HTTPS. Указывать порт нужно только в том случае, если вы используете нестандартный порт, то есть не порт 80 для HTTP и не порт 443 для HTTPS.
Если вы используете балансировщик нагрузки перед узлами стека, вам также необходимо задать следующее свойство в файле /opt/apigee/customer/application/portal.properties :
baas.portal.config.overrideUrl=http://localhost:8080
Замените http://localhost:8080 на URL балансировщика нагрузки для стека.
Если вы используете балансировщик нагрузки перед узлом портала, задайте следующие свойства в файле 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
Замените http://localhost:9000 на URL балансировщика нагрузки. Если балансировщик нагрузки настроен на использование TLS, используйте протокол HTTPS. Включать порт нужно только в том случае, если вы используете нестандартный порт, то есть не порт 80 для HTTP и не порт 443 для HTTPS.
После редактирования файлов usergrid.properties и portal.properties:
- Настройте узел стека:
> /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid configure - Примените изменения к Tomcat:
> /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid deploy - Перезапустите стек BaaS:
> /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid restart - Если вы изменили файл portal.properties, настройте узел портала:
> /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal configure - Разверните изменения:
> /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal deploy - Перезапустите портал BaaS:
> /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal restart
Как добавить новую организацию
Регистрация – это процесс создания организации и администратора организации. После создания организации и администратора организации вы можете войти в интерфейс портала API BaaS и отправлять запросы к API BaaS REST API.
При создании организации адрес электронной почты администратора организации:
- Должен отличаться от адреса электронной почты системного администратора.
- Должен быть уникальным среди всех организаций. То есть нельзя создать две организации с одним и тем же адресом электронной почты администратора организации. Однако после создания организации вы можете добавить дополнительных администраторов, которые могут быть дублированы в нескольких организациях.
Для регистрации используйте скрипт Python create_org_and_user.py. Если запустить скрипт без аргументов командной строки, он запросит у вас всю информацию:
> python create_org_and_user.py
Также можно передать все или некоторые параметры в качестве аргументов командной строки. Если вы не указали в командной строке какую-либо информацию, вам будет предложено ввести ее:
> 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>'
Чтобы создать организацию:
- Перейдите в каталог /opt/apigee/baas-usergrid/bin.
- Вызовите скрипт Python create_org_and_user.py.
Вам будет предложено ввести имя пользователя и пароль системного администратора BaaS, чтобы запустить его мог только системный администратор. - Войдите на портал API BaaS в веб-браузере, используя URL, который вы записали в конце установки URL портала API BaaS. Чтобы открыть портал, введите URL портала API BaaS в следующем формате:
http://{portalExternalIP}:9000/
Примечание. IP-адрес – это внешний IP-адрес или имя хоста машины портала. Убедитесь, что порт открыт. - Когда появится экран входа на портал, вы можете:
- Войдите в аккаунт, используя имя пользователя и пароль администратора организации.
- Войдите, используя имя пользователя и пароль администратора системы.
Как получить доступ к API BaaS REST API
Чтобы получить доступ к API BaaS REST API, используйте URL в следующем формате:
https://{loadBalancerIP}:8080/{your-org}/{your-app}
В среде разработки можно установить все компоненты API BaaS на одном узле, то есть у вас будет один стек API BaaS. Или у вас может быть небольшая среда с одним узлом API BaaS Stack и без балансировщика нагрузки. В таких средах вы можете выполнять вызовы API непосредственно к узлу стека API BaaS:
curl -v "http://portalExternalIP:8080/status"
Информацию о том, как начать работу с порталом API BaaS, можно найти в документации Apigee по адресу http://apigee.com/docs/content/build-apps-home.