升級入口網站

私有雲 v4.19.01 的邊緣

這個流程說明如何升級現有的 Apigee 開發人員服務入口網站 (或簡稱為入口網站) 地端部署安裝。

決定正確的更新程序

您用來更新入口網站的程序會根據您目前的安裝版本而有所不同:

決定目前的安裝類型

如果您不確定目前的安裝類型,請使用下列指令進行判斷:

  • ls /opt

    如果您使用的是 Nginx/Postgres,您會看到下列目錄:/opt/apigee/opt/nginx

    如果您使用 Apache/MySQL 或 Apache/MariaDB,則不應出現這些目錄。

  • /opt/apigee/apigee-service/bin/apigee-all status

    如果您使用的是 Nginx/Postgres,您會看到下列輸出內容:

    + apigee-service
    apigee-drupal-devportal status
    OK: apigee-drupal-devportal is up and running
    + apigee-service apigee-lb status
    apigee-service: apigee-lb: OK
    + apigee-service apigee-postgresql status
    apigee-service: apigee-postgresql: OK
  • apachectl -S

    如果您是使用 Apache/MySQL 或 Apache/MariaDB,這個指令應傳回入口網站的網頁根目錄,格式如下:

    *:80
    192.168.56.102 (/etc/httpd/conf/vhosts/devportal.conf:1)

預設安裝目錄

升級程序會假設入口網站安裝位置如下:

  • 4.17.05 以上版本:/opt/apigee/apigee-drupal/wwwroot
  • 4.17.05 之前:/opt/apigee/apigee-drupal (Nginx) 或 /var/www/html (Apache)

如果您未在預設目錄中安裝入口網站,請修改以下程序中的路徑以使用安裝目錄。

支援的升級版本

這項升級程序適用於下列版本的入口網站:

  • OPDK-17-01.x
  • OPDK-17-05.x
  • OPDK-17-09.x
  • OPDK-18-01.x
  • OPDK-18-05.x

如要確認您的入口網站版本,請在瀏覽器中開啟下列網址:

http://yourportal.com/buildInfo

更新前的注意事項

至於現有安裝項目,如果您修改了 Drupal 核心或任何非自訂模組中的任何程式碼,則修改內容會遭到覆寫。這包括您對 .htaccess 所做的任何變更。您應假設 /sites 目錄之外的所有內容皆屬於 Drupal。這項規則是 robots.txt 的例外狀況,如果這個檔案存在於網路根目錄中,系統會為您保留其檔案。

繼續安裝之前,請先備份整個 Drupal 網路根目錄。執行以下安裝步驟後,您就可以從備份還原自訂內容。

使用 RPM 升級入口網站

