復原 Apigee Edge 4.51.00

如果在更新至 Edge 4.51.00 的過程中發生錯誤,您可以回復導致錯誤的元件,然後再次嘗試更新。

您可以將 Edge 4.51.00 回溯至下列功能版本:

  • 版本 4.50.00
  • 版本 4.19.06

您可能會在下列兩種情況下執行回溯:

  1. 還原至先前的功能版本。例如從 4.51.00 變成 4.50.00。
  2. 在同一個版本中,將裝置回復至先前的更新版本。例如從 4.50.00.02 變更為 4.50.00.01。

詳情請參閱 Apigee Edge 發布程序

誰可以執行回溯

執行回溯的使用者應與最初更新 Edge 的使用者相同,或是以 root 身分執行的使用者。

根據預設,Edge 元件會以「apigee」使用者身分執行。在某些情況下,您可能會以不同的使用者身分執行 Edge 元件。舉例來說,如果 Router 必須存取特權連接埠 (例如 1000 以下的連接埠),則必須以 root 身分或具有這些連接埠存取權的使用者身分執行 Router。或者,您可以以一個使用者的身分執行一個元件,以另一個使用者的身分執行另一個元件。

含有通用程式碼的元件

下列 Edge 元件共用通用程式碼。因此,如要回溯節點上的任何一個元件,您必須回溯該節點上的所有元件。

  • edge-management-server (管理伺服器)
  • edge-message-processor (訊息處理器)
  • edge-router (路由器)
  • edge-postgres-server (Postgres 伺服器)
  • edge-qpid-server (Qpid 伺服器)

舉例來說,如果您在節點上安裝了管理伺服器、路由器和訊息處理器,則必須將這三者全部都回復,才能回復其中任何一個。

復原至先前的功能版本

如要將功能回溯至先前的版本,請在每個代管元件的節點上執行下列操作:

  1. 下載要回溯至的版本的 bootstrap.sh 檔案:

    • 如要回溯至 4.50.00,請下載 bootstrap_4.50.00.sh
      curl https://software.apigee.com/bootstrap_4.50.00.sh -o /tmp/bootstrap_4.50.00.sh 
    • 如要回溯至 4.19.06,請下載 bootstrap_4.19.06.sh
      curl https://software.apigee.com/bootstrap_4.19.01.sh -o /tmp/bootstrap_4.19.01.sh 
  2. 停止要復原的元件:
    1. 如要回復節點上任何含有通用程式碼的元件,您必須全部停止,如以下範例所示:
      /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
    2. 如要回復節點上的任何「其他」元件,請停止該元件:
      • /opt/apigee/apigee-service/bin/apigee-service component stop
  3. 如果您要回溯營利功能,請從所有管理伺服器和訊息處理器節點中解除安裝:
    /opt/apigee/apigee-service/bin/apigee-service edge-mint-gateway uninstall
  4. 解除安裝元件,以便在節點上回溯:
    1. 如要回復節點上任何含有通用程式碼的元件,您必須解除安裝 edge-gateway 元件群組,才能將這些元件全部解除安裝,如以下範例所示:
      /opt/apigee/apigee-service/bin/apigee-service edge-gateway uninstall
    2. 如要回復節點上的任何其他元件,請只卸載該元件,如以下範例所示:
      /opt/apigee/apigee-service/bin/apigee-service component uninstall

      其中 component 是元件名稱。

    3. 如要回復 Edge Router,除瞭解除安裝 edge-gateway 元件群組外,您還必須刪除 /opt/nginx/conf.d 檔案的內容:
      cd /opt/nginx/conf.d
      rm -rf *
  5. 解除安裝 apigee-setup 4.51.00 版:
    /opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
  6. 安裝 4.19.06 或 4.50.00 版本的 apigee-service 公用程式及其依附元件。以下範例會安裝 apigee-service 的 4.50.00 版:
    sudo bash /tmp/bootstrap_4.50.00.sh apigeeuser=uName apigeepassword=pWord

    其中 uNamepWord 是您從 Apigee 收到的使用者名稱和密碼。如果省略 pWord,系統會提示您輸入。

    如果您收到錯誤訊息,請確認您已在步驟 1 中下載 bootstrap.sh 檔案。

  7. 安裝 apigee-setup
    /opt/apigee/apigee-service/bin/apigee-service apigee-setup install
  8. 安裝舊版元件:
    /opt/apigee/apigee-setup/bin/setup.sh -p component -f configFile

    其中 component 是安裝的元件,configFile 則是舊版的設定檔。

  9. 如果您要回復 Qpid,請清除 iptables:
    sudo iptables -F
  10. 針對代管您要回溯的元件的每個節點重複執行這個程序。

