Private Cloud v4.18.01 專用 Edge
如果更新至 Edge 4.18.01 時發生錯誤,您可以將元件復原 然後再次嘗試更新。舉例來說,如果更新至 Postgres 9.6 失敗,您可以只復原 Postgres 節點並再次嘗試更新。
在以下兩種情況中,您可能會想執行復原作業:
- 復原至較舊的版本。例如從 4.18.01 到 4.17.01。
- 復原至同一個版本中。
請按照下列程序復原這兩種情況。
誰可以執行復原作業
執行復原作業的使用者,應與最初更新 Edge 的使用者相同。 或以根使用者的身分運作的使用者
根據預設,Edge 元件會以使用者「apigee」執行。在某些情況下,您可能在作業系統上執行 Edge 將元件當做不同使用者舉例來說,如果路由器必須存取具有特殊權限的通訊埠, 則必須以根層級使用者的身分執行路由器,或是將路由器以根使用者的身分執行 通訊埠。或者,您也可以分別以一個使用者身分執行元件和另一個元件,做為另一個使用者執行。
哪些元件可以復原
執行復原作業時,請留意下列條件:
- 下列五個 Edge 元件會共用通用程式碼。因此,如要復原
節點上的五個元件,您必須復原節點上安裝的五個元件。適用對象
舉例來說,如果您在
如要將其中一個節點復原,您必須先復原這三個節點。
共用代碼的五個元件如下:
- 管理伺服器
- 路由器
- 訊息處理器
- Qpid 伺服器
- Postgres 伺服器
- 如果是從 Edge 4.16.01 更新,請勿復原 Cassandra。這個 Edge 版本包含 Cassandra 的更新版本。復原任何元件時 Cassandra 是 4.18.01 版
將於 4.18.01 版復原
本節說明將 Edge 4.18.01 復原至先前版本的程序。這個 這個區段分成兩個部分:
- 復原 Postgres 更新
每個更新程序的最後一個部分,是將 Postgres 節點更新至 9.6 版。如果這樣 更新失敗之後,您就能按照這個程序來復原更新。 - 復原所有其他 Edge 元件
請使用本程序復原任何其他 Edge 元件。
復原 Postgres 9.6 更新
如要在主待命設定中更新 Postgres 時,復原 Postgres 更新,請 你:
- 將新的待命節點升級為 Postgres 主要執行個體。新的 Postgres 主資源會是 的版本與之前安裝的 Edge 版本相同。
- 將舊待命節點設為新主要執行個體的待命節點。舊的待命節點 會與您之前安裝的 Edge 版本相同。
- 向數據分析和用戶群組註冊新的主要節點和待命節點。
完成復原後,就不再需要舊的主要節點。你可以 然後停用舊的主節點
- 確認新的待命 Postgres 節點正在執行:
> /opt/apigee/apigee-service/bin/apigee-all status
如果 Postgres 未執行,請啟動:
> /opt/apigee/apigee-service/bin/apigee-all start
- 確認 Postgres 已在舊的主要節點和舊待命節點上停止:
> /opt/apigee/apigee-service/bin/apigee-all status
如果 Postgres 正在執行,請停止執行:
> /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
- 如果已安裝,請在舊待命節點上啟動 Qpid:
敬上> /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server start
- 將新的待命節點升級為 Postgres 主要執行個體:
- 將新的待命節點升級為新主要執行個體:
> apigee-service apigee-postgresql promote-standby-to-master new_standby_IP
如果出現提示,請輸入「apigee」的 Postgres 密碼使用者 (預設為 「postgres」。
- 編輯您用於安裝最新 Edge 版本的設定檔,以指定
包括:
# IP address of the new master: PG_MASTER=new_standby_IP # IP address of the old standby node PG_STANDBY=old_standby_IP
- 設定新主要執行個體:
> /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFile
- 將新的待命節點升級為新主要執行個體:
- 重新建構舊待命節點:
- 編輯您用於安裝最新 Edge 版本的設定檔,以指定
包括:
# IP address of the new master: PG_MASTER=new_standby_IP # IP address of the old standby node PG_STANDBY=old_standby_IP
- 移除舊待命節點上的資料目錄:
> cd /opt/apigee/data/apigee-postgresql/pgdata > rm -rf *
- 將舊待命節點重新設定為新主要執行個體的待命節點:
> /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
- 確認 Postgres 會在舊的待命節點上執行:
> /opt/apigee/apigee-service/bin/apigee-all status
如果未執行,請啟動:
> /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server start
- 編輯您用於安裝最新 Edge 版本的設定檔,以指定
包括:
- 查看
新主要執行個體上的
/opt/apigee/apigee-postgresql/conf/pg_hba.conf
檔案。 - 執行下列指令,查看目前的數據分析和消費者群組資訊
在管理伺服器上:
> curl -u sysAdminEmail:password http://ms_IP:8080/v1/analytics/groups/ax
這個指令會在
name
欄位中傳回 Analytics 群組名稱,以及 在consumer-groups
下方name
欄位中的消費者群組名稱。此外, 會傳回舊 Postgres 主要執行個體和待命節點的 UUIDpostgres-server
欄位和datastores
欄位中。您應該會看到 格式如下:{ "name" : "axgroup-001", "properties" : { }, "scopes" : [ "VALIDATE~test", "sgilson~prod" ], "uuids" : { "qpid-server" : [ "8381a053-433f-4382-bd2a-100fd37a1592", "4b6856ec-ef05-498f-bac6-ef5f0d5f6521" ], "postgres-server" : [ "ab1158bd-1d59-4e2a-9c95-24cc2cfa6edc:27f90844-efab-4b32-8a23-8f85cdc9a256" ] }, "consumer-groups" : [ { "name" : "consumer-group-001", "consumers" : [ "8381a053-433f-4382-bd2a-100fd37a1592", "4b6856ec-ef05-498f-bac6-ef5f0d5f6521" ], "datastores" : [ "ab1158bd-1d59-4e2a-9c95-24cc2cfa6edc:27f90844-efab-4b32-8a23-8f85cdc9a256" ], "properties" : { } } ], "data-processors" : { } }
- 請對舊主要執行個體執行下列 cURL 指令,取得舊主要執行個體的 UUID 位址
主要節點:
> curl -u sysAdminEmail:password http://node_IP:8084/v1/servers/self
輸出內容結尾處會顯示節點的 UUID,格式如下:
敬上"type" : [ "postgres-server" ], "uUID" : "599e8ebf-5d69-4ae4-aa71-154970a8ec75"
- 重複上述步驟,取得舊待命節點和新待命節點的 IP 位址 主要節點。
- 從用戶群組中移除舊的主要執行個體和待命節點:
> curl -u sysAdminEmail:password -X DELETE "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/datastores/masterUUID,standbyUUID" -v
其中 axgroup-001 和 consumer-group-001 是 數據分析和用戶群組masterUUID,standbyUUID的順序與本身相同 上方顯示的是您在上述目前的數據分析和消費者群組資訊時。個人中心 可能需要將其指定為 standbyUUID,masterUUID
consumer-groups
的datastores
屬性現在應如下所示: 並將空無一物。 - 從分析群組中移除舊的主要執行個體和待命節點:
> curl -u sysAdminEmail:password -X DELETE "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=masterUUID,standbyUUID&type=postgres-server" -v
uuids
下的postgres-server
屬性現在應留空。 - 透過數據分析和使用者群組註冊新的 PG 主節點和待命節點:
> curl -u sysAdminEmail:password -X POST -H "Content-Type: application/json" -d '' "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=masterUUID,standbyUUID&type=postgres-server" -v > curl -u sysAdminEmail:password -X POST -H "Content-Type:application/json" -d '' "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/datastores?uuid=masterUUID,standbyUUID" -v
- 驗證數據分析群組:
> curl -u sysAdminEmail:password http://ms_IP:8080/v1/analytics/groups/ax
數據分析群組應會列出新主要執行個體和待命節點的 UUID,以及 的消費者群組
- 重新啟動 Edge Management Server:
> /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
- 重新啟動所有 Qpid 伺服器:
> /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
- 重新啟動所有 Postgres 伺服器:
> /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
- 在兩個伺服器上發出下列指令碼,驗證複製狀態。系統
兩台伺服器上應顯示相同的結果,以確保成功複製:
在新主要執行個體上,執行下列指令:
> /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
驗證其是否為主版本。在舊的待命節點上:
> /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby
驗證裝置是否為待機。
- 在提出多個 API 要求後重複上一個步驟,確認節點位於 同步處理。
- 使用
更新 Apigee Edge
4.16.01/4.16.05 至 4.17.09。
或者,您可以從舊的主要執行個體解除安裝 Qpid,然後在新的主要執行個體上安裝 Qpid 節點,如下所述。解除安裝 Qpid 後,即可停用舊的主要執行個體 節點。
使用舊版主要執行個體的 Uninstal Qpid,並在新主要執行個體上安裝 Qpid
請按照下列步驟解除安裝舊主要執行個體的 Qpid,然後在新主版本中安裝 主要:
- 禁止訊息處理者存取舊主要執行個體上的 Qpid 通訊埠 5672,方法如下:
在所有訊息處理器執行下列指令:
> iptables -A OUTPUT -p tcp -d 10.233.147.20 --dport 5672 -j DROP
- 請執行下列指令,確保 Qpid 訊息佇列沒有任何內容。你無法
解除安裝 Qpid,直到處理完所有待處理訊息為止:
> qpid-stat -q
這個指令會顯示包含
msg, msgIn, and msgOut
計數的資料表。 系統會在msg=0
時處理所有訊息, 和msgIn=msgOut
。 - 請在舊主要執行個體執行下列指令,確認 Qpid 伺服器的 UUID
舊的主要執行個體請儲存這些資訊,以供後續程序使用:
> curl -u sysAdminEmail:password http://node_IP::8083/v1/servers/self
- 在舊主要執行個體上停止 Qpid:
> /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop > /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd stop
- 解除安裝 Qpid 伺服器:
> /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server uninstall > /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd uninstall
- 從數據分析和用戶群組中移除舊的 Qpid 伺服器:
> curl -u sysAdminEmail:password -X DELETE -H "Content-Type: application/json" -d '' "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/consumers/qpid_UUID" -v > curl -u sysAdminEmail:password -X DELETE "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=qpid_UUID&type=qpid-server" -v
- 從 Zookeeper 中移除舊的 Qpid 伺服器:
> curl -u sysAdminEmail:password -X DELETE http://ms_IP:8080/v1/servers/qpid_UUID
- 在新的主要執行個體上安裝 Qpid:
> /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile
- 執行下列指令,決定新主要執行個體上 Qpid 伺服器的 UUID:
新的主要執行個體請儲存這些資訊,以供後續程序使用:
> curl -u sysAdminEmail:password http://node_IP::8083/v1/servers/self
- 向數據分析和用戶群組註冊新的 Qpid 伺服器:
> curl -u sysAdminEmail:password -X POST -H "Content-Type: application/json" -d '' "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=qpid_UUID&type=qpid-server" -v > curl -u sysAdminEmail:password -X POST -H "Content-Type:application/json" -d '' "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/consumers?uuid=qpid_UUID" -v
- 重新啟動所有訊息處理器:
> /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- 在新的 Qpid 伺服器上執行下列指令,檢查佇列是否已建立:
> qpid-stat -q
確認你已將
msg、msgIn 和 msgOut 視為 Qpid 伺服器進行更新。 會處理訊息
如何將個別元件 4.18.01
執行復原時,您必須下載 bootstrap.sh 檔案。 最新版 Edge:
- 如要復原至 4.17.09,請下載
bootstrap_4.17.09.sh
- 如要復原至 4.17.05,請下載
bootstrap_4.17.05.sh
- 如要復原至 4.17.01,請下載
bootstrap_4.17.01.sh
- 如要復原至 4.16.09,請下載
bootstrap_4.16.09.sh
- 如要復原至 4.16.05,請下載
bootstrap_4.16.05.sh
- 如要復原至 4.16.01,請下載
bootstrap.sh
針對每個代管元件要復原的節點:
- 停止元件以復原元件:
- 若要復原節點上的以下任一元件,您必須
包括管理伺服器、路由器、訊息處理器、Qpid Server 或 Postgres
伺服器:
> apigee-service edge-management-server stop
> apigee-service edge-router stop
> apigee-service edge-message-processor stop
> apigee-service edge-qpid-server stop
> apigee-service edge-postgres-server stop
- 如果您要復原節點上的任何其他元件,請停止
元件:
> apigee-service comp stop
- 若要復原節點上的以下任一元件,您必須
包括管理伺服器、路由器、訊息處理器、Qpid Server 或 Postgres
伺服器:
- 如果您要復原營利服務,請從所有管理伺服器和訊息中解除安裝
處理器節點:
> apigee-service edge-mint-gateway uninstall
- 解除安裝元件以在節點上復原:
- 如果您要復原節點上的以下任一元件,則
全部解除安裝:管理伺服器、路由器、訊息處理器、Qpid Server 或 Postgres
伺服器:
> apigee-service edge-gateway uninstall
- 如果您要復原節點上的任何其他元件,只需將其解除安裝
元件:
> apigee-service comp uninstall
- 如要復原路由器,則必須刪除
「
/opt/nginx/conf.d
」的內容:> cd /opt/nginx/conf.d > rm -rf *
- 如果您要復原節點上的以下任一元件,則
全部解除安裝:管理伺服器、路由器、訊息處理器、Qpid Server 或 Postgres
伺服器:
-
如要復原元件:
- 解除安裝 4.18.01 版的
apigee-setup
:> /opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
- 下載所需版本的 bootstrap.sh:例如,4.16.09 版:
> curl https://software.apigee.com/bootstrap_4.16.09.sh -o /tmp/bootstrap_4.16.09.sh
- 安裝 4.16.01、4.16.05 或 4.16.09
apigee-service
公用程式,並 依附元件例如 4.16.09 版本:> sudo bash /tmp/bootstrap_4.16.09.sh apigeeuser=uName apigeepassword=pWord
其中 uName 和 pWord 是你收到的使用者名稱和密碼 。如果省略 pWord,系統會提示您輸入 基礎架構
- 安裝
apigee-setup
:> /opt/apigee/apigee-service/bin/apigee-service apigee-setup install
- 安裝所需版本的元件:
> /opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile
其中 comp 是要安裝的元件,configFile 則是 安裝所需版本的設定檔
- 如果您要復原 Qpid,請清除 iptable:
> sudo iptables -F
- 解除安裝 4.18.01 版的
- 如何將元件復原至 4.18.01 的特定版本:
- 下載特定元件版本:
> /opt/apigee/apigee-service/bin/apigee-service comp-version install
其中 comp-version 是要安裝的元件和版本。例如:
> /opt/apigee/apigee-service/bin/apigee-service edge-ui-4.17.09-0.0.3749 install
如果您使用的是 Apigee 線上存放區,可以決定可用的元件版本 使用以下指令:
> yum --showduplicates list comp
例如:
> yum --showduplicates list edge-ui
- 使用
apigee-setup
安裝元件:> /opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile
例如:
> /opt/apigee/apigee-setup/bin/setup.sh -p ui -f configFile
請注意,您只能在安裝時指定元件名稱。
- 下載特定元件版本:
如果在復原版本時遇到問題,請與 Apigee Edge 支援團隊聯絡。