Apigee Edge 4.52.02 をロールバックする

Edge 4.52.02 への更新中にエラーが発生した場合は、エラーの原因となったコンポーネントをロールバックしてから更新を再試行できます。

Edge 4.52.02 は、次のメジャー リリース バージョンにロールバックできます。

  • バージョン 4.52.01
  • バージョン 4.52.00
  • バージョン 4.51.00

バージョンのロールバックには、アップグレードしたすべてのコンポーネントがロールバックされます。さらに、開始したバージョンによっては、特定のソフトウェア コンポーネントをロールバックする前に、特別な考慮事項を考慮する必要がある場合があります。次の表に、ロールバック中に特別な手順が必要になる可能性のあるソフトウェアを示します。

バージョンにロールバック ソフトウェアに関する特別な考慮事項
4.52.01 Cassandra
4.52.00 Cassandra、Zookeeper、Qpid
4.51.00 Cassandra、Zookeeper、Qpid、Postgres

ロールバックを実行するシナリオは 2 つあります。

  1. 以前のメジャー リリースまたはマイナー リリースにロールバックする。たとえば、4.52.02 から 4.52.00 へのロールバックです。
  2. 同じリリースの以前のパッチリリースにロールバックする。たとえば、4.52.00.02 から 4.52.00.01 へのロールバックです。

詳細については、Apigee Edge リリース プロセスをご覧ください。

ロールバックの順序

コンポーネントのロールバックは、管理サーバーを Cassandra の後ろにロールバックする場合を除き、アップグレードしたのと逆の順序で実施する必要があります。

Private Cloud 4.52.02 の一般的なロールバック順序は次のようになります。

  1. Postgres、Qpid、その他の分析関連コンポーネントをロールバックする
  2. Router と Message Processor をロールバックする
  3. Cassandra、Zookeeper のロールバック
  4. 管理サーバーをロールバック

たとえば、Cassandra クラスタ全体、すべての管理サーバー、いくつかの RMP をバージョン 4.52.01 からバージョン 4.52.02 にアップグレードし、ロールバックするとします。この場合は、次のようにします。

  1. すべての RMP を 1 つずつロールバックする
  2. バックアップを使用して Cassandra クラスタ全体をロールバックする
  3. Edge 管理サーバーノードを 1 つずつロールバックする

ロールバックを実行できるユーザー

ロールバックを実行するユーザーは、最初に Edge を更新したユーザーまたは root として実行しているユーザーと同じである必要があります。

デフォルトでは、Edge コンポーネントはユーザー「apigee」として実行されます。場合によっては、Edge コンポーネントを別のユーザーとして実行していることがあります。たとえば、Router が特権ポート(1,000 未満のポートなど)にアクセスする必要がある場合は、root またはそれらのポートにアクセスできるユーザーとして Router を実行する必要があります。また、あるコンポーネントをあるユーザーとして実行し、別のコンポーネントを別のユーザーとして実行することもできます。

共通のコードを使用するコンポーネント

次の Edge コンポーネントは共通のコードを共有しています。したがって、ノード上のこれらのコンポーネントのいずれかをロールバックするには、そのノード上にあるこれらのコンポーネントをすべてロールバックする必要があります。

  • edge-management-server(Management Server)
  • edge-message-processor(Message Processor)
  • edge-router(ルーター)
  • edge-postgres-server(Postgres Server)
  • edge-qpid-server(Qpid Server)

たとえば、Management Server、Router、Message Processor がノードにインストールされている場合、いずれか 1 つをロールバックするには、3 つすべてをロールバックする必要があります。

Cassandra のロールバック

特定の Cassandra ノードで Cassandra のメジャー アップグレードが実行されると、Cassandra はノードに格納されているデータのスキーマを変更するため、直接ロールバックは不可能になります。ロールバックする方法は 2 つあります。ロールバック元のアップグレードの状態に応じて、これらのいずれかの方法を使用します。

ロールバックの方法

クラスタ内の既存のノードを消去し、それを使用してノードを再構築する

