Edge для частного облака v. 4.16.09
Использование балансировщика нагрузки
Рабочая установка API BaaS использует балансировщик нагрузки между узлом портала API BaaS и узлами стека API BaaS. При настройке портала вы указываете IP-адрес или DNS-имя балансировщика нагрузки, а не узлов стека.
В качестве альтернативы балансировщику нагрузки вы можете использовать DNS с циклическим перебором. В этом сценарии вы создаете запись DNS с несколькими записями A, соответствующими IP-адресам стека BaaS. Во время поиска DNS DNS-сервер автоматически возвращает значения записи A в циклическом порядке.
Подключение к Кассандре
При установке BaaS вы можете подключить BaaS и Edge к одному кластеру Cassandra или создать отдельный кластер Cassandra для BaaS. Небольшие установки BaaS, то есть установки с меньшими объемами трафика, часто используют кластер Cassandra с Edge.
Для обеспечения высокой пропускной способности и доступности или для разделения кластеров Cassandra на разные сетевые зоны Apigee рекомендует использовать отдельные кластеры Cassandra. Отдельные кластеры максимизируют производительность, если вы испытываете высокую нагрузку трафика на BaaS.
Синхронизация дат
У вас должна быть синхронизирована дата/время на всех серверах. Если это еще не настроено, для этой цели может служить утилита «ntpdate», которая проверяет, синхронизированы ли серверы по времени. Вы можете использовать «yum install ntp» для установки утилиты.
Безопасность Томкэта
Установщик 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 the apigee-setup на узле используйте эту утилиту для установки на узле одного или нескольких компонентов BaaS. Утилита apigee-setup имеет вид:
> sudo /opt/apigee/apigee-setup/bin/setup.sh -p component -f configFile
Передайте файл конфигурации утилите apigee-setup , содержащий информацию об установке. Если в файле конфигурации отсутствует какая-либо необходимая информация, утилита apigee-setup предложит ввести ее в командной строке.
Единственное требование состоит в том, что файл конфигурации должен быть доступен или доступен для чтения пользователю «apigee».
Например, используйте следующую команду для установки стека API BaaS:
> sudo /opt/apigee/apigee-setup/bin/setup.sh -p b -f myConfig
Утилита Apigee setup.sh поддерживает несколько вариантов установки компонентов API BaaS. В приведенных ниже инструкциях используются автономные параметры (c, e, b и p), но вы можете использовать другие параметры в зависимости от конфигурации вашего узла:
Вариант | Описание |
---|---|
е | Установите только ElasticSearch. |
б | Установите только API BaaS Stack, который также устанавливает Tomcat. |
п | Установите только API BaaS Portal, который также устанавливает маршрутизатор Nginx, который будет использоваться в качестве веб-сервера. |
с | Установите только Кассандру. |
Эб | Установите ElasticSearch, API BaaS Stack и Tomcat на узле. |
э.б.п. | Установите ElasticSearch, API BaaS Portal, API BaaS Stack и Tomcat. Портал настолько легок, что для этого не требуются дополнительные ресурсы. |
Аса | Установите все компоненты 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 отключена, вам все равно придется передать эти значения. Однако значения игнорируются. |
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, это может быть URL-адрес и номер порта узла стека API BaaS в форме: http://stackIPorDNS:8080 Номер порта для сервера API BaaS Stack — 8080. |
BAAS_PORTAL_URL | URL-адрес и номер порта балансировщика нагрузки, если он есть перед порталом, в форме: |
BAAS_PORTAL_LISTEN_PORT | Номер порта для сервера API BaaS Portal — 9000. Если этот порт недоступен, укажите другой порт. Если вы устанавливаете BAAS_PORTAL_URL для URL-адреса узла портала, номера портов должны быть одинаковыми для обоих свойств. |
Необязательно — установите Cassandra: машины 8, 9 и 10.
Хотя вы можете подключить API BaaS к тому же кластеру Cassandra, который используется Edge, Apigee рекомендует использовать отдельные кластеры.
Кластер Cassandra может использовать аутентификацию или аутентификацию Cassandra можно отключить. Дополнительную информацию см. в разделе Включение аутентификации Cassandra .
- Установите утилиту Edge apigee-setup на узле, используя процедуру через Интернет или без Интернета. Дополнительные сведения см. в разделе Установка утилиты Edge apigee-setup .
- В командной строке запустите сценарий установки:
> /opt/apigee/apigee-setup/bin/setup.sh -pc -f файл конфигурации
Опция «-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 на узле, используя процедуру через Интернет или без Интернета. Дополнительные сведения см. в разделе Установка утилиты Edge apigee-setup .
- В командной строке запустите сценарий установки:
> /opt/apigee/apigee-setup/bin/setup.sh -pe -f файл конфигурации
Опция «-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
Конфигурация успешно завершает установку на узле.
Установите стек API BaaS: машины 4, 5 и 6.
Чтобы установить стек API BaaS:
- Установите утилиту Edge apigee-setup на узле, используя процедуру через Интернет или без Интернета. Дополнительные сведения см. в разделе Установка утилиты Edge apigee-setup .
- В командной строке запустите сценарий установки:
> /opt/apigee/apigee-setup/bin/setup.sh -pb -f файл конфигурации
Опция «-p b» указывает на установку API BaaS Stack.
Файл конфигурации должен быть доступен или доступен для чтения пользователю «apigee».
После того как установщик получит правильные учетные данные администратора, он устанавливает Tomcat, создает пространства ключей API BaaS и настраивает стек API BaaS на сервере. SMTP также настроен так, чтобы пользовательский интерфейс мог отправлять электронные письма с подтверждением пароля.
Установите API BaaS Portal: Machine 7
Чтобы установить портал API BaaS:
- Установите утилиту Edge apigee-setup на узле, используя процедуру через Интернет или без Интернета. Дополнительные сведения см. в разделе Установка утилиты Edge apigee-setup .
- В командной строке запустите сценарий установки:
> /opt/apigee/apigee-setup/bin/setup.sh -pp -f файл конфигурации
Опция «-p p» указывает на необходимость установки API BaaS Portal.
Файл конфигурации должен быть доступен или доступен для чтения пользователю «apigee».
Установщик запускает веб-сервер Nginx, а затем завершает настройку портала API BaaS.
Запишите URL-адрес портала API BaaS. Это URL-адрес, который вы вводите в браузере для доступа к пользовательскому интерфейсу портала API BaaS.
Настройка узлов API BaaS для балансировщика нагрузки стека или портала.
Если вы включаете балансировщик нагрузки перед узлами стека или портала, вам необходимо настроить узлы с правильным URL-адресом балансировщика нагрузки. Например, узлам стека требуется эта информация, когда:
- Включение URL-адреса в ответы на запросы API BaaS.
- Добавление ссылок в шаблоны электронных писем при сбросе пароля или отправке других уведомлений.
- Перенаправление пользователей на определенные страницы Портала.
Если вы используете балансировщик нагрузки перед узлами стека, установите следующие свойства в /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 развертывание - Перезапустите стек BaaS:
> /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid перезапуск - Если вы изменили портал.properties , настройте узел Портал:
> /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal configure - Разверните изменения:
> /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal развертывание - Перезапустите портал BaaS:
> /<inst_root>/apigee/apigee-service/bin/apigee-service перезапуск baas-portal
Вступление в новую организацию
Онбординг — это процесс создания организации и администратора организации. После создания организации и администратора организации вы можете войти в пользовательский интерфейс API BaaS Portal и отправлять запросы к 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 Portal в форме:
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 .