這個流程說明如何升級現有的 Apigee 開發人員服務入口網站 (或簡稱為入口網站) 地端部署安裝。
決定正確的更新程序
您用來更新入口網站的程序會根據您目前的安裝版本而有所不同:
- 如果安裝使用 Nginx/Postgres,請按照下方的使用 RPM 升級入口網站。
- 如果安裝使用 Apache/MySQL 或 Apache/MariaDB,請參閱將 tar 型入口網站轉換為 RPM 型入口網站。
決定目前的安裝類型
如果您不確定目前的安裝類型,請使用下列指令進行判斷:
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 及以上版本。
如要確認您的入口網站版本,請在瀏覽器中開啟下列網址:
http://yourportal.com/buildInfo
更新前的注意事項
至於現有安裝項目,如果您修改了 Drupal 核心或任何非自訂模組中的任何程式碼,則修改內容會遭到覆寫。這包括您對 .htaccess
所做的任何變更。您應假設 /sites
目錄之外的所有內容皆屬於 Drupal。這項規則是 robots.txt
的例外狀況,如果這個檔案存在於網路根目錄中,系統會為您保留其檔案。
繼續安裝之前,請先備份整個 Drupal 網路根目錄。執行以下安裝步驟後,您就可以從備份還原自訂內容。
使用 RPM 升級入口網站
如何更新節點上的入口網站 RPM:
- 預設為 Drupal 目錄 (
/opt/apigee/apigee-drupal
):cd /opt/apigee/apigee-drupal
- 備份 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
- devportal 是入口網站安裝設定檔中
- 備份整個 Drupal 網路根目錄。預設的安裝位置為
/opt/apigee/apigee-drupal
,但您可能已變更。如果不確定此目錄的位置,請使用
drush status
指令,或在 Drupal 選單中依序點選「Configuration」>「Media」>「File」項目,確定公開檔案系統的位置和私人檔案系統路徑 (在下一個步驟中)。 - 備份
/opt/apigee/data/apigee-drupal-devportal/private
中的檔案。 - 將 Drupal 設為維護模式:
- 選取「Drupal」選單中的「Configuration」。
- 在「設定」頁面的「開發」下方,選取「維護模式」。
- 勾選「讓網站進入維護模式」方塊。
- 輸入使用者在維護期間看到的訊息。
- 選取「儲存設定」。
- 按照安裝 Edge apigee-setup 公用程式的說明,停用 SELinux。
- 變更為
/opt
目錄:cd /opt
- 在需要網際網路連線的伺服器中升級:
- 將 Edge 4.19.06
bootstrap_4.19.06.sh
檔案下載至/tmp/bootstrap_4.19.06.sh
:curl https://software.apigee.com/bootstrap_4.19.06.sh -o /tmp/bootstrap_4.19.06.sh
- 安裝 Edge 4.19.06
apigee-service
公用程式和依附元件:sudo bash /tmp/bootstrap_4.19.06.sh apigeeuser=uName apigeepassword=pWord
其中 uName 和 pWord 是您從 Apigee 收到的使用者名稱和密碼。如果省略 pWord,系統會提示您輸入。
根據預設,安裝程式會檢查您是否已安裝 Java 1.8。您可以使用「C」選項繼續操作,不必安裝 Java。
- 將 Edge 4.19.06
- 在沒有網際網路連線的伺服器中升級:
- 按照建立本機 Apigee 存放區中的說明建立本機 4.19.06 存放區。
- 如要從 .tar 檔案安裝 apigee-service:
- 在具有本機存放區的節點上,使用下列指令將本機存放區封裝到名為
/opt/apigee/data/apigee-mirror/apigee-4.19.06.tar.gz
的單一 .tar 檔案:/opt/apigee/apigee-service/bin/apigee-service apigee-mirror package
- 將 .tar 檔案複製到您要更新 Edge 的節點。例如,請將其複製到新節點的
/tmp
目錄。 - 在新節點上,將檔案解壓縮至 /tmp 目錄:
tar -xzf apigee-4.19.06.tar.gz
這個指令會在包含 .tar 檔案的目錄中建立名為「存放區」的新目錄。例如 /tmp/repos。
- 從
/tmp/repos
安裝 Edgeapigee-service
公用程式和依附元件:sudo bash /tmp/repos/bootstrap_4.19.06.sh apigeeprotocol="file://" apigeerepobasepath=/tmp/repos
請注意,您會在這個指令中加入存放區目錄的路徑。
- 在具有本機存放區的節點上,使用下列指令將本機存放區封裝到名為
- 如要使用 Nginx 網路伺服器安裝 apigee-service:
- 按照安裝 Edge apigee-setup 公用程式,按照「使用 Nginx 網路伺服器從存放區安裝」的說明設定 Nginx 網路伺服器。
- 在遠端節點上,將 Edge
bootstrap_4.19.06.sh
檔案下載至/tmp/bootstrap_4.19.06.sh
:/usr/bin/curl http://uName:pWord@remoteRepo:3939/bootstrap_4.19.06.sh -o /tmp/bootstrap_4.19.06.sh
其中 uName 和 pWord 是您在上方為存放區設定的使用者名稱和密碼,而 remoteRepo 是存放區節點的 IP 位址或 DNS 名稱。
- 在遠端節點上,安裝 Edge
apigee-service
公用程式和依附元件:sudo bash /tmp/bootstrap_4.19.06.sh apigeerepohost=remoteRepo:3939 apigeeuser=uName apigeepassword=pWord apigeeprotocol=http://
其中 uName 和 pWord 是存放區的使用者名稱和密碼。
- 使用
apigee-service
更新apigee-setup
公用程式:/opt/apigee/apigee-service/bin/apigee-service apigee-setup update
- 在 Postgres 節點上執行
update
公用程式:/opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile
其中 configFile 是您用來安裝 Postgres 資料庫的設定檔。設定檔的唯一規定是,設定檔必須可供「apigee」使用者存取或讀取。
- 執行下列指令,移除 PHP RPM,但不含 Apigee Drupal Devportal RPM 依附元件:
rpm -ev --nodeps $(rpm -qa | grep php | awk '{printf "%s ", $1}')
這個指令會執行以下作業:
rpm -ev --nodeps
會移除 RPM,但不會移除其依附元件。rpm -qa
會建構要移除的 RPM 清單。grep php
會搜尋所有 PHP RPM。awk '{printf "%s ", $1}'
會輸出 RPM 名稱。
- 在節點上執行
update
公用程式,更新入口網站:/opt/apigee/apigee-setup/bin/update.sh -c dp -f configFile
其中 configFile 是用於安裝入口網站的設定檔。設定檔的唯一規定是,設定檔必須可供「apigee」使用者存取或讀取。
- 在瀏覽器視窗中開啟下列網址,執行 Drupal 的
update.php
指令碼:http://portal_IP_DNS:8079/update.php
- 停用維護模式:
- 選取「Drupal」選單中的「Configuration」。
- 在「設定」頁面的「開發」下方,選取「維護模式」。
- 取消選取「將網站進入維護模式」方塊。
- 選取「儲存設定」。
請注意,更新後的根目錄如下:
/opt/apigee/apigee-drupal/wwwroot
升級完成。如果 Apigee update
公用程式降級了您的 Drupal 版本,您可能需要重新執行 Drupal 升級公用程式。詳情請參閱「重新執行 Drupal 升級作業」一文。
重新執行 Drupal 升級作業
如果執行 Apigee update
公用程式來升級 Edge for Private Cloud,實際上會導致 Drupal 的降級,請重新安裝 Drupal 升級作業。如果在 Private Cloud 更新之間只升級 Drupal,就可能發生這種情況。
例如:
- 您搭載的是 Drupal 7.59 內建的 Edge 4.18.05 版。
- 由於必須進行安全性更新,你已將 Drupal 升級至 7.64。
- 您正在將 Private Cloud 升級至 4.19.01 版,其中包含 Drupal 7.61。
如本案例所示,Apigee update
公用程式使用的 Drupal 版本可能不會參照最新的 Drupal 升級版本。因此,您現在必須重新執行 Drupal 升級作業,將安裝的 Drupal 還原至後續版本。