Edge 4.52.01 へのアップデート中にエラーが発生した場合は、エラーの原因となったコンポーネントをロールバックしてから、アップデートを再試行できます。
Edge 4.52.01 は次のメジャー リリース バージョンにロールバックできます。
- バージョン 4.52.00
- バージョン 4.51.00
ロールバックの実行が必要となるシナリオは 2 つあります。
- 前のメジャー リリースまたはマイナー リリースにロールバックする。たとえば、4.52.01 から 4.52.00 へのロールバックです。
- 同じリリース内の以前のパッチリリースにロールバックする。たとえば、4.52.00.02 から 4.52.00.01 へのロールバックです。
詳細については、Apigee Edge リリース プロセスをご覧ください。
ロールバックを実行できるユーザー
ロールバックを行うユーザーは、最初に 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 がインストールされている場合、いずれかをロールバックするには、3 つすべてをロールバックする必要があります。
以前のメジャー リリースまたはマイナー リリースにロールバックする
以前のメジャー リリースまたはマイナー リリースにロールバックするには、コンポーネントをホストする各ノードで次の操作を行います。
-
ロールバックするバージョンの
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
- 4.51.00 にロールバックするには、
- ロールバックするコンポーネントを停止します。
- ノード上の共通のコードを使用するコンポーネントをロールバックするには、次の例のように、すべてのコンポーネントを停止する必要があります。
/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 ノードから Monetization をアンインストールします。
/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.52.01 の
apigee-setup
をアンインストールします。/opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
- 4.51.00 バージョンの
apigee-service
ユーティリティとその依存関係をインストールします。次の例では、4.51.00 バージョンのapigee-service
をインストールします。sudo bash /tmp/bootstrap_4.51.00.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
- ロールバックするコンポーネントをホストするノードごとにこの手順を繰り返します。
以前のパッチリリースにロールバックする
コンポーネントを特定のパッチリリースにロールバックするには、そのコンポーネントをホストする各ノードで次の操作を行います。
- 特定のコンポーネント バージョンをダウンロードします。
/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
apigee-setup
を使用してコンポーネントをインストールします。/opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile
次に例を示します。
/opt/apigee/apigee-setup/bin/setup.sh -p ui -f configFile
インストール時には、コンポーネント名のみを指定し、バージョンは指定しないことに注意してください。
- ロールバックするコンポーネントをホストするノードごとにこの手順を繰り返します。
Postgres 10.17 の更新をロールバックする
バージョン 4.50.00 または 4.51.00 から 4.52.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
- 新しいスタンバイ ノードを新しいマスターに昇格させます。
- 古いスタンバイ ノードを新しいバージョンにアップグレードしている場合は、まず古いスタンバイ ノードで Apigee ソフトウェアをダウングレードする必要があります。旧スタンバイ ノードに旧バージョンがインストールされている場合は、この手順をスキップして手順 6 から続行できます。
- 旧スタンバイ ノードで Postgres を停止します。
apigee-service apigee-postgresql stop apigee-service edge-postgres-server stop
- 旧スタンバイ ノードから Postgres をアンインストールします。
apigee-service apigee-postgresql uninstall apigee-service edge-postgres-server uninstall
- 古いスタンバイ ノードから Postgres データ ディレクトリを削除します。
cd /opt/apigee/data/apigee-postgresql/pgdata > rm -rf *
- 古いスタンバイ ノードで、(ロールバックする Apigee バージョン用の)古いバージョンのブートストラップをダウンロードして実行します。正確な手順は、インターネット インストールとオフライン インストールのどちらを使用するかによって異なる場合があります。古いバージョンの Apigee ブートストラップを実行すると、古いバージョンの Apigee データを使用して yum リポジトリが設定されます。
- 旧スタンバイ ノードで Postgres コンポーネントを設定します。
/opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile
- 旧スタンバイ ノードの Postgres コンポーネントが旧バージョンにロールバックされたことを確認します。
apigee-service apigee-postgresql version apigee-service edge-postgres-server version
- 旧スタンバイ ノードで 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
を指定します。 - 古いスタンバイ ノードからデータ ディレクトリを削除します。
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
Postgres が実行されていない場合は、起動します。
/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 のマスターノードとスタンバイ ノードの UUID を、postgres-server
フィールドとdatastores
フィールドに返します。{ "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 マスターノードと 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 リクエストを送信した後、前の手順を繰り返します。
- Postgres ノードを廃止するの手順に沿って、古い Postgres マスターを廃止します。
または、古いマスターから Qpid をアンインストールして、新しいマスターノードに Qpid をインストールすることもできます。Qpid をアンインストールした後、古いマスターノードを廃止できます。
mTLS をロールバックする
mTLS の更新をロールバックするには、すべてのホストで次の操作を行います。
- Apigee を停止します。
apigee-all stop
- mTLS を停止します。
apigee-service apigee-mtls uninstall
- mTLS を再インストールします。
apigee-service apigee-mtls install
apigee-service apigee-mtls setup -f /opt/silent.conf