復原至先前的更新版本

如要將元件回溯至特定版本的發布版本,請在每個代管元件的節點上執行下列操作:

  1. 下載特定元件版本:
    /opt/apigee/apigee-service/bin/apigee-service component_version install

    其中 component_version 是要安裝的元件和更新版本。例如:

    /opt/apigee/apigee-service/bin/apigee-service edge-ui-4.18.05-0.0.3749 install

    如果您使用的是 Apigee 線上存放區,可以使用下列指令判斷可用的元件版本:

    yum --showduplicates list comp

    例如:

    yum --showduplicates list edge-ui
  2. 使用 apigee-setup 安裝元件:
    /opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile

    例如:

    /opt/apigee/apigee-setup/bin/setup.sh -p ui -f configFile

    請注意,安裝元件時,您只需指定元件名稱,而非版本。

  3. 針對代管您要回溯的元件的每個節點重複執行這個程序。

復原 Postgres 10.17 更新

如果您從 4.19.06 或 4.50.00 版本升級至 4.51.00,除了 Edge 元件之外,您還必須回復 Postgres 更新。

如要在主/待命設定中更新 Postgres 時回溯 Postgres 更新,請按照下列步驟操作:

  • 將新的待命節點升級為 Postgres 主節點。新的 Postgres 主機版本會與先前安裝的 Edge 相同。
  • 將舊待命節點設為新主節點的待命節點。舊備用節點的版本會與先前安裝的 Edge 相同。
  • 將新的主節點和備援節點註冊至分析和消費者群組。

