Установка API BaaS с 7 и 10 хостами

Edge for Private Cloud версии 4.16.05

Использование балансировщика нагрузки

В рабочей среде API BaaS используется балансировщик нагрузки между узлом портала API BaaS и узлами стека API BaaS. При настройке портала укажите IP-адрес или DNS-имя балансировщика нагрузки, а не узлов Stack.

В качестве альтернативы балансировщику нагрузки можно использовать циклический 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 Stack, включая интерфейс администратора Tomcat. Установщик оставляет учетные данные администратора по умолчанию без изменений (admin:admin).

При необходимости вы можете изменить эти учетные данные в рамках защиты Tomcat. Дополнительную информацию можно найти в следующих статьях:

Общие сведения об установке

После установки утилиты apigee-setup на узле Edge используйте ее для установки одного или нескольких компонентов BaaS на узле. Утилита apigee-setup имеет следующий формат:

> sudo /opt/apigee/apigee-setup/bin/setup.sh -p component -f configFile

Передайте утилите apigee-setup файл конфигурации, содержащий информацию об установке. Если в файле конфигурации отсутствует какая-либо обязательная информация, утилита apigee-setup предложит ввести ее в командной строке.

Единственное требование – файл конфигурации должен быть доступен или доступен для чтения пользователю apigee. Например, поместите файл в каталог /tmp на узле.

Например, чтобы установить 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 Portal. При этом также будет установлен маршрутизатор 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
CASS_PASSWORD

Имя пользователя и пароль 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, в следующем формате:

http://myStackLoadBalancer:8443

В среде тестирования или разработки, где у вас есть только один узел API BaaS Stack, это может быть URL и номер порта узла API BaaS Stack в следующем формате:

http://stackIPorDNS:8080

Номер порта для сервера API BaaS Stack – 8080.

BAAS_PORTAL_URL

URL и номер порта балансировщика нагрузки, если он находится перед порталом, в следующем формате:

http://myPortalLoadBalancer:8443

Если балансировщика нагрузки нет, укажите URL и номер порта узла портала в следующем формате:

http://portalIPorDNS:9000

По умолчанию номер порта для портала API BaaS – 9000.

BAAS_PORTAL_LISTEN_PORT

Номер порта для сервера API BaaS Portal – 9000. Если этот порт недоступен, укажите другой.

Если вы задаете для BAAS_PORTAL_URL URL узла Portal, номера портов должны быть одинаковыми для обоих свойств.

Необязательно – установите Cassandra: машины 8, 9 и 10

Хотя вы можете подключить API BaaS к тому же кластеру Cassandra, который используется Edge, Apigee рекомендует использовать отдельные кластеры.

В кластере Cassandra можно использовать аутентификацию, но ее также можно отключить. Подробнее о том, как включить аутентификацию Cassandra…

  1. Установите утилиту Edge apigee-setup на узел, используя процедуру с подключением к интернету или без него. Подробнее о том, как установить утилиту apigee-setup для Edge…
  2. В командной строке запустите скрипт настройки:
    > /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile

    Параметр -p c указывает, что нужно установить Cassandra.
    Файл конфигурации должен быть доступен или доступен для чтения пользователю apigee. Например, поместите файл в каталог /tmp на узле.

Конфигурация успешно завершает настройку хранилища данных на узле.

Обратите внимание, что 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, выполните следующие действия:

  1. Установите утилиту apigee-setup для Edge на узел, используя процедуру с подключением к интернету или без него. Подробнее о том, как установить утилиту apigee-setup для Edge…
  2. В командной строке запустите скрипт настройки:
    > /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile

    Параметр -p e указывает, что нужно установить ElasticSearch.
    Файл конфигурации должен быть доступен или доступен для чтения пользователю apigee. Например, поместите файл в каталог /tmp на узле.
  3. (Необязательно.) Если вы устанавливаете ElasticSearch на отдельном узле, то есть не вместе с API BaaS Stack, измените параметр памяти по умолчанию, чтобы увеличить объем выделенной памяти для ElasticSearch, с 4 до 6 ГБ:
    1. Откройте файл /opt/apigee/customer/application/elasticsearch.properties в редакторе. Если такого файла нет, создайте его.
    2. Задайте для свойства setenv_elasticsearch_max_mem_size значение 6g (по умолчанию – 4g):
      setenv_elasticsearch_max_mem_size=6g
    3. Сохраните файл.
    4. Выполните следующую команду:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-elasticsearch restart

