如果更新至 Edge 4.52.01 時發生錯誤,可以復原 ,然後再次嘗試更新。
您可以將 Edge 4.52.01 復原至下列主要版本:
- 版本 4.52.00
- 版本 4.51.00
在以下兩種情況中,您可能會想執行復原作業:
- 復原至先前的主要或次要版本。例如從 4.52.01 變更為 4.52.00。
- 復原至先前修補程式版本 ( 版本。例如從 4.52.00.02 變更為 4.52.00.01。
詳情請參閱 Apigee Edge 發布程序。
誰可以執行復原作業
執行復原作業的使用者必須與最初更新 Edge 的使用者相同,或 也就是以根的身分執行的使用者
根據預設,Edge 元件會以使用者「apigee」執行。在某些情況下,您可能在作業系統上執行 Edge 將元件當做不同使用者舉例來說,如果路由器必須存取具有特殊權限的通訊埠, 則必須以根層級使用者的身分執行路由器,或是將路由器以根使用者的身分執行 通訊埠。或者,您也可以分別以一個使用者身分執行元件和另一個元件,做為另一個使用者執行。
含有通用程式碼的元件
以下 Edge 元件會共用通用程式碼。因此,如要回溯節點上的任何一個元件,您必須回溯該節點上的所有元件。
edge-management-server
(管理伺服器)edge-message-processor
(訊息處理器)edge-router
(路由器)edge-postgres-server
(Postgres 伺服器)edge-qpid-server
(Qpid 伺服器)
舉例來說,如果您在裝置上安裝了管理伺服器、路由器和訊息處理器, 如要將其中一個節點復原,您必須復原這三個節點。
復原至前一個主要或次要版本
如要回溯至先前的主要或次要版本,請在每個代管元件的節點上執行下列操作:
-
下載所需版本的
bootstrap.sh
檔案 返回:- 如要復原為 4.51.00 版,請下載
bootstrap_4.51.00.sh
:curl https://software.apigee.com/bootstrap_4.51.00.sh -o /tmp/bootstrap_4.51.00.sh
- 如要復原為 4.51.00 版,請下載
- 停止元件以復原:
- 如要將任何含有通用程式碼的元件復原至
必須全部停止,如以下範例所示:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server stop
/opt/apigee/apigee-service/bin/apigee-service edge-router stop
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor stop
/opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
- 如要復原節點上的任何「other」元件,請停止該元件:
/opt/apigee/apigee-service/bin/apigee-service component stop
- 如要將任何含有通用程式碼的元件復原至
必須全部停止,如以下範例所示:
- 如果您要復原營利服務,請從所有管理伺服器和訊息中解除安裝
處理器節點:
/opt/apigee/apigee-service/bin/apigee-service edge-mint-gateway uninstall
- 解除安裝元件以復原節點:
- 如要回復節點上任何含有通用程式碼的元件,您必須解除安裝
edge-gateway
元件群組,才能將這些元件全部解除安裝,如以下範例所示:/opt/apigee/apigee-service/bin/apigee-service edge-gateway uninstall
- 如要將其他元件復原到節點上,只要解除安裝該元件,
範例如下:
/opt/apigee/apigee-service/bin/apigee-service component uninstall
其中 component 是元件名稱。
- 如要復原 Edge Router,您必須刪除
/opt/nginx/conf.d
檔案,除瞭解除安裝edge-gateway
元件群組:cd /opt/nginx/conf.d
rm -rf *
- 如要回復節點上任何含有通用程式碼的元件,您必須解除安裝
- 解除安裝 4.52.01 版的
apigee-setup
:/opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
- 安裝 4.51.00 版本的
apigee-service
公用程式和依附元件以下範例會安裝apigee-service
:sudo bash /tmp/bootstrap_4.51.00.sh apigeeuser=uName apigeepassword=pWord
其中 uName 和 pWord 是您收到的使用者名稱和密碼 。如果省略 pWord,系統會提示您輸入。
如果收到錯誤訊息,請確實下載
bootstrap.sh
檔案 1. - 安裝
apigee-setup
:/opt/apigee/apigee-service/bin/apigee-service apigee-setup install
- 安裝舊版元件:
/opt/apigee/apigee-setup/bin/setup.sh -p component -f configFile
其中 component 是要安裝的元件,configFile 則是 復原為舊版設定檔
- 如果您要復原 Qpid,請清除 iptable:
sudo iptables -F
- 針對您要復原的元件的每個節點重複此程序。
復原至前一個修補程式版本
如要將元件復原至特定的修補程式版本,請針對每個節點執行下列操作 代管元件:
- 下載特定元件版本:
/opt/apigee/apigee-service/bin/apigee-service component_version install
其中 component_version 是要安裝的元件和修補程式版本。例如:
/opt/apigee/apigee-service/bin/apigee-service edge-ui-4.51.05-0.0.3749 install
如果您使用的是 Apigee 線上存放區,可以決定可用的元件 建立 App Engine 應用程式版本:
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
請注意,您在安裝時只指定元件名稱,而不是版本名稱。
- 針對您要復原的元件的每個節點重複此程序。
復原 Postgres 10.17 更新
如果您已從 4.50.00 或 4.51.00 版升級至 4.52.01,就必須復原 除了 Edge 元件外,還會更新 Postgres。
如何在主待命設定中更新 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
- 將新的待命節點升級為新主要執行個體:
- 如果您已將舊的待命節點升級至較新版本,您必須先
會將舊待命節點上的 Apigee 軟體降級如果仍在舊版本中
待命節點,您可以略過這個步驟,繼續執行步驟 6。
- 在舊待命節點上停止 Postgres:
apigee-service apigee-postgresql stop apigee-service edge-postgres-server stop
- 從舊待命節點解除安裝 Postgres:
apigee-service apigee-postgresql uninstall apigee-service edge-postgres-server uninstall
- 從舊待命節點刪除 Postgres 資料目錄:
cd /opt/apigee/data/apigee-postgresql/pgdata > rm -rf *
- 下載並執行舊版 Bootstrap (適用於您目前推出的 Apigee 版本 ) 復原至舊的待命節點上具體步驟可能會因你使用第三方服務 網際網路或離線安裝執行舊版 Apigee 引導程序時,系統會使用舊版 Apigee 資料設定 yum 存放區。
- 在舊備援節點上設定 Postgres 元件:
/opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile
- 檢查並確認舊備援節點上的 Postgres 元件已復原至舊版本:
apigee-service apigee-postgresql version apigee-service edge-postgres-server version
- 在舊待命節點上停止 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
- 移除舊待命節點上的資料目錄:
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
如果 Postgres 未執行,請啟動:
/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-server
欄位和datastores
欄位中傳回舊 Postgres 主節點和待命節點的 UUID。您應該會看到 格式如下:{ "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 要求後,重複執行上述步驟,確保節點保持同步。
- 使用「停用 Postgres 節點」一文中的程序,停用舊的 Postgres 主機。
或者,您也可以從舊主控端解除安裝 Qpid,並在新的主控節點上安裝 Qpid。卸載 Qpid 後,您可以停用舊的 master 節點。
復原 mTLS
如要回復 mTLS 更新,請在所有主機上執行下列步驟:
- 停止 Apigee:
apigee-all stop
- 停止 mTLS:
apigee-service apigee-mtls uninstall
- 重新安裝 mTLS:
apigee-service apigee-mtls install
apigee-service apigee-mtls setup -f /opt/silent.conf