Developer Services ポータルのアップグレード

デベロッパー サービス ポータル v. 4.17.05

この手順では、オンプレミス インストールの既存の Apigee Developer Channel 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-service apigee-service apigee-service apigee-devportal
    apigee-service apigee-db status
    apigee-service apigee-LB status

  • apachectl -S
    Apache/MySQL または Apache/MariaDB を使用している場合、次の形式でポータルのウェブルート ディレクトリが返されます。

    *:80 192.168.56.102 (/etc/httpd/conf/vhosts/devportal.conf:1)

デフォルトのインストール ディレクトリ

アップグレード プロセスでは、デベロッパー ポータルが次の場所にインストールされていることを前提としています。

  • /opt/apigee/apigee-drupal(Nginx)
  • /var/www/html(Apache)

ポータルをデフォルト ディレクトリにインストールしていない場合は、インストール ディレクトリを使用するように以下の手順のパスを変更します。

インストール ディレクトリがわからない場合は、よく使われる Drush コマンドの説明に従って確認できます。

新しい 4.17.01 インストールからの Nginx/Postgres の更新後の新しいデフォルトのインストール ディレクトリ

Nginx/Postgres を使用する 4.17.01 の新規インストールを更新すると、ルート ディレクトリが

/opt/apigee/apigee-drupal

なります。

/opt/apigee/apigee-drupal/wwwroot

サポートされているアップグレード バージョン

このアップグレード手順は、次のバージョンのポータルでサポートされています。

  • pantheon-14.02.x
  • pantheon-14.03.x
  • pantheon-14.04.x
  • pantheon-14.07.x
  • pantheon-15-01.x
  • OPDK-15-04.x
  • OPDK-15-07.x
  • OPDK-16-01.x
  • OPDK-16-05.x
  • OPDK-16-09.x
  • OPDK-17-01.x

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

http://yourportal.com/buildInfo

アップデート前の準備

既存のインストールでは、Drupal コアまたはカスタム以外のモジュールでコードを変更した場合、変更は上書きされます。これには、.htaccess に加えた変更も含まれます。 /sites ディレクトリの外部はすべて Drupal によって所有されていることを前提としています。robots.txt はこのルールの例外です。このファイルがウェブルートに存在する場合は、保持されます。

インストールに進む前に、Drupal のウェブルート ディレクトリ全体のバックアップを作成します。以下で説明するインストール手順を行った後、バックアップからカスタマイズを復元できます。

