升級入口網站

Edge for Private Cloud 4.19.01

這個程序說明如何升級現有的 Apigee Developer Services 入口網站 (或簡稱入口網站),進行地端部署安裝作業。

決定正確的更新程序

您用來更新入口網站的程序取決於目前的安裝方式:

判斷目前的安裝類型

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

  • 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 屬性所指定。

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

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

    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 檔案的目錄中建立名為 repos 的新目錄。例如 /tmp/repos。

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

        請注意,您必須在這個指令中加入 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. 您執行的是 Edge for Private Cloud 的 4.18.05 版,其中包含 Drupal 7.59。
  2. 由於進行必要的安全性更新,我們已將 Drupal 升級至 7.64。
  3. 您現在要將私有雲升級至 4.19.01,其中包含 Drupal 7.61。

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