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

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

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

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

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

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

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

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

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

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

      3. リモートノードで、Edge apigee-service ユーティリティと依存関係をインストールします。
        sudo bash /tmp/bootstrap_4.19.06.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. Drupal 7.59 を含む Edge for Private Cloud のバージョン 4.18.05 を実行していました。
  2. セキュリティ アップデートが必要となったため、Drupal を 7.64 にアップグレードした。
  3. Private Cloud を 4.19.01(Drupal 7.61 を含む)にアップグレードしています。

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