古いバージョンの Cassandra(Cassandra 2.1.22)のクラスタ内に、完全に機能するデータセンターが少なくとも 1 つある場合は、この手順に従うことができます。Cassandra クラスタ全体をアップグレードした後にロールバックする場合は、バックアップまたは VM スナップショットを消去して復元するの手順を行います。

ロールバックの手順

  1. ロールバックするノードから開始します。
    • ノードで Cassandra を停止します。
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra stop
    • ノードから Cassandra ソフトウェアをアンインストールします。
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra uninstall
    • ノードからデータ ディレクトリを削除します。
      rm -rf /opt/apigee/data/apigee-cassandra
    • ロールバックする古いバージョンの Edge for Private Cloud のブートストラップをダウンロードして実行します。

    例: 4.52.01 にロールバックするには、

    • 4.52.01 のブートストラップをダウンロードします。
      curl https://software.apigee.com/bootstrap_4.52.01.sh -o /tmp/bootstrap_4.52.01.sh -u ‘uName:pWord’
    • 4.52.01 のブートストラップを実行します。
      sudo bash /tmp/bootstrap_4.52.01.sh apigeeuser=uName apigeepassword=pWord

    • ノードで Cassandra を設定します。
      /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile
    • 機能するデータセンターの名前を指定して、ノードで再ビルドを実行します。
      /opt/apigee/apigee-cassandra/bin/nodetool rebuild -h <node-IP> <functional-dc>
    • ロールバックするノードごとに、上記の手順を 1 つずつ繰り返します。
  2. すべてのノードがロールバックされて再ビルドされたら:
    • 任意の管理サーバーノードの設定を実行します。管理サーバーがロールバックされたバージョンからのものであることを確認します。そうでない場合は、管理サーバーもロールバックします。
    • 管理サーバーを停止します。
      /opt/apigee/apigee-service/bin/apigee-service edge-management-server stop
    • 収益化を使用している場合は、収益化もアンインストールします。
      /opt/apigee/apigee-service/bin/apigee-service edge-mint-gateway uninstall
    • management-server をアンインストールします。
      /opt/apigee/apigee-service/bin/apigee-service edge-gateway uninstall
    • 古いバージョンのブートストラップをダウンロードして実行します。たとえば、バージョン 4.52.01 のブートストラップをダウンロードして実行するには、次の手順を行います。
      curl https://software.apigee.com/bootstrap_4.52.01.sh -o /tmp/bootstrap_4.52.01.sh -u ‘uName:pWord’
      sudo bash /tmp/bootstrap_4.52.01.sh apigeeuser=uName apigeepassword=pWord
    • 1 つの管理サーバーノードの設定を実行します。
      /opt/apigee/apigee-setup/bin/setup.sh -p mt -f configFile

再構築後の最適化

上記のステップでは、再構築中にノード内のすべてのデータがリモート データセンターからストリーミングされます。すべてのレプリカがローカル データセンターにストリーミングされたら、修復を使用してこのプロセスを最適化できます。これにより、DC 間のストリーミングが回避され、リモート DC からすべてのノードを再構築するよりも短時間で済みます。

例: ローカル データセンターに 6 つの Cassandra ノードがあるとします。デフォルトでは、Apigee のレプリケーション係数は 3 であるため、すべてのノードが 50% のデータを所有します。この場合、上記の手順に沿ってノード #1 と #4 を再ビルドできます。ノード #2、#3、#5、#6 の場合、以下の手順に沿ってバックアップを復元し、修復を実行します。

  1. ドキュメントに記載されているステップ 6 までの手順に沿って、ローカル データセンターのレプリカを再構築します。
  2. 残りのノードについては、残りのノードごとに以下の手順を 1 つずつ行います。
    • このノードでキャプチャしたバックアップを復元します(注: このバックアップは Cassandra のアップグレードを開始する前に作成されたため、古いデータが含まれている可能性があります)。
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restore backup_file
    • ノードの VM スナップショットがある場合は、Cassandra のバックアップを復元する代わりにスナップショットを復元できます。
    • バックアップが復元されたら、ノードで Cassandra サービスを開始します。
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra start
    • ノードに対して修復を実行して、既存のデータセンターから最新のデータをストリーミングできるようにします。
      /opt/apigee/apigee-cassandra/bin/nodetool -h <node-IP> repair -dc <local-dc-name>
    • 修復するノードごとに手順 3 ~ 6 を繰り返します。

