API BaaS 安装

Edge for Private Cloud v. 4.17.09

安装概览

在节点上安装 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 堆栈:

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 堆栈,这也会安装 Tomcat。

p

仅安装 API BaaS 门户,该门户还会安装要用作 Web 服务器的 Nginx 路由器。

c

仅安装 Cassandra。

eb

在节点上安装 ElasticSearch、API BaaS Stack 和 Tomcat。

EBP

安装 ElasticSearch、API BaaS 门户、API BaaS Stack 和 Tomcat,但不安装 Cassandra。 门户非常轻巧,不需要额外的资源。

Asa

在单个节点(Cassandra、Elasticsearch、API BaaS 堆栈、API BaaS 门户、Tomcat)上安装所有 API BaaS 组件。此选项仅适用于开发和测试,不适用于生产环境。

创建配置文件

配置文件包含安装 API BaaS 所需的所有信息。通常,您可以使用同一配置文件来安装 BaaS 安装中的所有组件。

下面介绍的每个安装拓扑都会显示该拓扑的示例配置文件。如需查看配置文件的完整参考,请参阅 BaaS 配置文件参考

在单个节点上安装 API BaaS

下面显示的是用于在单个节点上安装 API BaaS 的配置文件。根据您的配置需要修改此文件。如需查看配置文件的完整参考,请参阅 BaaS 配置文件参考

IP1=192.168.56.101   # IP address of single node

# 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=stackAdminPWord

# Because you are installing Cassandra,
# specify Cassandra data center and rack suffix.
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP1:1,1"

# Specify the Cassandra region.
REGION=dc-1

# 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 Cassandra data center name.
BAAS_CASS_LOCALDC=dc-1

# For a single data center, specify the same value as BAAS_CASS_LOCALDC.
BAAS_CASS_DC_LIST=dc-1

# Replication is in the form "dataCenterName:#CassandraNodes".
# For dc-1 with one Cassandra node, it is dc-1:1.
BAAS_CASS_REPLICATION=dc-1:1

# Defines the initial contact points for members of the BaaS cluster.
# For a single node install, specify the IP address of the node.
BAAS_CLUSTER_SEEDS="dc-1:$IP1"

# Single ElasticSearch IP.
ES_HOSTS="$IP1"

# API BaaS Stack information.
# Default cluster name is "apigee_baas"
BAAS_USERGRID_CLUSTERNAME="apigee_baas"

# IP/DNS and port 8080 of a single Stack node.
BAAS_USERGRID_URL="http://$IP1:8080"

# URL and port of the BaaS Portal node.
BAAS_PORTAL_URL="http://$IP1: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
SMTPMAILFROM="My Company <myco@company.com>"

如需在 API BaaS 各自的节点上安装 API BaaS,请执行以下操作:

  1. 使用互联网或非互联网程序在节点上安装 Edge apigee-setup 实用程序。如需了解详情,请参阅安装 Edge apigee-setup 实用程序
  2. 在命令提示符处,运行设置脚本:
    /opt/apigee/apigee-setup/bin/setup.sh -p asa -f configFile

    “-p asa”选项指定在单个节点(Cassandra、Elasticsearch、API BaaS Stack、API BaaS 门户、Tomcat)上安装所有 API BaaS 组件。

    配置文件必须可供“apigee”用户访问或读取。

  3. 由于您在独立节点上安装了 ElasticSearch,因此请调整默认内存选项,将为 ElasticSearch 分配的内存从 4GB 增加到 6GB:
    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
  4. 请按照下文对新组织进行新手入门流程中的说明对组织进行初始配置。

配置已成功完成节点上的设置。

在 7 或 10 个节点上安装 API BaaS

安装 7 节点或 10 节点版 API BaaS 的过程非常相似。唯一的区别在于:

  • 如果安装了 10 个节点,则在单独的节点上安装三个 ElasticSearch 组件和三个 API BaaS 堆栈组件,总共六个节点。这是实现最高性能的推荐配置,因为 ElasticSearch 需要大量的磁盘 I/O 和内存。
  • 如果安装了 7 个节点,则在同一节点上安装三个 ElasticSearch 组件和三个 API BaaS 堆栈组件,总共三个节点。

对于 API BaaS 的 7 节点版本和 10 节点版本,您都必须连接到 Cassandra 集群。如果您已安装 Edge,则可以连接到其 Cassandra 集群,这意味着您无需在安装 API BaaS 时安装 Cassandra。

下面显示了一个 10 节点 API BaaS 安装的静默配置文件示例。如果您要在同一三个节点上安装 ElasticSearch 和 API BaaS 堆栈组件,请将该文件修改为:

  • IP1 和 IP4 设为了相同的 IP 地址
  • IP2 和 IP5 设为了相同的 IP 地址
  • IP3 和 IP6 设为了相同的 IP 地址

