Edge for Private Cloud v4.18.01
Edge 4.18.01 へのアップデート中にエラーが発生した場合は、エラーの原因となったコンポーネントをロールバックしてから、アップデートを再試行できます。たとえば、Postgres 9.6 へのアップデートが失敗した場合は、Postgres ノードのみをロールバックして、アップデートを再試行できます。
ロールバックを行うシナリオは 2 つあります。
- 古いリリースにロールバックします。例: 4.18.01 から 4.17.01 へ。
- 同じリリース内の古いバージョンにロールバックする。
両方のシナリオでロールバックを行うには、以下の手順を使用します。
ロールバックを実施できるユーザー
ロールバックを行うユーザーは、最初に Edge を更新したユーザーか、root として実行しているユーザーである必要があります。
デフォルトでは、Edge コンポーネントはユーザー「apigee」として実行されます。場合によっては、Edge コンポーネントを別のユーザーとして実行していることがあります。たとえば、Router が特権ポート(1000 未満など)にアクセスする必要がある場合は、root として、またはそれらのポートにアクセスできるユーザーとして Router を実行する必要があります。また、あるコンポーネントを 1 人のユーザーとして実行し、別のコンポーネントを別のユーザーとして実行することもできます。
ロールバックできるコンポーネント
ロールバックを行う場合は、次の条件に注意してください。
- 以下に示す 5 つの Edge コンポーネントは、共通のコードを共有しています。したがって、ノード上の 5 つのコンポーネントのいずれかをロールバックするには、ノードにインストールされている 5 つのコンポーネントのいずれかをロールバックする必要があります。たとえば、Management Server、Router、Message Processor がノードにインストールされている場合、この 1 つをロールバックするには、3 つすべてをロールバックする必要があります。
コードを共有する 5 つのコンポーネントは次のとおりです。
- 管理サーバー
- ルーター
- Message Processor
- Qpid サーバー
- Postgres サーバー
- Edge 4.16.01 から更新する場合は、Cassandra をロールバックしないでください。この Edge リリースには、Cassandra の更新版が含まれています。コンポーネントをロールバックする場合は、Cassandra のバージョンを 4.18.01 のままにしてください。
4.18.01 のロールバック
このセクションでは、Edge 4.18.01 を以前のバージョンにロールバックする手順について説明します。このセクションは、次の 2 つの部分に分かれています。
- Postgres の更新のロールバック
すべての更新手順の最後の部分は、Postgres ノードをバージョン 9.6 に更新することです。この更新が失敗した場合は、次の手順で更新をロールバックできます。 - 他のすべての Edge コンポーネントのロールバック
他の Edge コンポーネントをロールバックするには、この手順を使用します。
Postgres 9.6 の更新をロールバックする
マスター / スタンバイ構成で 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 のマスターノードとスタンバイ ノードの 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
出力の最後に、
"type" : [ "postgres-server" ], "uUID" : "599e8ebf-5d69-4ae4-aa71-154970a8ec75"
という形式でノードの UUID が表示されます。 - 前の手順を繰り返して、古いスタンバイ ノードと新しいマスターの 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 リクエストを送信した後、前の手順を繰り返します。
- Apigee Edge 4.16.01/4.16.05 を 4.17.09 に更新する手順に沿って、古い Postgres マスターを廃止します。
または、以下で説明するように、古いマスターから Qpid をアンインストールし、新しいマスターノードに Qpid をインストールすることもできます。Qpid をアンインストールした後、古いマスターノードを廃止できます。
古いマスターから Qpid をインストールし、新しいマスターに Qpid をインストールします。
次の手順で、古いマスターから Qpid をアンインストールし、新しいマスターに Qpid をインストールします。
- すべての Message Processor で次のコマンドを実行して、古いマスター上の Qpid ポート 5672 へのアクセスを Message Processor からブロックします。
> 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 が更新されていることを確認します。
4.18.01 から個々のコンポーネントをロールバックする手順
ロールバックを行う過程で、Edge の現在のバージョンに対応する bootstrap.sh ファイルをダウンロードする必要があります。
- 4.17.09 にロールバックするには、
bootstrap_4.17.09.sh
をダウンロードします。 - 4.17.05 にロールバックするには、
bootstrap_4.17.05.sh
をダウンロードします。 - 4.17.01 にロールバックするには、
bootstrap_4.17.01.sh
をダウンロードします。 - 4.16.09 にロールバックするには、
bootstrap_4.16.09.sh
をダウンロードします。 - 4.16.05 にロールバックするには、
bootstrap_4.16.05.sh
をダウンロードします。 - 4.16.01 にロールバックするには、
bootstrap.sh
をダウンロードします。
ロールバックするコンポーネントをホストするノードごとに、次の操作を行います。
- ロールバックするコンポーネントを停止します。
- ノード上のコンポーネント(Management Server、Router、Message Processor、Qpid Server、Postgres Server)のいずれかをロールバックする場合は、これらすべてのコンポーネントを停止する必要があります。
> apigee-service edge-management-server stop
> apigee-service edge-router stop
> apigee-service edge-message-processor stop
> apigee-service edge-qpid-server stop
> apigee-service edge-postgres-server stop
- ノード上の他のコンポーネントをロールバックする場合は、そのコンポーネントのみを停止します。
> apigee-service comp stop
- ノード上のコンポーネント(Management Server、Router、Message Processor、Qpid Server、Postgres Server)のいずれかをロールバックする場合は、これらすべてのコンポーネントを停止する必要があります。
- Monetization をロールバックする場合は、すべての Management Server ノードと Message Processor ノードから Monetization をアンインストールします。
> apigee-service edge-mint-gateway uninstall
- ロールバックするコンポーネントをノードからアンインストールします。
- ノード上のコンポーネント(Management Server、Router、Message Processor、Qpid Server、Postgres Server)のいずれかをロールバックする場合は、これらをすべてアンインストールします。
> apigee-service edge-gateway uninstall
- ノード上の他のコンポーネントをロールバックする場合は、そのコンポーネントのみをアンインストールします。
> apigee-service comp uninstall
- Router をロールバックする場合は、
/opt/nginx/conf.d
の内容を削除する必要があります。> cd /opt/nginx/conf.d > rm -rf *
- ノード上のコンポーネント(Management Server、Router、Message Processor、Qpid Server、Postgres Server)のいずれかをロールバックする場合は、これらをすべてアンインストールします。
-
コンポーネントをロールバックするには:
- バージョン 4.18.01 の
apigee-setup
をアンインストールします。> /opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
- 目的のリリースの bootstrap.sh をダウンロードします。たとえば、4.16.09 の場合:
> curl https://software.apigee.com/bootstrap_4.16.09.sh -o /tmp/bootstrap_4.16.09.sh
- 4.16.01、4.16.05、または 4.16.09 の
apigee-service
ユーティリティと依存関係をインストールします。例: 4.16.09 の場合:> sudo bash /tmp/bootstrap_4.16.09.sh apigeeuser=uName apigeepassword=pWord
ここで、uName と pWord は Apigee から取得したユーザー名とパスワードです。pWord を省略すると、入力するように求められます。
apigee-setup
をインストールします。> /opt/apigee/apigee-service/bin/apigee-service apigee-setup install
- 目的のバージョンのコンポーネントをインストールします。
> /opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile
ここで、comp はインストールするコンポーネント、configFile は目的のバージョンの構成ファイルです。
- Qpid をロールバックする場合は、iptables をフラッシュします。
> sudo iptables -F
- バージョン 4.18.01 の
- コンポーネントを 4.18.01 リリースの特定のバージョンにロールバックするには:
- 特定のコンポーネント バージョンをダウンロードします。
> /opt/apigee/apigee-service/bin/apigee-service comp-version install
ここで、comp-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
インストール時にのみコンポーネント名を指定することに注意してください。
- 特定のコンポーネント バージョンをダウンロードします。
ロールバック時に問題が発生した場合は、Apigee Edge サポートにお問い合わせください。