ここでは、オンプレミスの Apigee Developer Services ポータル(略して「ポータル」)をアップグレードする方法を説明します。
正しいアップデート手順を決定する
ポータルのアップデート手順は現在のインストール環境によって異なります。
- 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 以降でサポートされています。
ポータルのバージョンを確認するには、ブラウザで次の URL を開きます。
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 は、ポータルのインストール構成ファイルの
DRUPAL_PG_USER
プロパティで指定されている Postgres ユーザー名です。ポータルはデータベースにアクセスする際にこのユーザー名を使用します。
ポータルのインストール構成ファイルの
DRUPAL_PG_PASS
プロパティで定義されている Postgres ユーザーのパスワードを入力するように指示されます。後でバックアップから復元する場合は、次のコマンドを使用します。
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] を選択します。
- [Configuration] ページの [Development] で [Maintenance mode] を選択します。
- [Put site into maintenance mode] ボックスを選択します。
- メンテナンス中にユーザーに表示するメッセージを入力します。
- [Save configuration] を選択します。
- Edge apigee-setup ユーティリティのインストールの説明に従って、SELinux を無効にします。
/opt
ディレクトリに移動します。cd /opt
- インターネットに接続しているサーバーでアップグレードを行う場合:
- Edge 4.51.00 の
bootstrap_4.51.00.sh
ファイルを/tmp/bootstrap_4.51.00.sh
にダウンロードします。curl https://software.apigee.com/bootstrap_4.51.00.sh -o /tmp/bootstrap_4.51.00.sh
- Edge 4.51.00 の
apigee-service
ユーティリティと依存関係をインストールします。sudo bash /tmp/bootstrap_4.51.00.sh apigeeuser=uName apigeepassword=pWord
ここで、uName と pWord は Apigee から受け取ったユーザー名とパスワードです。pWord を省略すると、パスワードの入力を求められます。
デフォルトでは、インストーラが Java 1.8 の有無を確認します。"C" オプションを使用すると、Java をインストールせずに続行できます。
- Edge 4.51.00 の
- インターネットに接続していないサーバーでアップグレードを行う場合:
- ローカルに Apigee リポジトリを作成するの手順に沿って、4.51.00 リポジトリを作成します。
- .tar ファイルから apigee-service をインストールするには:
- ローカル リポジトリが存在するノードで次のコマンドを使用し、ローカル リポジトリを
/opt/apigee/data/apigee-mirror/apigee-4.51.00.tar.gz
という名前の単一の .tar ファイルにパッケージ化します。/opt/apigee/apigee-service/bin/apigee-service apigee-mirror package
- Edge を更新する対象のノードに .tar ファイルをコピーします。たとえば、新しいノードの
/tmp
ディレクトリにコピーします。 - 新しいノードで、tar ファイルを解凍し、/tmp ディレクトリに展開します。
tar -xzf apigee-4.51.00.tar.gz
このコマンドにより、repos という名前の新しいディレクトリが作成されます。ディレクトリには .tar ファイルが含まれます。たとえば、/tmp/repos のようになります。
/tmp/repos
から Edgeapigee-service
ユーティリティと依存関係をインストールします。sudo bash /tmp/repos/bootstrap_4.51.00.sh apigeeprotocol="file://" apigeerepobasepath=/tmp/repos
コマンドに repos ディレクトリへのパスが含まれている点に注意してください。
- ローカル リポジトリが存在するノードで次のコマンドを使用し、ローカル リポジトリを
- NGINX ウェブサーバーを使用して apigee-service をインストールするには:
- Edge apigee-setup ユーティリティのインストールの「NGINX ウェブサーバーを使用してリポジトリからインストールする」の手順に沿って、NGINX ウェブサーバーを構成します。
- リモートノードで、Edge
bootstrap_4.51.00.sh
ファイルを/tmp/bootstrap_4.51.00.sh
にダウンロードします。/usr/bin/curl http://uName:pWord@remoteRepo:3939/bootstrap_4.51.00.sh -o /tmp/bootstrap_4.51.00.sh
ここで、uName と pWord は、上記でリポジトリに設定したユーザー名とパスワードです。remoteRepo は、リポジトリ ノードの IP アドレスまたは DNS 名です。
- リモートノードで、Edge
apigee-service
ユーティリティと依存関係をインストールします。sudo bash /tmp/bootstrap_4.51.00.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 ユーザーからアクセス可能または読み取り可能である必要があります。
- ブラウザ ウィンドウで次の URL を開き、Drupal の
update.php
スクリプトを実行します。http://portal_IP_DNS:8079/update.php
- メンテナンス モードを無効にします。
- Drupal メニューで [Configuration] を選択します。
- [Configuration] ページの [Development] で [Maintenance mode] を選択します。
- [Put site into maintenance mode] ボックスの選択を解除します。
- [Save configuration] を選択します。
アップデート後のルート ディレクトリは次のとおりです。
/opt/apigee/apigee-drupal/wwwroot
これでアップグレードは完了しました。Apigee update
ユーティリティによって Drupal のバージョンがダウングレードされた場合は、Drupal アップグレード ユーティリティを再度実行する必要があります。詳細については、Drupal のアップグレードを再度実行するをご覧ください。
Drupal のアップグレードを再度実行する
Apigee update
ユーティリティを実行して Edge for Private Cloud をアップグレードした結果、実際には Drupal のバージョンがダウングレードされた場合は、Drupal のアップグレードを再インストールします。これは、Private Cloud の前回のアップデートから今回のアップデートまでの間に Drupal のみをアップグレードした場合に起こる可能性があります。
次に例を示します。
- Edge for Private Cloud のバージョン 4.18.05(含まれる Drupal のバージョンは 7.59)を実行していた。
- セキュリティ アップデートが必要となったため、Drupal を 7.64 にアップグレードした。
- 今回 Private Cloud を 4.19.01(含まれる Drupal のバージョンは 7.61)にアップグレードした。
この例が示すように、Apigee update
ユーティリティで使用される Drupal のバージョンには、Drupal の最新のアップグレード状況が反映されていない場合があります。そのため、Drupal のアップグレードを再度実行して Drupal を最新バージョンに戻す必要があります。