Apigee Edge 4.16.05.x を最新の 4.16.05 リリースに更新する

Edge for Private Cloud バージョン 4.16.05

このドキュメントでは、Apigee の最新の RPM とサポート ファイルを使用するように既存の 4.16.05 環境を更新する手順について説明します。この手順では、update.sh ユーティリティを使用してアップデートを実行します。

最新の 4.16.05 リリースに更新できる Edge のバージョン

既存の Apigee Edge バージョン 4.16.05.x のインストールは、最新の 4.16.05 リリースにのみ更新できます。

現在 Edge バージョン 4.16.01.0x 以前を実行している場合は、まず 4.16.05 に移行する必要があります。バージョン 4.16.05 に移行する方法については、Apigee Edge 4.16.01 を 4.16.05 に更新するをご覧ください。

更新を行えるユーザー

更新を行うユーザーは、最初に Edge をインストールしたユーザー、または root として実行しているユーザーと同じである必要があります。

Edge RPM をインストールした後は、すべてのユーザーがそれを構成できます。

更新に必要なディスク容量

アップデートを実行する前に、1 GB 以上のディスク空き容量があることを確認してください。

4.16.05.x からのプロパティ設定の自動伝播

/opt/apigee/customer/application.properties ファイルを編集してプロパティを設定した場合、これらの値は更新後も保持されます。

更新の前提条件

Apigee Edge をアップグレードする前に、次の前提条件を満たしていることを確認してください。

  • すべてのノードをバックアップする
    安全上の理由から、更新する前に、すべてのノードを完全にバックアップすることをおすすめします。現在の Edge バージョンのバックアップ手順に沿ってください。

    これにより、新しいバージョンへの更新が正常に機能しなかった場合に備え、バックアップ プランを用意することができます。バックアップの詳細については、バックアップと復元をご覧ください。
  • Edge が実行中であることを確認する
    次のコマンドを使用して、更新プロセス中に Edge が起動および実行されていることを確認します。

    > /<inst_root>/apigee/apigee-service/bin/apigee-all status

失敗したアップデートの処理

更新に失敗した場合は、問題を修正してから update.sh を再度実行できます。更新は複数回実行でき、最後に中断したところから続行されます。

失敗したため更新を前のバージョンにロールバックする必要がある場合は、4.16.05 ロールバック プロセスをご覧ください。

更新情報のロギング

デフォルトでは、update.sh ユーティリティはログ情報を次の場所に書き込みます。

/opt/apigee/var/log/apigee-setup/update.log

update.sh ユーティリティを実行しているユーザーがこのディレクトリにアクセスできない場合は、ログが update_username.log という名前のファイルとして /tmp ディレクトリに書き込まれます。

ユーザーに /tmp へのアクセス権がない場合、update.sh ユーティリティは失敗します。

ゼロダウンタイムでの更新

ゼロ ダウンタイム アップデート(ローリング アップデート)を使用すると、Edge をダウンさせることなく Edge インストール環境を更新できます。

ゼロ ダウンタイムの更新は、5 ノード以上の構成でのみ可能です。

ダウンタイムなしでアップグレードするための鍵は、各 Router をロードバランサから 1 つずつ削除することです。次に、Router と、Router と同じマシン上のすべてのコンポーネントを更新してから、Router をロードバランサに再び追加します。

  1. 後述の「マシンの更新順序」の説明に従って、インストール環境に適した順序でマシンを更新します。
  2. Router を更新するときは、任意の Router を 1 つ選択して、その Router を到達不能にします。詳細については、次のセクション「Router と Message Processor を到達不能にする」をご覧ください。
  3. 選択した Router と、Router と同じマシン上の他のすべての Edge コンポーネントを更新します。どの Edge 構成でも、Router と Message Processor は同じノードに表示されます。
  4. Router が再び到達可能になるようにします。
  5. 残りの Router に手順 2 ~ 4 を繰り返します。
  6. インストールに残っているすべてのマシンの更新を続行します。

