API BaaS 安裝

Edge for Private Cloud 4.16.09 版

使用負載平衡器

API BaaS 的正式環境安裝作業會在 API BaaS 入口網站節點和 API BaaS Stack 節點之間使用負載平衡器。設定入口網站時,請指定負載平衡器的 IP 位址或 DNS 名稱,而非 Stack 節點。

除了負載平衡器,您也可以使用循環配置資源 DNS。在這種情況下,您會建立 DNS 項目,其中包含多個與 BaaS 堆疊 IP 位址對應的 A 記錄。在 DNS 查詢期間,DNS 伺服器會自動以循環配置方式傳回 A 記錄值。

連線至 Cassandra

安裝 BaaS 時,您可以選擇將 BaaS 和 Edge 連結至同一個 Cassandra 叢集,或為 BaaS 建立獨立的 Cassandra 叢集。較小型的 BaaS 安裝 (即流量較低的安裝) 通常會與 Edge 共用 Cassandra 叢集。

如要提高處理量和可用性,或將 Cassandra 叢集分隔至不同的網路區域,Apigee 建議您使用獨立的 Cassandra 叢集。如果 BaaS 流量負載偏高,使用獨立叢集可大幅提升效能。

日期同步

所有伺服器的日期/時間必須同步。如果尚未設定,可以使用「ntpdate」公用程式,驗證伺服器是否已同步時間。您可以使用「yum install ntp」安裝公用程式。

Tomcat 安全性

API BaaS 安裝程式也會在所有 API BaaS Stack 節點上安裝 Apache Tomcat 伺服器,包括 Tomcat 管理員 UI。安裝程式會將預設管理員憑證保留為 admin:admin。

如有需要,您可以變更這些憑證,確保 Tomcat 安全。詳情請參閱:

安裝總覽

在節點上安裝 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 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 入口網站,這也會安裝 Nginx 路由器,做為網路伺服器使用。

c

僅安裝 Cassandra。

eb

在節點上安裝 ElasticSearch、API BaaS Stack 和 Tomcat。

ebp

安裝 ElasticSearch、API BaaS 入口網站、API BaaS Stack 和 Tomcat。入口網站非常輕量,不需要額外資源。

asa

在單一節點上安裝所有 API 元件 (Cassandra、Elasticsearch、API BaaS Stack 和 API BaaS Portal)。這個選項僅適用於開發和測試,不適用於正式環境。

建立靜默設定檔

以下是 10 節點 API BaaS 安裝作業的自動設定檔範例。請視設定需要編輯這個檔案。使用 setup.sh 的 -f 選項加入這個檔案。

# 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,請指定 Cassandra 節點 IP (而非 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 等。如果您要連線至透過 Edge 安裝的 Cassandra 叢集,可以向 Edge 系統管理員詢問這個值。在 Edge 單一資料中心安裝中,預設值為 dc-1。

如果您在安裝 API BaaS 時一併安裝 Cassandra,則在安裝 Cassandra 時,您已將「:dc,ra」修飾符新增至 Cassandra IP 位址。第一個值「dc」是資料中心編號。資料中心名稱為字串「dc-」,後置字串為資料中心編號。

BAAS_CASS_REPLICATION

格式為「dataCenterName:#CassandraNodes」。 舉例來說,如果 dc-1 有三個 Cassandra 節點,則為 dc-1:3。

BAAS_USERGRID_URL

在正式環境中,這是 API BaaS 堆疊節點前端負載平衡器的網址和通訊埠,格式如下:

http://myStackLoadBalancer:8443

在測試或開發環境中,如果只有一個 API BaaS Stack 節點,則可以是 API BaaS Stack 節點的網址和通訊埠編號,格式如下:

http://stackIPorDNS:8080

API BaaS Stack 伺服器的通訊埠號碼為 8080。

BAAS_PORTAL_URL

如果入口網站前方有負載平衡器,請輸入負載平衡器的網址和通訊埠編號,格式如下:

http://myPortalLoadBalancer:8443

如果沒有負載平衡器,請輸入入口網站節點的網址和通訊埠編號,格式如下:

http://portalIPorDNS:9000

根據預設,API BaaS 入口網站的通訊埠編號為 9000。

BAAS_PORTAL_LISTEN_PORT

API BaaS 入口網站伺服器的通訊埠號碼為 9000。如果這個通訊埠無法使用,請指定其他通訊埠。

如果您將 BAAS_PORTAL_URL 設為入口網站節點的網址,則這兩個屬性的通訊埠編號必須相同。

選用 - 安裝 Cassandra:機器 8、9 和 10

雖然您可以將 API BaaS 連線至 Edge 使用的同一個 Cassandra 叢集,但 Apigee 建議您使用不同的叢集。

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 工作

設定 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

    「-p e」選項指定安裝 ElasticSearch。
    設定檔必須可供「apigee」使用者存取或讀取。
  3. (選用) 如果您在獨立節點上安裝 ElasticSearch (也就是未與 API BaaS Stack 一併安裝),請調整預設記憶體選項,將分配給 ElasticSearch 的記憶體從 4 GB 增加到 6 GB:
    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 Stack,請按照下列步驟操作:

  1. 使用網際網路或非網際網路程序,在節點上安裝 Edge apigee-setup 公用程式。詳情請參閱「安裝 Edge apigee-setup 公用程式」。
  2. 在命令提示字元中執行設定指令碼:
    > /opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile

    「-p b」選項指定安裝 API BaaS Stack。
    設定檔必須可供「apigee」使用者存取或讀取。

安裝程式擷取正確的管理員憑證後,會安裝 Tomcat、建立 API BaaS 鍵空間,並在伺服器上設定 API BaaS Stack。SMTP 也經過設定,可讓 UI 傳送密碼確認電子郵件。

安裝 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 網路伺服器,然後完成 API BaaS 入口網站設定。

記下 API BaaS 入口網站網址。您可以在瀏覽器中輸入這個網址,存取 API BaaS 入口網站使用者介面。

為 Stack 或入口網站負載平衡器設定 API BaaS 節點

如果您在 Stack 或入口網站節點前方加入負載平衡器,則必須使用正確的負載平衡器網址設定節點。舉例來說,Stack 節點在下列情況下需要這項資訊:

  • 在 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 替換為負載平衡器的網址。如果負載平衡器設為使用 TLS,請使用 HTTPS 通訊協定。只有在使用非標準通訊埠 (即 HTTP 的通訊埠 80 和 HTTPS 的通訊埠 443 以外的通訊埠) 時,才需要加入通訊埠。

如果您在 Stack 節點前方使用負載平衡器,也必須在 /opt/apigee/customer/application/portal.properties 中設定下列屬性:

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

將 http://localhost:8080 替換為 Stack 負載平衡器的網址。

如果您在入口網站節點前方使用負載平衡器,請在 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 替換為負載平衡器的網址。如果負載平衡器設為使用 TLS,請使用 HTTPS 通訊協定。只有在使用非標準通訊埠 (即 HTTP 的通訊埠 80 和 HTTPS 的通訊埠 443 以外的通訊埠) 時,才需要加入通訊埠。

編輯 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,請設定入口網站節點:
    > /<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 入口網站:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal restart

開始使用新組織

新手上路是指建立組織和組織管理員的程序。建立組織和組織管理員後,您可以登入 API BaaS 入口網站 UI,並向 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。