ポータルをアップグレードする

ここでは、オンプレミスの 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 以降でサポートされています。

ポータルのバージョンを確認するには、ブラウザで次の URL を開きます。

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 は、ポータルのインストール構成ファイルの DRUPAL_PG_USER プロパティで指定されている Postgres ユーザー名です。ポータルはデータベースにアクセスする際にこのユーザー名を使用します。

    ポータルのインストール構成ファイルの 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. [Configuration] ページの [Development] で [Maintenance mode] を選択します。
    3. [Put site into maintenance mode] ボックスを選択します。
    4. メンテナンス中にユーザーに表示するメッセージを入力します。
    5. [Save configuration] を選択します。
  6. Edge apigee-setup ユーティリティのインストールの説明に従って、SELinux を無効にします。
  7. /opt ディレクトリに移動します。
    cd /opt
  8. インターネットに接続しているサーバーでアップグレードを行う場合:
    1. 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
    2. Edge 4.51.00 の apigee-service ユーティリティと依存関係をインストールします。
      sudo bash /tmp/bootstrap_4.51.00.sh apigeeuser=uName apigeepassword=pWord

      ここで、uNamepWord は Apigee から受け取ったユーザー名とパスワードです。pWord を省略すると、パスワードの入力を求められます。

      デフォルトでは、インストーラが Java 1.8 の有無を確認します。"C" オプションを使用すると、Java をインストールせずに続行できます。

  9. インターネットに接続していないサーバーでアップグレードを行う場合:
    1. ローカルに Apigee リポジトリを作成するの手順に沿って、4.51.00 リポジトリを作成します。
    2. .tar ファイルから apigee-service をインストールするには:
      1. ローカル リポジトリが存在するノードで次のコマンドを使用し、ローカル リポジトリを /opt/apigee/data/apigee-mirror/apigee-4.51.00.tar.gz という名前の単一の .tar ファイルにパッケージ化します。
        /opt/apigee/apigee-service/bin/apigee-service apigee-mirror package
      2. Edge を更新する対象のノードに .tar ファイルをコピーします。たとえば、新しいノードの /tmp ディレクトリにコピーします。
      3. 新しいノードで、tar ファイルを解凍し、/tmp ディレクトリに展開します。
        tar -xzf apigee-4.51.00.tar.gz

        このコマンドにより、repos という名前の新しいディレクトリが作成されます。ディレクトリには .tar ファイルが含まれます。たとえば、/tmp/repos のようになります。

      4. /tmp/repos から Edge apigee-service ユーティリティと依存関係をインストールします。
        sudo bash /tmp/repos/bootstrap_4.51.00.sh apigeeprotocol="file://" apigeerepobasepath=/tmp/repos

        コマンドに repos ディレクトリへのパスが含まれている点に注意してください。

    3. NGINX ウェブサーバーを使用して apigee-service をインストールするには:
      1. Edge apigee-setup ユーティリティのインストールの「NGINX ウェブサーバーを使用してリポジトリからインストールする」の手順に沿って、NGINX ウェブサーバーを構成します。
      2. リモートノードで、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

        ここで、uNamepWord は、上記でリポジトリに設定したユーザー名とパスワードです。remoteRepo は、リポジトリ ノードの IP アドレスまたは DNS 名です。

      3. リモートノードで、Edge apigee-service ユーティリティと依存関係をインストールします。
        sudo bash /tmp/bootstrap_4.51.00.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 ノードで update ユーティリティを実行します。
    /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile

    ここで、configFile は Postgres データベースのインストールに使用した構成ファイルです。構成ファイルに関する唯一の要件として、構成ファイルが apigee ユーザーからアクセス可能または読み取り可能である必要があります。

  12. 次のコマンドを実行して、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 名を出力します。
  13. ノードで update ユーティリティを実行してポータルを更新します。
    /opt/apigee/apigee-setup/bin/update.sh -c dp -f configFile

    ここで、configFile はポータルのインストールに使用した構成ファイルです。構成ファイルに関する唯一の要件として、構成ファイルが apigee ユーザーからアクセス可能または読み取り可能である必要があります。

  14. ブラウザ ウィンドウで次の URL を開き、Drupal の update.php スクリプトを実行します。
    http://portal_IP_DNS:8079/update.php
  15. メンテナンス モードを無効にします。
    1. Drupal メニューで [Configuration] を選択します。
    2. [Configuration] ページの [Development] で [Maintenance mode] を選択します。
    3. [Put site into maintenance mode] ボックスの選択を解除します。
    4. [Save configuration] を選択します。

アップデート後のルート ディレクトリは次のとおりです。

/opt/apigee/apigee-drupal/wwwroot

これでアップグレードは完了しました。Apigee update ユーティリティによって Drupal のバージョンがダウングレードされた場合は、Drupal アップグレード ユーティリティを再度実行する必要があります。詳細については、Drupal のアップグレードを再度実行するをご覧ください。

Drupal のアップグレードを再度実行する

Apigee update ユーティリティを実行して 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. 今回 Private Cloud を 4.19.01(含まれる Drupal のバージョンは 7.61)にアップグレードした。

この例が示すように、Apigee update ユーティリティで使用される Drupal のバージョンには、Drupal の最新のアップグレード状況が反映されていない場合があります。そのため、Drupal のアップグレードを再度実行して Drupal を最新バージョンに戻す必要があります。