如何更新節點上的入口網站 RPM:

  1. 預設為 Drupal 目錄 (/opt/apigee/apigee-drupal):
    cd /opt/apigee/apigee-drupal
  2. 備份 Drupal 資料庫執行個體。pg_dump 指令會建立資料庫副本:
    pg_dump --dbname=devportal --host=host_IP_address --username=drupaladmin
      --password --format=c > /tmp/portal.dmp

    在此情況下:

    • devportal 是入口網站安裝設定檔中 PG_NAME 屬性指定的資料庫名稱。
    • host_IP_address 是入口網站節點的 IP 位址。
    • drupaladmin 是入口網站用來存取資料庫的 Postgres 使用者名稱,提供入口網站安裝設定檔中 DRUPAL_PG_USER 屬性指定的內容。

    系統會提示您輸入 Postgres 使用者密碼,如入口網站安裝設定檔中 DRUPAL_PG_PASS 屬性所定義。

    如果您之後想從備份還原資料,請使用下列指令:

    pg_restore --clean --dbname=devportal --host=localhost  --username=apigee < /tmp/portal.dmp
  3. 備份整個 Drupal 網路根目錄。預設的安裝位置為 /opt/apigee/apigee-drupal,但您可能已變更。

    如果不確定此目錄的位置,請使用 drush status 指令,或在 Drupal 選單中依序點選「Configuration」>「Media」>「File」項目,確定公開檔案系統的位置和私人檔案系統路徑 (在下一個步驟中)。

  4. 備份 /opt/apigee/data/apigee-drupal-devportal/private 中的檔案。
  5. 將 Drupal 設為維護模式:
    1. 選取「Drupal」選單中的「Configuration」
    2. 在「設定」頁面的「開發」下方,選取「維護模式」
    3. 勾選「讓網站進入維護模式」方塊。
    4. 輸入使用者在維護期間看到的訊息。
    5. 選取「儲存設定」
  6. 按照安裝 Edge apigee-setup 公用程式的說明,停用 SELinux。
  7. 變更為 /opt 目錄:
    cd /opt
  8. 在需要網際網路連線的伺服器中升級:
    1. 將 Edge 4.19.01 bootstrap_4.19.01.sh 檔案下載至 /tmp/bootstrap_4.19.01.sh
      curl https://software.apigee.com/bootstrap_4.19.01.sh -o /tmp/bootstrap_4.19.01.sh
    2. 安裝 Edge 4.19.01 apigee-service 公用程式和依附元件:
      sudo bash /tmp/bootstrap_4.19.01.sh apigeeuser=uName apigeepassword=pWord

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

      根據預設,安裝程式會檢查您是否已安裝 Java 1.8。您可以使用「C」選項繼續操作,不必安裝 Java。

  9. 在沒有網際網路連線的伺服器中升級:
    1. 按照建立本機 Apigee 存放區中的說明建立本機 4.19.01 存放區。
    2. 如要從 .tar 檔案安裝 apigee-service
      1. 在具有本機存放區的節點上,使用下列指令將本機存放區封裝到名為 /opt/apigee/data/apigee-mirror/apigee-4.19.01.tar.gz 的單一 .tar 檔案:
        /opt/apigee/apigee-service/bin/apigee-service apigee-mirror package
      2. 將 .tar 檔案複製到您要更新 Edge 的節點。例如,請將其複製到新節點的 /tmp 目錄。
      3. 在新節點上,將檔案解壓縮至 /tmp 目錄:
        tar -xzf apigee-4.19.01.tar.gz

        這個指令會在包含 .tar 檔案的目錄中建立名為「存放區」的新目錄。例如 /tmp/repos。

      4. /tmp/repos 安裝 Edge apigee-service 公用程式和依附元件:
        sudo bash /tmp/repos/bootstrap_4.19.01.sh apigeeprotocol="file://" apigeerepobasepath=/tmp/repos

        請注意,您會在這個指令中加入存放區目錄的路徑。

    3. 如要使用 Nginx 網路伺服器安裝 apigee-service:
      1. 按照安裝 Edge apigee-setup 公用程式,按照「使用 Nginx 網路伺服器從存放區安裝」的說明設定 Nginx 網路伺服器。
      2. 在遠端節點上,將 Edge bootstrap_4.19.01.sh 檔案下載至 /tmp/bootstrap_4.19.01.sh
        /usr/bin/curl http://uName:pWord@remoteRepo:3939/bootstrap_4.19.01.sh
          -o /tmp/bootstrap_4.19.01.sh

        其中 uNamepWord 是您在上方為存放區設定的使用者名稱和密碼,而 remoteRepo 是存放區節點的 IP 位址或 DNS 名稱。

      3. 在遠端節點上,安裝 Edge apigee-service 公用程式和依附元件:
        sudo bash /tmp/bootstrap_4.19.01.sh apigeerepohost=remoteRepo:3939
          apigeeuser=uName apigeepassword=pWord apigeeprotocol=http://

        其中 uNamepWord 是存放區的使用者名稱和密碼。

  10. 使用 apigee-service 更新 apigee-setup 公用程式:
    /opt/apigee/apigee-service/bin/apigee-service apigee-setup update
  11. 在 Postgres 節點上執行更新公用程式:
    /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile

    其中 configFile 是您用來安裝 Postgres 資料庫的設定檔。設定檔的唯一規定是,設定檔必須可供「apigee」使用者存取或讀取。

  12. 在節點上執行更新公用程式,更新入口網站:
    /opt/apigee/apigee-setup/bin/update.sh -c dp -f configFile

    其中 configFile 是用於安裝入口網站的設定檔。設定檔的唯一規定是,設定檔必須可供「apigee」使用者存取或讀取。

  13. 在瀏覽器視窗中開啟下列網址,執行 Drupal 的 update.php 指令碼:
    http://portal_IP_DNS:8079/update.php
  14. 停用維護模式:
    1. 選取「Drupal」選單中的「Configuration」
    2. 在「設定」頁面的「開發」下方,選取「維護模式」
    3. 取消選取「將網站進入維護模式」方塊。
    4. 選取「儲存設定」

請注意,更新後的根目錄如下:

/opt/apigee/apigee-drupal/wwwroot

升級完成。如果 Apigee 更新公用程式降級了您的 Drupal 版本,您可能需要重新執行 Drupal 升級公用程式。詳情請參閱「重新執行 Drupal 升級作業」一文。

重新執行 Drupal 升級作業

如果執行 Apigee 更新公用程式來升級 Edge for Private Cloud,實際上會導致 Drupal 的降級,請重新安裝 Drupal 升級作業。如果在 Private Cloud 更新之間只升級 Drupal,就可能發生這種情況。

例如:

  1. 您搭載的是 Drupal 7.59 內建的 Edge 4.18.05 版。
  2. 由於必須進行安全性更新,你已將 Drupal 升級至 7.64。
  3. 您正在將 Private Cloud 升級至 4.19.01 版,其中包含 Drupal 7.61。

如本案例所示,Apigee 更新公用程式使用的 Drupal 版本可能不會參照最新的 Drupal 升級版本。因此,您現在必須重新執行 Drupal 升級作業,將安裝的 Drupal 還原至後續版本。