Router と Message Processor を到達不能にする

本番環境では、最適なパフォーマンスを実現するために複数の Router と Message Processor を使用します。これらの Router と Message Processor のネットワーク到達性は、更新の前後に有効または無効にする必要があります。

次の API 呼び出しは、ノードを到達可能または到達不能として構成します。

> curl -u adminEmail:pWord -X POST "http://<ms_IP>:8080/v1/servers/UUID" -d "reachable=true|false"

UUID は Message Processor または Router の UUID で、reachable は true または false に設定されます。

Router の UUID を確認する必要がある場合は、次の cURL コマンドを使用します。

> curl http://<routerIP>:8081/v1/servers/self

Message Processor の UUID を確認する必要がある場合は、次の cURL コマンドを使用します。

> curl http://<mpIP>:8082/v1/servers/self

アップデート前とアップデート後の次の点に注意してください。

  • Router と Message Processor の組み合わせノードの場合:
    • 更新前 - 以下を実施します。
      1. 上記の API 呼び出しを使用して、Router に到達不能にします。
      2. Message Processor をアクセス不能にします。
    • 更新後 - 以下の手順を行います。
      1. Message Processor を到達可能にする
      2. Router が到達可能になるようにします。
  • Router の単一のノードの場合:
    • 更新前に、Router を到達可能にするようにしてください。
    • 更新後、Router が到達可能になるようにします。
  • 単一の Message Processor ノードの場合:
    • 更新前に、Message Processor をアクセス不能にします。
    • 更新後、Message Processor を到達可能にする

サイレント構成ファイルの使用

update コマンドにサイレント構成ファイルを渡す必要があります。サイレント構成ファイルは、Edge 4.16.05 のインストールに使用したものと同じである必要があります。

外部インターネット接続があるノードで 4.16.05 を更新する手順

ノード上の Edge コンポーネントを更新する手順は次のとおりです。

  1. CRON ジョブが存在する場合は、更新が完了するまで、Cassandra で修復オペレーションを行うように構成された CRON ジョブを無効にします。
  2. ノードに root としてログインし、Edge RPM をインストールします。
    : RPM のインストールには root 権限が必要ですが、Edge の構成には root 権限は不要です。
  3. Edge apigee-setup ユーティリティのインストールの説明に従って、SELinux を無効にします。
  4. すべての Yum キャッシュをクリーンアップします。
    > sudo yum clean all
  5. 最新の Edge bootstrap_4.16.05.sh ファイルを /tmp/bootstrap_4.16.05.sh にダウンロードします。
    > curl https://software.apigee.com/bootstrap_4.16.05.sh -o /tmp/bootstrap_4.16.05.sh
  6. Edge apigee-service ユーティリティと依存関係を更新します。
    > sudo bash /tmp/bootstrap_4.16.05.sh apigeeuser=uName apigeepassword=pWord

    ここで、uName:pWord は Apigee から受け取ったユーザー名とパスワードです。pWord を省略した場合は、入力するように求められます。
  7. apigee-service を使用して apigee-setup ユーティリティを更新します。
    > /opt/apigee/apigee-service/bin/apigee-service apigee-setup update

    この apigee-service への更新により、update.sh ユーティリティが /<inst_dir>/apigee/apigee-setup/bin にインストールされます。
  8. 以下の「マシンの更新順序」に記載されている順序で、ノードで更新ユーティリティを実行します。
    > /opt/apigee/apigee-setup/bin/update.sh -c component -f configFile

    構成ファイルに関する唯一の要件は、構成ファイルが「apigee」ユーザーからアクセス可能または読み取り可能であることです。たとえば、このファイルはノード上の /tmp ディレクトリに格納します。

    「-c」オプションを使用して、更新するコンポーネントを指定します。該当するコンポーネントは次のとおりです。
    • ldap = OpenLDAP
    • cs = カサンド
    • zk = Zookeeper
    • qpid = qpidd
    • ps = postgresql
    • Edge =Edge UI を除くすべての Edge コンポーネント: Management Server、Message Processor、Router、QPID Server、Postgres Server
    • ui = Edge UI
    • all = マシン上のすべてのコンポーネントを更新(Edge aio インストール プロファイルまたは API BaaS インストール プロファイルの場合にのみ使用)
    • e = ElasticSearch
    • b = API BaaS スタック
    • p = API BaaS ポータル
    • ebp = 同じノードにある ElasticSearch、API BaaS Stack、API BaaS ポータル
  9. apigee-validate ユーティリティ(インストールをテスト)を実行して更新をテストします。

