API BaaS 安装

适用于私有云的 Edge v4.18.01

安装概览

在节点上安装 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 Stack,这也会安装 Tomcat。

p

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

c

仅安装 Cassandra。

eb

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

ebp

安装 ElasticSearch、API BaaS 门户、API BaaS 堆栈和 Tomcat,但不安装 Cassandra。 该门户非常轻量,无需额外资源即可实现此目的。

Asa

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

创建配置文件

配置文件包含安装 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,请执行以下操作:

  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 堆栈、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

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

  • 10 个节点安装:您将三个 ElasticSearch 组件和三个 API BaaS Stack 组件安装在单独的节点上,总计为六个节点。这是实现最高性能的建议配置,因为 ElasticSearch 需要大量的磁盘 I/O 和内存。
  • 7 个节点安装:您将三个 ElasticSearch 组件和三个 API BaaS Stack 组件安装在同一节点上,总共三个节点。

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

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

  • 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。对 Cassandra 的 JMX 远程访问不需要密码。您可以将 Cassandra 配置为对 JMX 使用身份验证。如需了解详情,请参阅如何监控

设置 Cassandra Cron 作业

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

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

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

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

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

安装 ElasticSearch: 计算机 1、2 和 3

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

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

    “-p e”选项指定安装 ElasticSearch。
    配置文件必须可供“apigee”用户访问或读取。
  3. (可选)如果您在独立节点上安装 ElasticSearch(即未通过 API BaaS 堆栈安装),请调整默认内存选项,将为 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

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

安装 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. 如果您在 Portalor Stack 节点前面有一个负载平衡器,下一部分将介绍如何为负载平衡器配置 API BaaS。
    2. 如果您没有在 Portalor 堆栈节点前面放置负载平衡器,请按照下文中的新建组织部分所述的步骤完成组织初始配置。

记下 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.properties portal.properties 后:

  1. 配置堆栈节点:
    > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid configure
  2. 重启 BaaS 堆栈:
    > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart

    注意:重启 BaaS Stack 节点时,请按照 BAAS_CLUSTER_SEEDS 中列出的顺序重启。BAAS_CLUSTER_SEEDS 最多列出两个堆栈节点。按顺序重启这两个节点后,您可以按任何顺序重启其余节点。

  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/

    注意:IP 是门户机器的外部 IP 地址/主机名。确保该端口处于打开状态。
  4. 门户登录界面显示后,您可以执行以下操作:
    • 使用组织管理员的用户名和密码登录。
    • 使用系统管理员的用户名和密码登录。

访问 API BaaS REST API

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

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

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

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

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