适用于私有云的 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,请执行以下操作:
- 使用互联网或非互联网流程在节点上安装 Edge apigee-setup 实用程序。如需了解详情,请参阅安装 Edge apigee-setup 实用程序。
- 在命令提示符中,运行设置脚本:
> /opt/apigee/apigee-setup/bin/setup.sh -p asa -f configFile
“-p asa”选项指定在单个节点(Cassandra、Elasticsearch、API BaaS 堆栈、API BaaS 门户、Tomcat)上安装所有 API BaaS 组件。
配置文件必须可供“apigee”用户访问或读取。 - 由于您在独立节点上安装了 ElasticSearch,因此请调整默认内存选项,将为 ElasticSearch 分配的内存从 4GB 增加到 6GB:
- 在编辑器中打开 /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
- 为新组织设置账号中所述,为组织设置账号。
配置会成功完成节点上的设置。
在 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 身份验证。
- 使用互联网或非互联网流程在节点上安装 Edge apigee-setup 实用程序。如需了解详情,请参阅安装 Edge apigee-setup 实用程序。
- 在命令提示符中,运行设置脚本:
> /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,请执行以下操作:
- 使用互联网或非互联网过程在节点上安装 Edge apigee-setup 实用程序。如需了解详情,请参阅安装 Edge apigee-setup 实用程序。
- 在命令提示符下,运行设置脚本:
> /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile
“-p e”选项指定安装 ElasticSearch。
配置文件必须可供“apigee”用户访问或读取。 - (可选)如果您在独立节点上安装 ElasticSearch(即未通过 API BaaS 堆栈安装),请调整默认内存选项,将为 ElasticSearch 分配的内存从 4GB 增加到 6GB:
- 在编辑器中打开 /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 堆栈,请执行以下操作:
- 使用互联网或非互联网流程在节点上安装 Edge apigee-setup 实用程序。如需了解详情,请参阅安装 Edge apigee-setup 实用程序。
- 在命令提示符中,运行设置脚本:
> /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 门户,请执行以下操作:
- 使用互联网或非互联网流程在节点上安装 Edge apigee-setup 实用程序。如需了解详情,请参阅安装 Edge apigee-setup 实用程序。
- 在命令提示符中,运行设置脚本:
> /opt/apigee/apigee-setup/bin/setup.sh -p p -f configFile
“-p p”选项指定安装 API BaaS 门户。
配置文件必须可供“apigee”用户访问或读取。
安装程序会启动 Nginx Web 服务器,然后完成 API BaaS 门户配置。 - 后续步骤取决于您的安装方式。
- 如果您在 Portalor Stack 节点前面有一个负载平衡器,下一部分将介绍如何为负载平衡器配置 API BaaS。
- 如果您没有在 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 后:
- 配置堆栈节点:
> /opt/apigee/apigee-service/bin/apigee-service baas-usergrid configure - 重启 BaaS 堆栈:
> /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart
注意:重启 BaaS Stack 节点时,请按照 BAAS_CLUSTER_SEEDS 中列出的顺序重启。BAAS_CLUSTER_SEEDS 最多列出两个堆栈节点。按顺序重启这两个节点后,您可以按任何顺序重启其余节点。
- 如果您修改了 portal.properties,请配置门户节点:
> /opt/apigee/apigee-service/bin/apigee-service baas-portal configure - 重启 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>'
如需创建组织,请执行以下操作:
- 将目录更改为 /opt/apigee/baas-usergrid/bin。
- 调用 create_org_and_user.py Python 脚本。
系统会提示您输入 BaaS 系统管理员用户名和密码,以便只有系统管理员才能运行它。 - 使用您在 API BaaS 门户网址安装结束时记下的网址,在网络浏览器中登录 API BaaS 门户。如需访问门户,请在以下格式中输入 API BaaS 门户网址:
http://{portalExternalIP}:9000/
注意:IP 是门户机器的外部 IP 地址/主机名。确保该端口处于打开状态。 - 门户登录界面显示后,您可以执行以下操作:
- 使用组织管理员的用户名和密码登录。
- 使用系统管理员的用户名和密码登录。
访问 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。