ローカル リポジトリから 4.16.05 を更新する手順

Edge ノードがファイアウォールの内側にあるか、インターネット経由での Apigee リポジトリ アクセスが禁止されている場合は、Apigee リポジトリのローカル リポジトリ(つまりミラー)から更新を実行できます。

ローカル Edge リポジトリを作成した後、ローカル リポジトリから Edge を更新する方法は 2 つあります。

  • リポジトリの .tar ファイルを作成し、その .tar ファイルをノードにコピーして、.tar ファイルから Edge を更新します。
  • ローカル リポジトリを持つノードにウェブサーバーをインストールし、他のノードからアクセスできるようにします。Apigee から提供されているウェブサーバーは Nginx ですが、他のウェブサーバーを使用してもかまいません。

ローカルの 4.16.05 リポジトリから更新するには:

  1. ノードに Edge コンポーネントをインストールするの説明に沿って、4.16.05 リポジトリがローカルにあることを確認します。
  2. ローカル リポジトリを更新します。
    1. Edge の最新の bootstrap_4.16.05.sh ファイルを /tmp/bootstrap_4.16.05.sh にダウンロードします。
      > curl https://software.apigee.com/bootstrap_4.16.05.sh -o /tmp/bootstrap_4.16.05.sh
    2. 同期を実行します。
      > /opt/apigee/apigee-service/bin/apigee-service apigee-mirror sync --only-new-rpms
  3. .tar ファイルから apigee-service をインストールするには:
    1. ローカル リポジトリがあるノードで、次のコマンドを使用して、ローカル リポジトリを /opt/apigee/data/apigee-mirror/apigee-4.16.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.16.05.tar.gz

      このコマンドは、.tar ファイルを含むディレクトリに repos という新しいディレクトリを作成します。(例: /tmp/repos)。
    4. ノードに root としてログインし、Edge RPM をインストールします。
      : RPM のインストールには root 権限が必要ですが、Edge の構成には root 権限は不要です。
    5. Edge apigee-setup ユーティリティのインストールの説明に従って、SELinux を無効にします。
    6. Edge apigee-service ユーティリティと依存関係を /tmp/repos からインストールします。
      > sudo bash /tmp/repos/bootstrap_4.16.05.sh apigeeprotocol="file://" apigeerepobasepath=/tmp/repos

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

    3. ノードに root としてログインし、Edge RPM をインストールします。
      : RPM のインストールには root 権限が必要ですが、Edge の構成には root 権限は不要です。
    4. Edge apigee-setup ユーティリティのインストールの説明に従って、SELinux を無効にします。
    5. リモートノードに、Edge apigee-service ユーティリティと依存関係をインストールします。
      > sudo bash /tmp/bootstrap_4.16.05.sh apigeerepohost=remoteRepo:3939 apigeeuser=uNamea pigeepassword=pWord apigeeprotocol=http://

      ここで、uNameName は、パスワードです。uName
  5. CRON ジョブが存在する場合は、更新が完了するまで、Cassandra で修復オペレーションを行うように構成された CRON ジョブを無効にします。
  6. apigee-service を使用して apigee-setup ユーティリティを更新します。
    > /opt/apigee/apigee-service/bin/apigee-service apigee-setup update

    この apigee-service の更新により、update.sh ユーティリティが <inst_dir>/apigee/apigee-setup/bin にインストールされます。
  7. 以下の「マシンの更新順序」に記載されている順序で、ノードで更新ユーティリティを実行します。
    > /opt/apigee/apigee-setup/bin/update.sh -c component -f configFile

    構成ファイルに関する唯一の要件は、構成ファイルが「apigee」ユーザーからアクセス可能または読み取り可能であることです。たとえば、このファイルはノード上の /tmp ディレクトリに格納します。

    「-c」オプションを使用して、更新するコンポーネントを指定します。該当するコンポーネントは次のとおりです。
    • ldap = OpenLDAP
    • cs = カサンド
    • zk = Zookeeper
    • qpid = qpidd
    • ps = postgresql
    • Edge =Edge UI を除くすべての Edge コンポーネント: Management Server、Message Processor、Router、QPID Server、Postgres Server
    • ui = Edge UI
    • all = マシン上のすべてのコンポーネントを更新(Edge aio インストール プロファイルまたは API BaaS インストール プロファイルの場合にのみ使用)
    • e = ElasticSearch
    • b = API BaaS スタック
    • p = API BaaS ポータル
    • ebp = 同じノードにある ElasticSearch、API BaaS Stack、API BaaS ポータル
  8. apigee-validate ユーティリティ(インストールをテスト)を実行して更新をテストします。