根据需要为您的配置修改此文件。如需查看配置文件的完整参考,请参阅 BaaS 配置文件参考

# 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=stackAdminPWord

# Only if you are installing Cassandra.
# Specify Cassandra data center and rack suffix.
# 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"

# Specify the Cassandra region.
REGION=dc-1

# 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.

# For a single data center, specify the same value as BAAS_CASS_LOCALDC.
BAAS_CASS_DC_LIST=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

# Defines the initial contact points for members of the BaaS cluster. 
# Specify the IP address of no more than two Stack nodes. 
BAAS_CLUSTER_SEEDS="dc-1:$IP4,dc-1:$IP5"

# 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
SMTPMAILFROM="My Company <myco@company.com>"

可选 - 安装 Cassandra:机器 8、9 和 10

您可以将 API BaaS 连接到 Edge 使用的同一 Cassandra 集群。如果尚未安装 Edge,您可以选择安装 Cassandra 以供 API BaaS 使用。

Cassandra 集群可以使用身份验证,也可以停用 Cassandra 身份验证。如需了解详情,请参阅启用 Cassandra 身份验证

  1. 使用互联网或非互联网程序在节点上安装 Edge apigee-setup 实用程序。如需了解详情,请参阅安装 Edge apigee-setup 实用程序
  2. 在命令提示符处,运行设置脚本:
    /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile

    “-p c”选项用于指定安装 Cassandra。

    配置文件必须可供“apigee”用户访问或读取。

配置成功完成了节点上的数据存储区设置。

请注意,默认情况下,Cassandra 会启用 JMX。通过 JMX 远程访问 Cassandra 不需要密码。您可以将 Cassandra 配置为使用 JMX 身份验证。如需了解详情,请参阅如何监控

设置 Cassandra Cron 作业

如果必须安装 Cassandra,请设置一个 Cron 作业,该作业使用 nodetool 刷新,以便每小时在每个 Cassandra 节点上运行锁。

如果您有多个 Cassandra 节点,请将每台服务器上的 Cron 作业偏移五分钟,以免所有节点同时刷新。

Cron 作业必须执行以下命令:

/opt/apigee/apigee-cassandra/bin/nodetool -h IP_address flush Apigee_Baas_Locks

其中,IP_address 是 Cassandra 节点的 IP 地址。

安装 ElasticSearch:机器 1、2 和 3