バックアップ/VM スナップショットを消去して復元する

Cassandra クラスタ全体をアップグレードしていて、ロールバックする場合に使用できるのは、この手順だけです。

また、Apigee バックアップはノード固有です。あるノードから取得したバックアップを別のノードに復元することはできません。Cassandra のバックアップには、ノードのメタデータ情報(IP アドレス、リングの位置など)が含まれます。

  1. クラスタ内の 1 つの Cassandra ノードから開始します。
    • ノード上の Cassandra サービスを停止します。
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra stop
    • ノードから Cassandra ソフトウェアをアンインストールします。
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra uninstall
    • ノードからデータ ディレクトリを削除します。
      rm -rf /opt/apigee/data/apigee-cassandra
    • ロールバック先の Edge for Private Cloud の古いバージョンのブートストラップをダウンロードして実行します。

    例: 4.52.01 にロールバックするには

    • 4.52.01 のブートストラップをダウンロードします。
      curl https://software.apigee.com/bootstrap_4.52.01.sh -o /tmp/bootstrap_4.52.01.sh -u ‘uName:pWord’
    • 4.52.01 のブートストラップを実行します。
      sudo bash /tmp/bootstrap_4.52.01.sh apigeeuser=uName apigeepassword=pWord

    • ノードで Cassandra を設定します。
      /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile
    • バックアップから復元するの手順に沿って、ノードにバックアップを復元します。
    • ノードで Cassandra を停止します。
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra stop
    • データ ディレクトリを削除します。
      rm -rf /opt/apigee/data/apigee-cassandra/data
    • バックアップを復元します。
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restore backup_file
    • ノードで Cassandra サービスを起動します。
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra start
    • Cassandra ノードごとに 1 つずつ手順を繰り返します。
    • ノードに対して一度に 1 つずつ修復を実行します。
      /opt/apigee/apigee-cassandra/bin/nodetool -h <node-IP> repair -pr

Zookeeper 3.8.3 更新をロールバックする

バージョン 4.52.00 または 4.51.00 にロールバックする場合は、Zookeeper をロールバックする前にいくつかの特別な手順を参照する必要があります。これらの手順は、ロールバックに記載されています。

バージョン 4.52.01 にロールバックする場合は、以下の以前のメジャー リリースまたはマイナー リリースにロールバックするセクションに記載されているように、任意のソフトウェアをロールバックする場合と同様に、Zookeeper をロールバックします。

Qpid のロールバック

バージョン 4.52.00 または 4.51.00 にロールバックする場合は、Qpid をロールバックする前にいくつかの特別な手順を参照する必要があります。これらの手順は、ロールバックに記載されています。

バージョン 4.52.01 にロールバックする場合は、以前のメジャー リリースまたはマイナー リリースにロールバックするに記載されているソフトウェアをロールバックする場合と同様に、Qpid をロールバックします。

Postgres 10.17 の更新をロールバックする

バージョン 4.51.00 にロールバックする場合、Postgres をロールバックする前にいくつかの特別な手順を参照する必要があります。これらの手順は、ロールバックに記載されています。

バージョン 4.52.01 または 4.52.00 にロールバックする場合は、以下の以前のメジャー リリースまたはマイナー リリースにロールバックするセクションに記載されているように、任意のソフトウェアをロールバックする場合と同様に、Postgres をロールバックします。

以前のメジャー リリースまたはマイナー リリースにロールバックする