マシンの更新順序

Edge インストール環境でマシンを更新する順序は重要です。アップデートでは以下の点を考慮してください。

  • 他のノードを更新する前に、すべての Cassandra ノードと ZooKeeper ノードを更新する必要があります。
  • Router ノードと Message Processor ノードを更新する前に、すべての qpidd ノードと postgresql ノードを更新する必要があります。
  • 複数の Edge コンポーネント(Management Server、Message Processor、Router、QPID Server、Postgres Server)を備えたマシンの場合は、"-c edge" オプションを使用することですべてを同時に更新します。
  • 複数のマシンで行うよう指定されたステップは、指定されたマシン順に実行します。
  • 収益化の更新に特別な手順はありません。「-c edge」オプションを指定すると更新されます。
  • Router ノードを更新したら、/opt/nginx/conf.d ディレクトリからすべてのファイルを削除してから、Router を再起動する必要があります。

1 ホストのスタンドアロン インストールの場合

  1. マシン 1 を更新します。
    > /opt/apigee/apigee-setup/bin/update.sh -c all -f configFile
  2. /opt/nginx/conf.d 内のファイルをすべて削除します。
    > rm -f /opt/nginx/conf.d/*
  3. Edge Router を再起動します。
    > /<inst_root>/apigee/apigee-service/bin/apigee-service edge-router restart

2 ホストのスタンドアロン インストールの場合

Edge トポロジとノード番号のリストについては、インストール トポロジをご覧ください。

  1. マシン 1 の Cassandra と ZooKeeper を更新します。
    > /opt/apigee/apigee-setup/bin/update.sh -c cs,zk -f configFile
  2. マシン 2 の qpidd と postgresql を更新します。
    > /opt/apigee/apigee-setup/bin/update.sh -c qpid,ps -f configFile
  3. マシン 1 の LDAP を更新します。
    > /opt/apigee/apigee-setup/bin/update.sh -c ldap -f configFile
  4. マシン 2 とマシン 1 の Edge コンポーネントを更新します。
    > /opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile
  5. ノード 1 で次の操作を行います。
    1. /opt/nginx/conf.d 内のファイルをすべて削除します。
      > rm -f /opt/nginx/conf.d/*
    2. Edge Router を再起動します。
      > /<inst_root>/apigee/apigee-service/bin/apigee-service edge-router restart
  6. マシン 1 の UI を更新します。
    > /opt/apigee/apigee-setup/bin/update.sh -c ui -f configFile

5 つのホストからなるクラスタ構成の場合

Edge トポロジとノード番号のリストについては、インストール トポロジをご覧ください。

  1. マシン 1、2、3 の Cassandra と ZooKeeper を更新します。
    > /opt/apigee/apigee-setup/bin/update.sh -c cs,zk -f configFile
  2. マシン 4 と 5 の qpidd と postgresql を更新します。
    > /opt/apigee/apigee-setup/bin/update.sh -c qpid,ps -f configFile
  3. マシン 1 の LDAP を更新します。
    > /opt/apigee/apigee-setup/bin/update.sh -c ldap -f configFile
  4. マシン 4、5、1、2、3 の Edge コンポーネントを更新します。
    > /opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile
  5. ノード 2 とノード 3 で、次のコマンドを実行します。
    1. /opt/nginx/conf.d 内のファイルをすべて削除します。
      > rm -f /opt/nginx/conf.d/*
    2. Edge Router を再起動します。
      > /<inst_root>/apigee/apigee-service/bin/apigee-service edge-router restart
  6. マシン 1 の UI を更新します。
    > /opt/apigee/apigee-setup/bin/update.sh -c ui -f configFile

9 つのホストからなるクラスタ構成の場合

Edge トポロジとノード番号のリストについては、インストール トポロジをご覧ください。

  1. マシン 1、2、3 の Cassandra と ZooKeeper を更新します。
    > /opt/apigee/apigee-setup/bin/update.sh -c cs,zk -f configFile
  2. マシン 6、7 の qpidd を更新します。
    > /opt/apigee/apigee-setup/bin/update.sh -c qpid -f configFile
  3. マシン 8、9 の postgresql を更新します。
    > /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile
  4. マシン 1 の LDAP を更新します。
    > /opt/apigee/apigee-setup/bin/update.sh -c ldap -f configFile
  5. マシン 6、7、8、9、1、4、5 の Edge コンポーネントをこの順序で更新します。
    > /opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile
  6. ノード 4 とノード 5 で次の操作を行います。
    1. /opt/nginx/conf.d 内のファイルをすべて削除します。
      > rm -f /opt/nginx/conf.d/*
    2. Edge Router を再起動します。
      > /<inst_root>/apigee/apigee-service/bin/apigee-service edge-router restart
  7. マシン 1 の UI を更新します。
    > /opt/apigee/apigee-setup/bin/update.sh -c ui -f configFile

13 ホストのクラスタ インストールの場合

Edge トポロジとノード番号のリストについては、インストール トポロジをご覧ください。

  1. マシン 1、2、3 の Cassandra と ZooKeeper を更新します。
    > /opt/apigee/apigee-setup/bin/update.sh -c cs,zk -f configFile
  2. マシン 12、13 の qpidd を更新します。
    > /opt/apigee/apigee-setup/bin/update.sh -c qpid -f configFile
  3. マシン 8、9 の postgresql を更新します。
    > /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile
  4. マシン 4 と 5 の LDAP を更新します。
    > /opt/apigee/apigee-setup/bin/update.sh -c ldap -f configFile
  5. マシン 12、13、8、9、6、7、10、11 の Edge コンポーネントをこの順序で更新します。
    > /opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile
  6. ノード 10 と 11 で次の操作を行います。
    1. /opt/nginx/conf.d 内のファイルをすべて削除します。
      > rm -f /opt/nginx/conf.d/*
    2. Edge Router を再起動します。
      > /<inst_root>/apigee/apigee-service/bin/apigee-service edge-router restart
  7. マシン 6、7 の UI を更新します。
    > /opt/apigee/apigee-setup/bin/update.sh -c ui -f configFile

12 ホストのクラスタ インストールの場合

Edge トポロジとノード番号のリストについては、インストール トポロジをご覧ください。

  1. Cassandra と ZooKeeper を更新します。
    1. データセンター 1 のマシン 1、2、3 で、次のコマンドを実行します。
      > /opt/apigee/apigee-setup/bin/update.sh -c cs,zk -f configFile
    2. データセンター 2 のマシン 7、8、9 の場合
      > /opt/apigee/apigee-setup/bin/update.sh -c cs,zk -f configFile
  2. qpidd を更新します。
    1. データセンター 1 のマシン 4、5
      > /opt/apigee/apigee-setup/bin/update.sh -c qpid -f configFile
    2. データセンター 2 のマシン 10、11
      > /opt/apigee/apigee-setup/bin/update.sh -c qpid -f configFile
  3. postgresql を更新します。
    1. データセンター 1 のマシン 6
      > /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile
    2. データセンター 2 のマシン 12
      > /opt/apigee/apigee-setup/bin/update.sh -c ps -f configFile
  4. LDAP を更新します。
    1. データセンター 1 のマシン 1
      > /opt/apigee/apigee-setup/bin/update.sh -c ldap -f configFile
    2. データセンター 2 のマシン 7
      > /opt/apigee/apigee-setup/bin/update.sh -c ldap -f configFile
  5. Edge コンポーネントを更新します。
    1. データセンター 1 のマシン 4、5、6、1、2、3
      > /opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile
    2. データセンター 2 のマシン 10、11、12、7、8、9
      > /opt/apigee/apigee-setup/bin/update.sh -c edge -f configFile
    3. ノード 2、3、8、9 で次の操作を行います。
      1. /opt/nginx/conf.d 内のファイルをすべて削除します。
        > rm -f /opt/nginx/conf.d/*
      2. Edge Router を再起動します。
        > /<inst_root>/apigee/apigee-service/bin/apigee-service edge-router restart
  6. UI を更新します。
    1. データセンター 1 のマシン 1
      > /opt/apigee/apigee-setup/bin/update.sh -c ui -f configFile
    2. データセンター 2 のマシン 7
      > /opt/apigee/apigee-setup/bin/update.sh -c ui -f configFile

7 ホストの API BaaS をインストールする場合

Edge トポロジとノード番号のリストについては、インストール トポロジをご覧ください。

  1. マシン 5、6、7 の Cassandra を更新します。
    > /opt/apigee/apigee-setup/bin/update.sh -c cs -f configFile
  2. マシン 1、2、3 の ElasticSearch と API BaaS Stack を更新します。
    > /opt/apigee/apigee-setup/bin/update.sh -c e,b -f configFile
  3. マシン 4 の API BaaS ポータルを更新します。
    > /opt/apigee/apigee-setup/bin/update.sh -c p -f configFile

10 ホストの API BaaS インストールの場合

Edge トポロジとノード番号のリストについては、インストール トポロジをご覧ください。

  1. マシン 8、9、10 の Cassandra を更新します。
    > /opt/apigee/apigee-setup/bin/update.sh -c cs -f configFile
  2. マシン 1、2、3 の ElasticSearch を更新します。
    > /opt/apigee/apigee-setup/bin/update.sh -c e -f configFile
  3. マシン 4、5、6 の API BaaS スタックを更新します。
    > /opt/apigee/apigee-setup/bin/update.sh -c b -f configFile
  4. マシン 7 の API BaaS ポータルを更新します。
    > /opt/apigee/apigee-setup/bin/update.sh -c p -f configFile

標準以外のインストールの場合

標準以外の環境がある場合は、次の順序で Edge コンポーネントを更新します。

  1. ZooKeeper
  2. Cassandra
  3. Qpidd
  4. postgresql
  5. LDAP
  6. Edge(すべてのノードの「-c edge」プロファイル)。Qpid、Postgres、Management Server、Message Processor、Router の順序です。
  7. すべての Router ノードで次の操作を行います。
    1. /opt/nginx/conf.d 内のファイルをすべて削除します。
      > rm -f /opt/nginx/conf.d/*
    2. Edge Router を再起動します。
      > /<inst_root>/apigee/apigee-service/bin/apigee-service edge-router restart
  8. UI