如需在 ElasticSearch 自己的节点上安装,请执行以下操作:

  1. 使用互联网或非互联网程序在节点上安装 Edge apigee-setup 实用程序。如需了解详情,请参阅安装 Edge apigee-setup 实用程序
  2. 在命令提示符处,运行设置脚本:
    /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile
          

    The "-p e" option specifies to install ElasticSearch. The configuration file must be accessible or readable by the "apigee" user.

  3. (Optional) If you install ElasticSearch on a standalone node, meaning it is not installed with API BaaS Stack, then adjust the default memory option to increase the memory allocated for ElasticSearch from 4GB to 6GB:
    1. Open /opt/apigee/customer/application/elasticsearch.properties in an editor. If this file does not exist, create it.
    2. Set the setenv_elasticsearch_max_mem_size property to 6g (the default is 4g):
      setenv_elasticsearch_max_mem_size=6g
    3. 保存文件。
    4. 运行以下命令:
      /opt/apigee/apigee-service/bin/apigee-service apigee-elasticsearch restart

    配置已成功完成节点上的设置。

    安装 API BaaS 堆栈:机器 4、5 和 6

    如需在 API BaaS 堆栈的单独节点上安装,请执行以下操作:

    1. 使用互联网或非互联网程序在节点上安装 Edge apigee-setup 实用程序。如需了解详情,请参阅安装 Edge apigee-setup 实用程序
    2. 在命令提示符处,运行设置脚本:
      /opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile

      “-p b”选项用于指定安装 API BaaS 堆栈。配置文件必须可供“apigee”用户访问或读取。

    安装程序提取正确的管理员凭据后,会安装 Tomcat,创建 API BaaS 密钥空间,并在服务器上设置 API BaaS 堆栈。SMTP 还配置为允许界面发送密码确认电子邮件。

    安装 API BaaS 门户:机器 7

    如需安装 API BaaS 门户,请执行以下操作:

    1. 使用互联网或非互联网程序在节点上安装 Edge apigee-setup 实用程序。如需了解详情,请参阅安装 Edge apigee-setup 实用程序
    2. 在命令提示符处,运行设置脚本:
      /opt/apigee/apigee-setup/bin/setup.sh -p p -f configFile

      “-p p”选项用于指定安装 API BaaS 门户。配置文件必须可供“apigee”用户访问或读取。

      安装程序会启动 Nginx Web 服务器,然后完成 API BaaS 门户配置。

    3. 后续步骤取决于您的安装。
      1. 如果您在 Portal 堆栈节点前面有一个负载平衡器,下一部分将介绍如何为负载平衡器配置 API BaaS。
      2. 如果您在 Portalor Stack 节点前面没有负载平衡器,请按照下方配置新组织中的说明对组织进行初始配置。

    记下 API BaaS 门户网址。这是您在浏览器中输入的用于访问 API BaaS 门户界面的网址。

    为堆栈或门户负载平衡器配置 API BaaS 节点

    如果您在堆栈或门户节点前面添加负载平衡器,则必须使用正确的负载平衡器网址配置节点。例如,在以下情况下,堆栈节点需要此信息:

    • 在 BaaS API 请求的响应中包含网址。
    • 重置密码或发送其他通知时,在电子邮件模板中添加链接。
    • 将用户重定向到特定门户页面。

    如果您在堆栈节点前面使用负载平衡器,请在 /opt/apigee/customer/application/usergrid.properties 中设置以下属性:

    usergrid-deployment_usergrid.api.url.base=http://localhost:8080

    http://localhost:8080 替换为负载平衡器的网址。如果负载平衡器配置为使用 TLS,请使用 HTTPS 协议。只有在使用非标准端口(即 HTTP 的端口 80 和 HTTPS 的端口 443)时,才需要包含端口。

    如果您在堆栈节点之前使用负载平衡器,还必须在 /opt/apigee/customer/application/portal.properties 中设置以下属性:

    baas.portal.config.overrideUrl=http://localhost:8080
    

    http://localhost:8080 替换为堆栈的负载平衡器的网址。

    如果您在门户节点前面使用负载平衡器,请在 usergrid.properties 中设置以下属性:

    usergrid-deployment_portal.url=http://localhost:9000

    http://localhost:9000 替换为负载平衡器的网址。如果负载平衡器配置为使用 TLS,请使用 HTTPS 协议。只有在使用非标准端口(即 HTTP 的端口 80 和 HTTPS 的端口 443)时,才需要包含端口。

    修改 usergrid.propertiesportal.properties 后:

    1. 配置堆栈节点:
      /opt/apigee/apigee-service/bin/apigee-service baas-usergrid configure
    2. 重启 BaaS 堆栈:
      /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart
    3. 如果您修改了 portal.properties,请配置门户节点:
      /opt/apigee/apigee-service/bin/apigee-service baas-portal configure
    4. 重启 BaaS 门户:
      /opt/apigee/apigee-service/bin/apigee-service baas-portal restart

    新组织入职培训

    加盟是创建组织和组织管理员的过程。创建组织和组织管理员后,您可以登录 API BaaS 门户界面并向 API BaaS REST API 发出请求。

    创建组织时,组织管理员的电子邮件地址会:

    • 必须与系统管理员的电子邮件地址不同。
    • 在其他所有组织中必须是唯一的。也就是说,不能为组织管理员创建两个具有相同电子邮件地址的组织。但是,创建组织后,您可以添加其他管理员,这些管理员可跨多个组织重复。

    如需执行初始配置,请使用 create_org_and_user.py Python 脚本。如果在不使用命令行参数的情况下调用此脚本,则它会提示您输入所有信息:

    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. 调用 create_org_and_user.py Python 脚本。

      系统会提示您输入 BaaS 系统管理员用户名和密码,以便只有系统管理员可以运行该文件。

    3. 使用您在 API BaaS 门户网址安装结束时记录的网址,在网络浏览器中登录 API BaaS 门户。如需访问门户,请按以下格式输入 API BaaS 门户网址:
      http://portalExternalIP:9000/
    4. 当门户登录屏幕出现时,您可以执行以下任一操作:
      • 使用组织管理员的用户名和密码登录。
      • 使用系统管理员管理员的用户名和密码登录。

    访问 API BaaS REST API

    如需访问 API BaaS REST API,请使用以下格式的网址:

    https://loadBalancerIP:8080/your-org/your-app

    在开发环境中,您可以在单个节点上安装所有 API BaaS 组件,这意味着您拥有单个 API BaaS 堆栈。或者,您可能有一个包含单个 API BaaS 堆栈节点且没有负载平衡器的小型环境。在此类环境中,您可以直接对 API BaaS 堆栈节点进行 API 调用:

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

    如需详细了解如何开始使用 API BaaS 门户,请参阅位于 http://apigee.com/docs/content/build-apps-home 的 Apigee 文档。