回復完成後,您就不需要舊的主節點。接著,您可以停用舊的主節點。

  1. 確認新的 Postgres 待命節點是否正在執行:
    /opt/apigee/apigee-service/bin/apigee-all status

    如果 Postgres 未執行,請啟動它:

    /opt/apigee/apigee-service/bin/apigee-all start
  2. 請確認 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

  3. 如果已安裝,請在舊備援節點上啟動 Qpid:
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server start
  4. 將新的待命節點升級為 Postgres 主節點:
    1. 將新的待機節點推送為新的主節點
      apigee-service apigee-postgresql promote-standby-to-master new_standby_IP

      如果系統提示,請輸入「apigee」使用者的 Postgres 密碼,預設為「postgres」。

    2. 編輯用於安裝目前 Edge 版本的設定檔,指定下列項目:
      # IP address of the new master:
      PG_MASTER=new_standby_IP
      # IP address of the old standby node
      PG_STANDBY=old_standby_IP
    3. 設定新主控台
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFile
  5. 如果您已將舊備援節點升級至較新版本,則必須先將舊備援節點的 Apigee 軟體降級。如果舊備援節點仍有舊版,您可以略過這個步驟,繼續進行步驟 6。
    1. 在舊待命節點上停止 Postgres:
      apigee-service apigee-postgresql stop
      apigee-service edge-postgres-server stop
    2. 從舊待命節點解除安裝 Postgres:
      apigee-service apigee-postgresql uninstall
      apigee-service edge-postgres-server uninstall
    3. 從舊備援節點刪除 Postgres 資料目錄:
      cd /opt/apigee/data/apigee-postgresql/pgdata > rm -rf *
    4. 在舊備援節點上,下載並執行舊版 Bootstrap (適用於要回溯的 Apigee 版本)。具體步驟可能因您是使用網路安裝還是離線安裝而異。執行舊版 Apigee 引導程序時,系統會使用舊版 Apigee 資料設定 yum 存放區。
    5. 在舊備援節點上設定 Postgres 元件:
      /opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile
    6. 檢查並確認舊備援節點上的 Postgres 元件已復原至舊版本:
      apigee-service apigee-postgresql version
      apigee-service edge-postgres-server version
  6. 重新建構舊待命節點:
    1. 編輯用於安裝目前 Edge 版本的設定檔,指定下列項目:
      # IP address of the new master:
      PG_MASTER=new_standby_IP
      # IP address of the old standby node
      PG_STANDBY=old_standby_IP
    2. 移除舊待命節點上的資料目錄:
      cd /opt/apigee/data/apigee-postgresql/pgdata > rm -rf *
    3. 重新設定舊備援節點,使其成為新主節點的備援節點:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
    4. 確認 Postgres 在舊備援節點上執行:
      /opt/apigee/apigee-service/bin/apigee-all status

      如果 Postgres 未執行,請啟動它:

      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server start
  7. 查看新主控台上的 /opt/apigee/apigee-postgresql/conf/pg_hba.conf 檔案,確認已新增新的待命節點。
  8. 在管理伺服器上執行下列指令,即可查看目前的數據分析和消費者群組資訊:
    curl -u sysAdminEmail:password http://ms_IP:8080/v1/analytics/groups/ax

    這個指令會在 name 欄位中傳回分析群組名稱,以及在 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" : {
      }
    }

  9. 在舊主節點上執行下列 curl 指令,取得舊主節點的 UUID 位址:
    curl -u sysAdminEmail:password http://node_IP:8084/v1/servers/self

    輸出內容的結尾應會顯示節點的 UUID,格式如下:

    "type" : [ "postgres-server" ],
    "uUID" : "599e8ebf-5d69-4ae4-aa71-154970a8ec75"
  10. 重複執行上述步驟,取得舊備援節點和新主節點的 IP 位址。
  11. 從用戶群組中移除舊的主節點和待命節點:
    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-001consumer-group-001 是數據分析和消費者群組的預設名稱。masterUUID,standbyUUID 的順序與您在上述步驟中查看目前的分析和消費者群組資訊時相同。您可能必須將其指定為 standbyUUID,masterUUID

    consumer-groupsdatastores 屬性現在應為空白。

  12. 從 Analytics 群組中移除舊的主節點和待命節點:
    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 屬性現在應為空白。

  13. 使用分析和消費者群組註冊新的 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
  14. 驗證分析群組:
    curl -u sysAdminEmail:password http://ms_IP:8080/v1/analytics/groups/ax

    您應該會在 Analytics 群組和消費者群組中,看到新主節點和待機節點的 UUID。

  15. 重新啟動 Edge Management Server:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
  16. 重新啟動所有 Qpid 伺服器:
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
  17. 重新啟動所有 Postgres 伺服器:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
  18. 請在兩部伺服器上執行下列指令碼,驗證複製狀態。系統應在兩部伺服器上顯示相同的結果,以確保複製作業成功:

    在新的主投影片上執行:

    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master

    確認該裝置是否為主裝置。在舊待命節點上:

    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby

    確認是否為待機模式。

  19. 在提出多項 API 要求後,重複執行上述步驟,確保節點同步。
  20. 使用更新 Apigee Edge 4.16.01/4.16.05 至 4.17.09 中的程序,停用舊的 Postgres 主機。

    或者,您也可以從舊主控端解除安裝 Qpid,並在新的主控節點上安裝 Qpid。卸載 Qpid 後,您可以停用舊的 master 節點。

復原 mTLS

如要回復 mTLS 更新,請在所有主機上執行下列步驟:

  1. 停止 Apigee:
    apigee-all stop
  2. 停止 mTLS:
    apigee-service apigee-mtls uninstall
  3. 重新安裝 mTLS:
    apigee-service apigee-mtls install
    apigee-service apigee-mtls setup -f /opt/silent.conf