以前のメジャー リリースまたはマイナー リリースにロールバックするには、コンポーネントをホストする各ノードで次の操作を行います。

  1. ロールバックするバージョンの bootstrap.sh ファイルをダウンロードします。

    • 4.51.00 にロールバックするには、bootstrap_4.51.00.sh をダウンロードします。
      curl https://software.apigee.com/bootstrap_4.51.00.sh -o /tmp/bootstrap_4.51.00.sh 
  2. ロールバックするコンポーネントを停止します。
    1. ノード上の共通のコードを使用するコンポーネントをロールバックするには、次の例のように、すべてを停止する必要があります。
      /opt/apigee/apigee-service/bin/apigee-service edge-management-server stop
       /opt/apigee/apigee-service/bin/apigee-service edge-router stop
       /opt/apigee/apigee-service/bin/apigee-service edge-message-processor stop
       /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
       /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
    2. ノード上のその他のコンポーネントをロールバックするには、そのコンポーネントのみを停止します。
      • /opt/apigee/apigee-service/bin/apigee-service component stop
  3. Monetization をロールバックする場合は、すべての Management Server ノードと Message Processor ノードからアンインストールします。
    /opt/apigee/apigee-service/bin/apigee-service edge-mint-gateway uninstall
  4. ロールバックするコンポーネントをノードからアンインストールします。
    1. ノード上の共通のコードを使用するコンポーネントをロールバックするには、次の例のように edge-gateway コンポーネント グループをアンインストールして、すべてのコンポーネントをアンインストールする必要があります。
      /opt/apigee/apigee-service/bin/apigee-service edge-gateway uninstall
    2. ノード上の他のコンポーネントをロールバックするには、次の例のように、そのコンポーネントのみをアンインストールします。
      /opt/apigee/apigee-service/bin/apigee-service component uninstall

      ここで、component はコンポーネント名です。

    3. Edge Router をロールバックするには、edge-gateway コンポーネント グループ
      cd /opt/nginx/conf.d
       rm -rf *
      をアンインストールすることに加えて、/opt/nginx/conf.d ファイルの内容を削除する必要があります。
  5. バージョン 4.52.02 の apigee-setup をアンインストールします。
    /opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
  6. バージョン 4.51.00 の apigee-service ユーティリティとその依存関係をインストールします。次の例では、4.51.00 バージョンの apigee-service をインストールします。
    sudo bash /tmp/bootstrap_4.51.00.sh apigeeuser=uName apigeepassword=pWord

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

    エラーが発生した場合は、ステップ 1 で bootstrap.sh ファイルをダウンロードしたことを確認してください。

  7. apigee-setup をインストールします。
    /opt/apigee/apigee-service/bin/apigee-service apigee-setup install
  8. 古いバージョンのコンポーネントをインストールします。
    /opt/apigee/apigee-setup/bin/setup.sh -p component -f configFile

    ここで、component はインストールするコンポーネント、configFile は古いバージョンの構成ファイルです。

  9. Qpid をロールバックする場合は、iptables をフラッシュします。
    sudo iptables -F
  10. ロールバックするコンポーネントをホストするノードごとに、この手順を繰り返します。

以前のパッチリリースにロールバックする

コンポーネントを特定のパッチリリースにロールバックするには、コンポーネントをホストする各ノードで次の操作を行います。

  1. 特定のバージョンのコンポーネントをダウンロードします。
    /opt/apigee/apigee-service/bin/apigee-service component_version install

    ここで、component_version はインストールするコンポーネントとパッチリリースです。例:

    /opt/apigee/apigee-service/bin/apigee-service edge-ui-4.51.05-0.0.3749 install

    Apigee オンライン リポジトリを使用している場合は、次のコマンドを使用して、使用可能なコンポーネントのバージョンを確認できます。

    yum --showduplicates list comp

    次に例を示します。

    yum --showduplicates list edge-ui
  2. apigee-setup を使用してコンポーネントをインストールします。
    /opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile

    次に例を示します。

    /opt/apigee/apigee-setup/bin/setup.sh -p ui -f configFile

    インストール時に指定するのは、バージョンではなく、コンポーネント名のみです。

  3. ロールバックするコンポーネントをホストするノードごとに、この手順を繰り返します。

mTLS をロールバックする

mTLS の更新をロールバックするには、すべてのホストで次の操作を行います。

  1. Apigee を停止します。
    apigee-all stop
  2. mTLS を停止します。
    apigee-service apigee-mtls uninstall
  3. mTLS を再インストールします。
    apigee-service apigee-mtls install
    apigee-service apigee-mtls setup -f /opt/silent.conf