Настройка узла завершена.

Установите API BaaS Stack: машины 4, 5 и 6

Чтобы установить API BaaS Stack, выполните следующие действия:

  1. Установите утилиту apigee-setup для Edge на узел, используя процедуру с подключением к интернету или без него. Подробнее о том, как установить утилиту apigee-setup для Edge…
  2. В командной строке запустите скрипт настройки:
    > /opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile

    Параметр -p b указывает, что нужно установить API BaaS Stack.
    Файл конфигурации должен быть доступен или доступен для чтения пользователю apigee. Например, поместите файл в каталог /tmp на узле.

После того как установщик получит правильные учетные данные администратора, он установит Tomcat, создаст пространства ключей API BaaS и настроит стек API BaaS на сервере. Протокол SMTP также настроен таким образом, чтобы разрешить отправку писем с подтверждением пароля.

Установка API BaaS Portal: машина 7

Чтобы установить API BaaS Portal, выполните следующие действия:

  1. Установите утилиту apigee-setup для Edge на узел, используя процедуру с подключением к интернету или без него. Подробнее о том, как установить утилиту apigee-setup для Edge…
  2. В командной строке запустите скрипт настройки:
    > /opt/apigee/setup/bin/setup.sh -p p -f configFile

    Параметр -p p указывает, что нужно установить API BaaS Portal.
    Файл конфигурации должен быть доступен или доступен для чтения пользователю apigee. Например, поместите файл в каталог /tmp на узле.

Программа установки запустит веб-сервер Nginx и завершит настройку портала API BaaS.

Запишите URL портала API BaaS. Это URL, который вы вводите в браузере для доступа к пользовательскому интерфейсу портала API BaaS.

Как настроить узлы API BaaS для балансировщика нагрузки Stack или Portal

Если вы используете балансировщик нагрузки перед узлами Stack или Portal, вам нужно настроить узлы с правильным URL балансировщика нагрузки. Например, узлам Stack эта информация нужна, когда:

  • Включение 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.

Если вы используете балансировщик нагрузки перед узлами Stack, вам также необходимо задать следующее свойство в файле /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:

  1. Настройте узел Stack:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid configure
  2. Примените изменения к Tomcat:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid deploy
  3. Перезапустите стек BaaS:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid restart
  4. Если вы изменили файл portal.properties, настройте узел Portal:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal configure
  5. Примените изменения:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal deploy
  6. Перезапустите BaaS Portal:
    > /<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>'

Чтобы создать организацию, выполните следующие действия:

  1. Перейдите в каталог /opt/apigee/baas-usergrid/bin.
  2. Вызовите скрипт Python create_org_and_user.py.
    Вам будет предложено ввести имя пользователя и пароль системного администратора BaaS, чтобы только системный администратор мог запустить его.
  3. Войдите на портал API BaaS в веб-браузере, используя URL, который вы записали в конце установки URL портала API BaaS. Чтобы получить доступ к порталу, введите URL портала API BaaS в следующем формате:
    http://{portalExternalIP}:9000/

    Примечание. IP – это внешний IP-адрес или имя хоста компьютера портала. Убедитесь, что этот порт открыт.
  4. Когда появится экран входа на портал, вы можете:
    • Войдите в аккаунт, используя имя пользователя и пароль администратора организации.
    • Войдите, используя имя пользователя и пароль системного администратора.

Доступ к 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 Stack:

curl -v "http://portalExternalIP:8080/status"

Дополнительную информацию о начале работы с API BaaS Portal можно найти в документации Apigee по адресу http://apigee.com/docs/content/build-apps-home.