API BaaS 安裝

私有雲的邊緣 4.17.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 堆疊堆疊:

> 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。

Eebp

安裝 ElasticSearch、API BaaS 入口網站、API BaaS Stack 和 Tomcat,但不安裝 Cassandra。入口網站是相當簡便的平台,在進行這項作業時不需額外資源。

阿薩

在單一節點中安裝所有 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

如要在自己的節點上安裝 API BaaS:

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

    「-p asa」選項會指定在單一節點 (例如 Elasticsearch、API BaaS 堆疊、API BaaS 入口網站、Tomcat) 中安裝所有 API BaaS 元件。
    設定檔必須可供「apigee」使用者存取或讀取。
  3. 由於您在獨立節點中安裝了 ElasticSearch,因此請調整預設記憶體選項,將分配給 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
  4. 按照下方「讓新機構啟用流程」一節所述的方式啟用機構。

設定成功在節點上完成設定。

在 7 或 10 個節點中安裝 API BaaS

安裝 7 或 10 個節點版本的 API BaaS 程序非常相似。唯一的差別在於:

  • 安裝 10 個節點後,您會在「個別」節點中安裝三個 ElasticSearch 元件和三個 API BaaS Stack 元件,總共六個節點。由於 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

選用 - 安裝 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

    「-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 堆疊堆疊:

  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 也設定為允許 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 入口網站設定。
  3. 後續步驟取決於您安裝的類型。
    1. 如果負載平衡器位於入口網站或堆疊節點前方,下一節將說明如何為負載平衡器設定 API BaaS。
    2. 如果入口網站或堆疊節點前方沒有負載平衡器,請按照下文「為新機構啟用」一節所述的方式,加入機構。

記下 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 替換為 Stack 負載平衡器的網址。

如果您是在入口網站節點的前面使用負載平衡器,請在 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 設定
  2. 重新啟動 BaaS 堆疊:
    > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart

    注意:重新啟動 BaaS 堆疊節點時,請按照 BAAS_CLUSTER_SEEDS 中的順序重新啟動這些節點。BAAS_CLUSTER_SEEDS 最多只會列出兩個堆疊節點。依序重新啟動這兩個節點後,您就可以按任何順序重新啟動剩餘的節點。

  3. 如果您已修改 portal.properties,請設定入口網站節點:
    > /opt/apigee/apigee-service/bin/apigee-service baas-portal 設定
  4. 重新啟動 BaaS 入口網站:
    > /opt/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 堆疊節點,而且沒有負載平衡器。在這類環境中,您可以直接對 API BaaS 堆疊節點發出 API 呼叫:

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

如要進一步瞭解如何開始使用 API BaaS 入口網站,請參閱 Apigee 說明文件:http://apigee.com/docs/content/build-apps-home