.tar ファイルを使用したポータルのアップグレード

  1. Drupal MySQL/MariaDB インスタンスをバックアップします。
    詳しくは、http://www.thegeekstuff.com/2008/09/backup-and-restore-mysql-database-using-mysqldump/ をご覧ください。
    1. オプション 1: Drush を使用する

      Drush コマンド sql-dump を使用して、データベースのコピーを作成します。Drupal ディレクトリ(デフォルトでは /var/www/html)から、次のコマンドを実行します。
      > drush sql-dump > /path/to/backup_dir/database-backup.sql

      詳細については、drush help sql-dump をご覧ください。
    2. オプション 2: MySQLdump を使用する
      mysqldump コマンドを使用してデータベースのコピーを作成します。
      mysqldump -u ユーザー名 -p'PASSWORD' DATABASENAME > /path/to/backup_dir/database-backup.sql

      -p オプションとパスワードの間にはスペースを入れないでください。パスワードに特殊文字が含まれる場合は、パスワードを一重引用符で囲む必要があります。

      ユーザー名データベース名は、ポータルのインストール時に設定します。デフォルトでは、どちらも devportal です。
  2. Drupal のウェブルート ディレクトリ全体のバックアップを作成します。デフォルトのインストール場所は /var/www/html ですが、インストール時に変更される場合があります。
  3. デベロッパー チャネル サービスの DeveloperServices_x.y.z.tar ファイルを ftp.apigee.com からダウンロードします。ここで、x.y.z はポータルのバージョン番号に対応します。プロンプトが表示されたら、Apigee から受け取った認証情報を入力します。

    ブラウザで Apigee から送信されたリンクからファイルをダウンロードできます。ファイルをコピーして次の cURL コマンドに追加することもできます。
    > curl -kOL <ここにリンクを貼り付けます>

    : ポータルが外部インターネット接続のないサーバー上にある場合は、アクセス可能なサーバーでこの手順を実行します。

    Apigee Edge サポートに移動し、[サポート ポータルにログイン] を選択して、デベロッパー チャネル サービスのアップグレード .tar ファイルをリクエストします。サポート ポータルのアカウントがない場合は、[Login to your Support Portal] を選択してから、ログインページで [In a hurry?こちらからサポート チケットを送信してください
  4. インターネットに接続しているサーバーでアップグレードする場合:
    1. ポータルのアップグレード ファイルを解凍します。
      > tar -xvf <tar ファイル>

      このコマンドを解凍すると、DeveloperServices-4.x.y.z という新しいディレクトリが作成されます。
    2. DeveloperServices-4.x.y.z ディレクトリに移動します。
    3. 次のコマンドを使用して、最新バージョンの Drupal をダウンロードします。
      > drush dl drupal

      このコマンドにより、drupal-x.y という名前のディレクトリが作成されます。ここで、x.y は Drupal の現在のバージョンに対応しています。
    4. networked-update.sh スクリプトを実行します。
      > ./networked-update.sh

      ファイルの権限に応じて、sudo を使用してこのコマンドを実行するか、管理者として実行する必要があります。
    5. Drupal のアップデート通知を受け取るには、Drupal アップデート マネージャー モジュールが有効になっていることを確認します。Drupal のメニューで [Modules] を選択し、[Updatemanager] モジュールまでスクロールします。有効になっていない場合は、有効にします。

      有効にした後は、[レポート] > [利用可能なアップデート] メニュー項目を使用して、利用可能なアップデートを確認できます。

      [レポート] > [利用可能なアップデート] > [設定] メニュー項目を使用して、アップデートが利用可能になったときにメールで通知するようにモジュールを構成し、アップデートを確認する頻度を設定します。
  5. インターネットに接続していないサーバーでアップグレードした場合:
    1. デベロッパー チャネル サービスの DeveloperServices_x.y.z.tar ファイルをダウンロードしたサーバーで、ポータル アップグレード ファイルを解凍します。
      > tar -xvf <tar ファイル>

      このコマンドにより、DeveloperServices-4.x.y.z という新しいディレクトリが作成されます。
    2. DeveloperServices-4.x.y.z ディレクトリに移動します。
    3. non-networked-update.sh スクリプトを実行します。
      > ./non-networked-update.sh

      ファイルの権限に応じて、sudo を使用してこのコマンドを実行するか、管理者として実行する必要があります。

      このコマンドは、必要なすべての更新ファイルをダウンロードして devportal-update.tgz という名前の単一のファイルにパッケージ化し、任意の場所にファイルを書き込みます。
    4. devportal-update.tgz を、ポータルを実行しているターゲット サーバーにコピーします。
      : devportal-update.tgz をターゲット サーバーのウェブルートにコピーしないでください。
    5. devportal-update.tgz ファイルを現在のディレクトリに展開します。
      > tar -xzf /path/to/devportal-update.tgz
    6. developer-update ディレクトリに移動します。
    7. 次のコマンドを実行してアップデートをインストールします。
      > ./install-update.sh
    8. 画面の指示に沿って操作します。

これでアップグレードは完了です。

RPM を使用してポータルをアップグレードする

ノードのポータル RPM を更新する手順は次のとおりです。

  1. デフォルトで Drupal ディレクトリ /opt/apigee/apigee-drupalに移動します。
    > cd /opt/apigee/apigee-drupal
  2. Drupal データベース インスタンスをバックアップします。pg_dump コマンドにより、データベースのコピーが作成されます。

    pg_dump --dbname=devportal --host=192.168.56.101 --username=drupaladmin --password --format=c > /tmp/portal.dmp

    • dbname には、ポータルのインストール構成ファイルの PG_NAME プロパティで指定されているデータベース名を指定します。
    • host にはポータルノードの IP アドレスを指定します。
    • username には、ポータルのインストール構成ファイルの 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. Edge apigee-setup ユーティリティのインストールの説明に従って、SELinux を無効にします。
  6. インターネットに接続しているサーバーでアップグレードする場合:
    1. Edge 4.17.05 の bootstrap_4.17.05.sh ファイルを /tmp/bootstrap_4.17.05.sh にダウンロードします。
      > curl https://software.apigee.com/bootstrap_4.17.05.sh -o /tmp/bootstrap_4.17.05.sh
    2. Edge 4.17.05 の apigee-service ユーティリティと依存関係をインストールします。
      > sudo bash /tmp/bootstrap_4.17.05.sh apigeeuser=uName apigeepassword=pWord



      uName:pWord は Apigee から取得したユーザー名とパスワードです。pWord を省略した場合は、入力するように求められます。

      デフォルトでは、インストーラによって Java 1.8 がインストールされているかどうかが確認されます。「C」オプションを使用すると、Java をインストールせずに続行できます。
  7. インターネットに接続していないサーバーでアップグレードした場合:
    1. Edge apigee-setup ユーティリティのインストールの「ローカルに Apigee リポジトリを作成する」の手順で 4.17.05 リポジトリをローカルに作成します。
      : 4.17.01 リポジトリがすでにある場合は、Edge apigee-setup ユーティリティのインストールの「ローカルの Apigee リポジトリを更新する」の手順で 4.17.05 リポジトリを追加できます。
    2. .tar ファイルから apigee-service をインストールするには:
      1. ローカル リポジトリが存在するノードで、次のコマンドを使用して、ローカル リポジトリを /opt/apigee/data/apigee-mirror/apigee-4.17.05.tar.gz という名前の単一の.tar ファイルにパッケージ化します。
        > /opt/apigee/apigee-service/bin/apigee-service apigee-mirror package
      2. Edge を更新する対象のノードに .tar ファイルをコピーします。たとえば、新しいノードの /tmp ディレクトリにコピーします。
      3. 新しいノードで、/tmp ディレクトリに tar ファイルを解凍します。
        > tar -xzf apigee-4.17.05.tar.gz

        このコマンドにより、.tar ファイルを含むディレクトリに repos という新しいディレクトリが作成されます。(例: /tmp/repos)。
      4. Edge apigee-service ユーティリティと依存関係を /tmp/repos からインストールします。
        > sudo bash /tmp/repos/bootstrap_4.17.05.sh apigeeprotocol="file://" apigeerepobasepath=/tmp/repos

        コマンドに repos ディレクトリへのパスが含まれている点に注意してください。
    3. Nginx ウェブサーバーを使用して apigee-service をインストールするには:
      1. Edge apigee-setup ユーティリティのインストールの「Nginx ウェブサーバーを使用してリポジトリからインストールする」の手順に沿って、Nginx ウェブサーバーを構成します。
      2. リモートノードで、Edge の bootstrap_4.17.05.sh ファイルを /tmp/bootstrap_4.17.05.sh にダウンロードします。
        > /usr/bin/curl または http://uName:pWord@remoteRepo の URL とリポジトリ / リモート 5 です。

      3. リモートノードに、Edge の apigee-service ユーティリティと依存関係をインストールします。
        > sudo bash /tmp/bootstrap_4.17.05.sh apigeerepohost=remoteRepo:3939 apigeeuser=uName apigeepassword=pWord apigeeprotocol=http://

        は、WordName です。
  8. apigee-service を使用して、apigee-setup ユーティリティを更新します。
    > /opt/apigee/apigee-service/bin/apigee-service apigee-setup update
  9. ノード上で更新ユーティリティを実行して Postgres データベースを更新します。
    > /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile

    ここで、configFile は Postgres データベースのインストールに使用した構成ファイルです。構成ファイルに関する唯一の要件は、構成ファイルが「apigee」ユーザーからアクセス可能で、読み取り可能であることです。
  10. Postgres を起動します。
    > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql start
  11. ノードで更新ユーティリティを実行してポータルを更新します。
    > /opt/apigee/apigee-setup/bin/update.sh -c dp -f configFile

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

更新後のルート ディレクトリは次のようになります。

/opt/apigee/apigee-drupal/wwwroot

これでアップグレードは完了です。