Edge for Private Cloud v4.19.01
Edge 4.19.01 への更新中にエラーが発生した場合は、エラーの原因となったコンポーネントをロールバックしてから、更新を再試行できます。
Edge 4.19.01 は、次の機能リリース バージョンにロールバックできます。
- バージョン 4.18.05
- バージョン 4.18.01
- バージョン 4.17.09*
* 4.19.01 から 4.17.09 にロールバックするには、各ノードのコンポーネントをロールバックするだけでなく、Postgres をロールバックする必要があります。4.18.01 または 4.18.05 にロールバックする場合、アップグレード プロセスに Postgres の更新が含まれていないため、Postgres をロールバックする必要はありません。
ロールバックが必要になるシナリオは次の 2 つです。
- 以前の機能リリースにロールバックする。たとえば、4.19.01 から 4.18.05 にダウングレードします。
- 同じリリースの以前のアップデート バージョンにロールバックする。たとえば、4.19.01.02 から 4.19.01.01 にダウングレードします。
詳細については、Apigee Edge のリリース プロセスをご覧ください。
ロールバックを実行できるユーザー
ロールバックを実行するユーザーは、Edge を最初に更新したユーザー、または root として実行しているユーザーと同じである必要があります。
デフォルトでは、Edge コンポーネントはユーザー「apigee」として実行されます。場合によっては、Edge コンポーネントを別のユーザーとして実行することがあります。たとえば、Router が 1000 未満の特権ポートにアクセスする必要がある場合は、Router を root として、またはそれらのポートにアクセスできるユーザーとして実行する必要があります。また、1 つのコンポーネントを 1 人のユーザーとして実行し、別のコンポーネントを別のユーザーとして実行することもできます。
共通コードを含むコンポーネント
次の Edge コンポーネントは共通のコードを共有しています。したがって、ノード上のこれらのコンポーネントのいずれかをロールバックするには、そのノード上にあるこれらのコンポーネントをすべてロールバックする必要があります。
edge-management-server(Management Server)edge-message-processor(Message Processor)edge-router(ルーター)edge-postgres-server(Postgres サーバー)edge-qpid-server(Qpid サーバー)
たとえば、Management Server、Router、Message Processor がノードにインストールされている場合、そのうちの 1 つをロールバックするには、3 つすべてをロールバックする必要があります。
以前の機能リリースにロールバックする
4.19.01 から 4.17.09 にロールバックするには、各ノードのコンポーネントをロールバックするだけでなく、Postgres をロールバックする必要があります。4.18.01 または 4.18.05 からロールバックする場合、アップグレード プロセスに Postgres の更新が含まれていないため、Postgres をロールバックする必要はありません。
以前の機能リリースにロールバックするには、コンポーネントをホストする各ノードで次の操作を行います。
-
ロールバックするバージョンの
bootstrap.shファイルをダウンロードします。- 4.18.05 にロールバックするには、
bootstrap_4.18.05.shをダウンロードします。curl https://software.apigee.com/bootstrap_4.18.05.sh -o /tmp/bootstrap_4.18.05.sh
- 4.18.01 にロールバックするには、
bootstrap_4.18.01.shをダウンロードします。curl https://software.apigee.com/bootstrap_4.18.01.sh -o /tmp/bootstrap_4.18.01.sh
- 4.17.09 にロールバックするには、
bootstrap_4.17.09.shをダウンロードします。curl https://software.apigee.com/bootstrap_4.17.09.sh -o /tmp/bootstrap_4.17.09.sh
- 4.18.05 にロールバックするには、
- ロールバックするコンポーネントを停止します。
- ノード上の共通コードを含むコンポーネントをロールバックするには、次の例に示すように、すべてのコンポーネントを停止する必要があります。
/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 - ノード上の他のコンポーネントをロールバックするには、そのコンポーネントのみを停止します。
/opt/apigee/apigee-service/bin/apigee-service component stop
- ノード上の共通コードを含むコンポーネントをロールバックするには、次の例に示すように、すべてのコンポーネントを停止する必要があります。
- Monetization をロールバックする場合は、すべての Management Server ノードと Message Processor ノードからアンインストールします。
/opt/apigee/apigee-service/bin/apigee-service edge-mint-gateway uninstall
- ノードでロールバックするコンポーネントをアンインストールします。
- ノード上の共通コードを含むコンポーネントをロールバックするには、次の例に示すように、
edge-gatewayコンポーネント グループをアンインストールして、すべてをアンインストールする必要があります。/opt/apigee/apigee-service/bin/apigee-service edge-gateway uninstall
- ノード上の他のコンポーネントをロールバックするには、次の例に示すように、そのコンポーネントのみをアンインストールします。
/opt/apigee/apigee-service/bin/apigee-service component uninstall
ここで、component はコンポーネント名です。
- Edge Router をロールバックするには、
edge-gatewayコンポーネント グループをアンインストールするだけでなく、/opt/nginx/conf.dファイルの内容を削除する必要があります。cd /opt/nginx/conf.d
rm -rf *
- ノード上の共通コードを含むコンポーネントをロールバックするには、次の例に示すように、
- 4.19.01 バージョンの
apigee-setupをアンインストールします。/opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
apigee-serviceユーティリティのバージョン 4.18.05、4.18.01、または 4.17.09 とその依存関係をインストールします。次の例では、4.17.09 バージョンのapigee-serviceをインストールします。sudo bash /tmp/bootstrap_4.17.09.sh apigeeuser=uName apigeepassword=pWord
ここで、uName と pWord は Apigee から受け取ったユーザー名とパスワードです。pWord を省略すると、入力するよう求められます。
エラーが発生した場合は、ステップ 1 で
bootstrap.shファイルをダウンロードしたことを確認してください。apigee-setupのインストール:/opt/apigee/apigee-service/bin/apigee-service apigee-setup install
- 古いバージョンのコンポーネントをインストールします。
/opt/apigee/apigee-setup/bin/setup.sh -p component -f configFile
ここで、component はインストールするコンポーネント、configFile は古いバージョンの構成ファイルです。
- Qpid をロールバックする場合は、iptables をフラッシュします。
sudo iptables -F
- ロールバックするコンポーネントをホストするノードごとに、このプロセスを繰り返します。
4.19.01 から 4.17.09 にロールバックするには、各ノードのコンポーネントをロールバックするだけでなく、Postgres をロールバックする必要があります。4.18.01 または 4.18.05 からロールバックする場合、アップグレード プロセスに Postgres の更新が含まれていないため、Postgres をロールバックする必要はありません。
以前のアップデート バージョンにロールバックする
コンポーネントを特定のバージョンのリリースにロールバックするには、コンポーネントをホストする各ノードで次の操作を行います。
- 特定のコンポーネント バージョンをダウンロードします。
/opt/apigee/apigee-service/bin/apigee-service component_version install
ここで、component_version はインストールするコンポーネントと更新バージョンです。例:
/opt/apigee/apigee-service/bin/apigee-service edge-ui-4.17.09-0.0.3749 install
Apigee オンライン リポジトリを使用している場合は、次のコマンドを使用して、使用可能なコンポーネントのバージョンを確認できます。
yum --showduplicates list comp
次に例を示します。
yum --showduplicates list edge-ui
apigee-setupを使用してコンポーネントをインストールします。/opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile
次に例を示します。
/opt/apigee/apigee-setup/bin/setup.sh -p ui -f configFile
インストール時に指定するのはコンポーネント名のみで、バージョンは指定しません。
- ロールバックするコンポーネントをホストするノードごとに、このプロセスを繰り返します。
4.19.01 から 4.17.09 にロールバックするには、各ノードのコンポーネントをロールバックするだけでなく、Postgres をロールバックする必要があります。4.18.01 または 4.18.05 からロールバックする場合、アップグレード プロセスに Postgres のアップデートが含まれていないため、Postgres をロールバックする必要はありません。
Postgres 9.6 の更新をロールバックする
バージョン 4.17.09 から 4.19.01 にアップグレードした場合は、Edge コンポーネントに加えて Postgres の更新をロールバックする必要があります。
マスター / スタンバイ構成で Postgres を更新するときに Postgres の更新をロールバックするには:
- 新しいスタンバイ ノードを Postgres マスターにプロモートします。新しい Postgres マスターは、以前の Edge インストールと同じバージョンになります。
- 古いスタンバイ ノードを新しいマスターのスタンバイ ノードとして構成します。古いスタンバイ ノードは、以前の Edge インストールと同じバージョンになります。
- 新しいマスターノードとスタンバイ ノードを分析グループとコンシューマー グループに登録します。
ロールバックが完了すると、古いマスターノードは不要になります。その後、古いマスターノードをデコミッションできます。
- 新しいスタンバイ Postgres ノードが実行されていることを確認します。
/opt/apigee/apigee-service/bin/apigee-all status
Postgres が実行されていない場合は、起動します。
/opt/apigee/apigee-service/bin/apigee-all start
- 古いマスターノードと古いスタンバイ ノードで Postgres が停止していることを確認します。
/opt/apigee/apigee-service/bin/apigee-all status
Postgres が実行されている場合は、停止します。
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
- インストールされている場合は、古いスタンバイ ノードで Qpid を起動します。
/opt/apigee/apigee-service/bin/apigee-service edge-qpid-server start
- 新しいスタンバイ ノードを Postgres マスターとして昇格させます。
- 新しいスタンバイ ノードを新しいマスターに昇格させます。
apigee-service apigee-postgresql promote-standby-to-master new_standby_IP
プロンプトが表示されたら、「apigee」ユーザーの Postgres パスワードを入力します。デフォルトは「postgres」です。
- 現在のバージョンの Edge のインストールに使用した構成ファイルを編集して、次の項目を指定します。
# IP address of the new master: PG_MASTER=new_standby_IP # IP address of the old standby node PG_STANDBY=old_standby_IP
- 新しいマスターを構成します。
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFile
- 新しいスタンバイ ノードを新しいマスターに昇格させます。
- 古いスタンバイ ノードを再構築します。
- 現在のバージョンの Edge のインストールに使用した構成ファイルを編集して、次の項目を指定します。
# IP address of the new master: PG_MASTER=new_standby_IP # IP address of the old standby node PG_STANDBY=old_standby_IP
- 古いスタンバイ ノードのデータ ディレクトリを削除します。
cd /opt/apigee/data/apigee-postgresql/pgdata > rm -rf *
- 古いスタンバイ ノードを新しいマスターのスタンバイ ノードとして再構成します。
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
- 古いスタンバイ ノードで Postgres が実行されていることを確認します。
/opt/apigee/apigee-service/bin/apigee-all status
実行されていない場合は、起動します。
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server start
- 現在のバージョンの Edge のインストールに使用した構成ファイルを編集して、次の項目を指定します。
- 新しいマスターの
/opt/apigee/apigee-postgresql/conf/pg_hba.confファイルを表示して、新しいスタンバイ ノードが追加されたことを確認します。 - Management Server で次のコマンドを実行して、現在の分析情報とコンシューマ グループの情報を表示します。
curl -u sysAdminEmail:password http://ms_IP:8080/v1/analytics/groups/ax
このコマンドは、
nameフィールドにアナリティクス グループ名を返し、consumer-groupsのnameフィールドにコンシューマー グループ名を返します。また、postgres-serverフィールドとdatastoresフィールドに、古い Postgres マスターノードとスタンバイ ノードの UUID も返されます。出力は次の形式で表示されます。{ "name" : "axgroup-001", "properties" : { }, "scopes" : [ "VALIDATE~test", "sgilson~prod" ], "uuids" : { "qpid-server" : [ "8381a053-433f-4382-bd2a-100fd37a1592", "4b6856ec-ef05-498f-bac6-ef5f0d5f6521" ], "postgres-server" : [ "ab1158bd-1d59-4e2a-9c95-24cc2cfa6edc:27f90844-efab-4b32-8a23-8f85cdc9a256" ] }, "consumer-groups" : [ { "name" : "consumer-group-001", "consumers" : [ "8381a053-433f-4382-bd2a-100fd37a1592", "4b6856ec-ef05-498f-bac6-ef5f0d5f6521" ], "datastores" : [ "ab1158bd-1d59-4e2a-9c95-24cc2cfa6edc:27f90844-efab-4b32-8a23-8f85cdc9a256" ], "properties" : { } } ], "data-processors" : { } } - 古いマスターノードで次の
curlコマンドを実行して、古いマスターの UUID アドレスを取得します。curl -u sysAdminEmail:password http://node_IP:8084/v1/servers/self
出力の最後に、ノードの UUID が次の形式で表示されます。
"type" : [ "postgres-server" ], "uUID" : "599e8ebf-5d69-4ae4-aa71-154970a8ec75"
- 前の手順を繰り返して、古いスタンバイ ノードと新しいマスターの IP アドレスを取得します。
- コンシューマー グループから古いマスターノードとスタンバイ ノードを削除します。
curl -u sysAdminEmail:password -X DELETE \ "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/datastores/masterUUID,standbyUUID" -v
ここで、axgroup-001 と consumer-group-001 は、分析グループとコンシューマー グループのデフォルト名です。masterUUID,standbyUUID は、上記の現在の分析情報とコンシューマ グループ情報を表示したときと同じ順序で表示されます。standbyUUID,masterUUID として指定する必要がある場合があります。
consumer-groupsのdatastoresプロパティが空になっているはずです。 - 分析グループから古いマスターノードとスタンバイ ノードを削除します。
curl -u sysAdminEmail:password -X DELETE \ "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=masterUUID,standbyUUID&type=postgres-server" -v
uuidsのpostgres-serverプロパティが空になっているはずです。 - 新しい PG マスターノードとスタンバイ ノードを、分析グループとコンシューマー グループに登録します。
curl -u sysAdminEmail:password -X POST -H "Content-Type: application/json" -d '' "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=masterUUID,standbyUUID&type=postgres-server" -v
curl -u sysAdminEmail:password -X POST -H "Content-Type:application/json" -d '' "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/datastores?uuid=masterUUID,standbyUUID" -v - 分析グループを検証します。
curl -u sysAdminEmail:password http://ms_IP:8080/v1/analytics/groups/ax
新しいマスターノードとスタンバイ ノードの UUID が、分析グループとコンシューマ グループに表示されます。
- Edge Management Server を再起動します。
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
- すべての Qpid サーバーを再起動します。
/opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
- すべての Postgres サーバーを再起動します。
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
- 両方のサーバーで次のスクリプトを実行して、レプリケーション ステータスを確認します。レプリケーションが成功したことを確認するには、両方のサーバーで同じ結果が表示される必要があります。
新しいマスターで、次のコマンドを実行します。
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
マスターであることを確認します。古いスタンバイ ノードで、次の操作を行います。
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby
スタンバイであることを確認します。
- 複数の API リクエストを行った後、前の手順を繰り返して、ノードが同期していることを確認します。
- Apigee Edge 4.16.01/4.16.05 を 4.17.09 に更新するの手順に沿って、古い Postgres マスターをデコミッションします。
または、古いマスターから Qpid をアンインストールし、新しいマスターノードに Qpid をインストールすることもできます。Qpid をアンインストールしたら、古いマスターノードをデコミッションできます。
古いマスターから Qpid をアンインストールし、新しいマスターに Qpid をインストールする
古いマスターから Qpid をアンインストールし、新しいマスターにインストールするには:
- すべての Message Processor で次のコマンドを実行して、Message Processor から古いマスターの Qpid ポート 5672 へのアクセスをブロックします。
iptables -A OUTPUT -p tcp -d 10.233.147.20 --dport 5672 -j DROP
- 次のコマンドを実行して、Qpid メッセージ キューが空であることを確認します。保留中のすべてのメッセージが処理されるまで、Qpid をアンインストールすることはできません。
qpid-stat -q
このコマンドは、
msg, msgIn, and msgOutの数を含むテーブルを表示します。msg=0とmsgIn=msgOutの場合、すべてのメッセージが処理されます。 - 古いマスターで次のコマンドを実行して、古いマスター上の Qpid サーバーの UUID を確認します。この情報は、後で必要になるため保存しておきます。
curl -u sysAdminEmail:password http://node_IP::8083/v1/servers/self
- 古いマスターで Qpid を停止します。
/opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
/opt/apigee/apigee-service/bin/apigee-service apigee-qpidd stop - Qpid サーバーをアンインストールします。
/opt/apigee/apigee-service/bin/apigee-service edge-qpid-server uninstall
/opt/apigee/apigee-service/bin/apigee-service apigee-qpidd uninstall - 分析グループとコンシューマ グループから古い Qpid サーバーを削除します。
curl -u sysAdminEmail:password -X DELETE -H "Content-Type: application/json" -d '' \ "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/consumers/qpid_UUID" -v
curl -u sysAdminEmail:password -X DELETE \ "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=qpid_UUID&type=qpid-server" -v - ZooKeeper から古い Qpid サーバーを削除します。
curl -u sysAdminEmail:password -X DELETE \ http://ms_IP:8080/v1/servers/qpid_UUID
- 新しいマスターに Qpid をインストールします。
/opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile
- 新しいマスターで次のコマンドを実行して、新しいマスター上の Qpid サーバーの UUID を確認します。この情報は、後で必要になるため保存しておきます。
curl -u sysAdminEmail:password http://node_IP::8083/v1/servers/self
- 新しい Qpid サーバーを分析グループとコンシューマ グループに登録します。
curl -u sysAdminEmail:password -X POST -H "Content-Type: application/json" -d '' \ "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=qpid_UUID&type=qpid-server" -v
curl -u sysAdminEmail:password -X POST -H "Content-Type:application/json" -d '' \ "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/consumers?uuid=qpid_UUID" -v - すべての Message Processor を再起動します。
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- 新しい Qpid サーバーで次のコマンドを実行して、キューが作成されたことを確認します。
qpid-stat -q
Qpid サーバーがメッセージを処理する際に、
msg、msgIn、msgOutが更新されていることを確認します。
ロールバック時に問題が発生した場合は、Apigee Edge サポートにお問い合わせください。