4.17.05 Rollback-Prozess

Edge for Private Cloud v. 4.17.05

Wenn während eines Updates auf Edge 4.17.05 ein Fehler auftritt, können Sie ein Rollback der Komponente durchführen, die den Fehler verursacht hat, und das Update dann noch einmal versuchen. Wenn beispielsweise das Update auf Postgres 9.4 fehlschlägt, können Sie nur die Postgres-Knoten zurücksetzen und das Update noch einmal versuchen.

Es gibt zwei Szenarien, in denen Sie möglicherweise ein Rollback durchführen möchten:

  1. Rollback zu einem älteren Release durchführen Beispiel: von 4.17.05 auf 4.17.01.
  2. Rollback auf eine ältere Version im selben Release.

Gehen Sie wie unten beschrieben vor, um für beide Szenarien ein Rollback durchzuführen.

Wer kann den Rollback ausführen?

Der Nutzer, der das Rollback ausführt, sollte derselbe Nutzer sein, der Edge ursprünglich aktualisiert hat, oder ein Nutzer, der als Root ausgeführt wird.

Standardmäßig werden Edge-Komponenten als Nutzer „apigee“ ausgeführt. In einigen Fällen führen Sie Edge-Komponenten möglicherweise als unterschiedliche Nutzer aus. Wenn der Router beispielsweise auf privilegierte Ports zugreifen muss, z. B. auf Ports unter 1000, müssen Sie den Router als Root oder als Nutzer mit Zugriff auf diese Ports ausführen. Oder Sie führen eine Komponente als ein Nutzer und eine andere Komponente als ein anderer Nutzer aus.

Welche Komponenten können zurückgesetzt werden?

Beachten Sie beim Ausführen eines Rollbacks die folgenden Bedingungen:

  • Die fünf unten aufgeführten Edge-Komponenten verwenden gemeinsamen Code. Wenn Sie also eine der fünf Komponenten auf einem Knoten zurücksetzen möchten, müssen Sie alle fünf auf dem Knoten installierten Komponenten zurücksetzen. Wenn Sie beispielsweise den Management Server, den Router und den Message Processor auf dem Knoten installiert haben, müssen Sie alle drei zurücksetzen, um einen davon zurückzusetzen.
    Die fünf Komponenten, die Code gemeinsam nutzen, sind:
    • Verwaltungsserver
    • Router
    • Message Processor
    • Qpid-Server
    • Postgres-Server
  • Wenn Sie ein Update von Edge 4.16.01 durchführen, führen Sie kein Rollback für Cassandra durch. Diese Version von Edge enthält eine aktualisierte Version von Cassandra. Wenn Sie ein Rollback für Komponenten durchführen, belassen Sie Cassandra auf der Version 4.17.05.

Rollback von 4.17.05

In diesem Abschnitt wird beschrieben, wie Sie ein Rollback von Edge 4.17.05 auf eine vorherige Version durchführen. Dieser Abschnitt ist in zwei Teile unterteilt:

  • Nur bei Aktualisierung von 4.16.01 oder 4.16.05: Rollback des Postgres-Updates auf Version 9.4
    Der letzte Teil jedes Updateverfahrens von 4.16.01 oder 4.16.05 besteht darin, Postgres-Knoten auf Version 9.4 zu aktualisieren. Wenn dieses Update fehlschlägt, können Sie das Update mit diesem Verfahren rückgängig machen.
  • Rollback aller anderen Edge-Komponenten
    Verwenden Sie dieses Verfahren, um ein Rollback für alle anderen Edge-Komponenten durchzuführen.

So machen Sie das Postgres 9.4-Update rückgängig:

So machen Sie das Postgres-Update rückgängig, wenn Sie Postgres in einer Master-Standby-Konfiguration aktualisieren:

  • Stufen Sie den neuen Stand-by-Knoten zum Postgres-Master hoch. Der neue Postgres-Master hat dieselbe Version wie Ihre vorherige Edge-Installation.
  • Konfigurieren Sie den alten Standby-Knoten als Standby-Knoten des neuen Masters. Der alte Standby-Knoten hat dieselbe Version wie Ihre vorherige Edge-Installation.
  • Registrieren Sie die neuen Master- und Standby-Knoten bei den Analyse- und Consumer-Gruppen.

Wenn Sie mit dem Rollback fertig sind, wird der alte Masterknoten nicht mehr benötigt. Anschließend können Sie den alten Masterknoten außer Betrieb nehmen.

  1. Prüfen Sie, ob der neue Standby-Postgres-Knoten ausgeführt wird:
    > /opt/apigee/apigee-service/bin/apigee-all status

    Wenn Postgres nicht ausgeführt wird, starten Sie es:
    > /opt/apigee/apigee-service/bin/apigee-all start
  2. Prüfen Sie, ob Postgres auf dem alten Masterknoten und dem alten Standby-Knoten beendet wurde:
    > /opt/apigee/apigee-service/bin/apigee-all status

    Wenn Postgres ausgeführt wird, beenden Sie es:
    > /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
    > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
  3. Wenn Qpid installiert ist, starten Sie es auf dem alten Standby-Knoten:
    > /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server start

    Hinweis: In vielen Konfigurationen hostet der alte Standby-Knoten nur Postgres, aber nicht Qpid.
  4. Stufen Sie den neuen Standby-Knoten zum Postgres-Master hoch:
    1. Stufen Sie den neuen Standby-Knoten zum neuen Master hoch:
      > apigee-service apigee-postgresql promote-standby-to-master new_standby_IP

      Wenn Sie dazu aufgefordert werden, geben Sie das Postgres-Passwort für den Nutzer „apigee“ ein, das standardmäßig „postgres“ lautet.
    2. Bearbeiten Sie die Konfigurationsdatei, die Sie zur Installation Ihrer aktuellen Edge-Version verwendet haben, um Folgendes anzugeben:
      # IP address of the new master:
      PG_MASTER=new_standby_IP
      # IP address of the old standby node
      PG_STANDBY=old_standby_IP
    3. Konfigurieren Sie den neuen Master:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFile
  5. Erstellen Sie den alten Stand-by-Knoten neu:
    1. Bearbeiten Sie die Konfigurationsdatei, die Sie zur Installation Ihrer aktuellen Edge-Version verwendet haben, um Folgendes anzugeben:
      # IP address of the new master:
      PG_MASTER=new_standby_IP
      # IP address of the old standby node
      PG_STANDBY=old_standby_IP
    2. Entfernen Sie das Datenverzeichnis auf dem alten Standby-Knoten:
      > cd /opt/apigee/data/apigee-postgresql/pgdata
      > rm -rf *
    3. Konfigurieren Sie den alten Standby-Knoten so, dass er ein Standby-Knoten des neuen Masters ist:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
    4. Prüfen Sie, ob Postgres auf dem alten Standby-Knoten ausgeführt wird:
      > /opt/apigee/apigee-service/bin/apigee-all status

      Wenn es nicht ausgeführt wird, starten Sie es:
      > /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server start
  6. Prüfen Sie, ob der neue Standby-Knoten hinzugefügt wurde. Sehen Sie sich dazu die Datei /opt/apigee/apigee-postgresql/conf/pg_hba.conf auf dem neuen Master an.
  7. Rufen Sie die aktuellen Informationen zur Analyse- und Nutzergruppe ab, indem Sie den folgenden Befehl auf dem Management Server ausführen:
    > curl -u sysAdminEmail:password http://<ms_IP>:8080/v1/analytics/groups/ax

    Dieser Befehl gibt den Namen der Analysegruppe im Feld name und den Namen der Nutzergruppe im Feld name unter consumer-groups zurück. Außerdem werden die UUIDs der alten Postgres-Master- und Standby-Knoten im Feld postgres-server und im Feld datastores zurückgegeben. Die Ausgabe sollte folgendes Format haben:

    {
    "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" : {
    }
    }
  8. Rufen Sie die UUID-Adresse des alten Masters ab, indem Sie den folgenden cURL-Befehl auf dem alten Masterknoten ausführen:
    > curl -u sysAdminEmail:password http://<node_IP>:8084/v1/servers/self

    Die UUID des Knotens sollte am Ende der Ausgabe in folgendem Format angezeigt werden:
    "type" : [ "postgres-server" ],
    "uUID" : "599e8ebf-5d69-4ae4-aa71-154970a8ec75"


    Hinweis: Der Dienst edge-postgres-server muss ausgeführt werden. Wenn der Postgres-Server nicht ausgeführt wird, können Sie den folgenden Befehl auf dem Management Server ausführen, um die UUID zu ermitteln:
    > curl -u sysAdminEmail:password http://<ms_IP>:8080/v1/servers?pod=analytics

    Die Ausgabe dieses Befehls listet die UUID für die IP-Adresse jedes Postres-Knotens auf.
  9. Wiederholen Sie den vorherigen Schritt, um die IP-Adressen des alten Standby-Knotens und des neuen Primärknotens abzurufen.
  10. Entfernen Sie alte Master- und Standby-Knoten aus der Nutzergruppe:
    > 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

    Dabei sind axgroup-001 und consumer-group-001 die Standardnamen der Analyse- und Nutzergruppen. masterUUID,standbyUUID sind in derselben Reihenfolge wie oben, als Sie die aktuellen Informationen zur Analyse- und Consumer-Gruppe oben angesehen haben. Möglicherweise müssen Sie sie als standbyUUID,masterUUID angeben.

    Das Attribut datastores für consumer-groups sollte jetzt leer sein.
  11. Entfernen Sie die alten Master- und Standby-Knoten aus der Analysegruppe:
    > curl -u sysAdminEmail:password -X DELETE "http://<ms_IP>:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=masterUUID,standbyUUID&type=postgres-server" -v

    Das Attribut postgres-server unter uuids sollte jetzt leer sein.
  12. Registrieren Sie neue PG-Master- und Standby-Knoten bei den Analyse- und Nutzergruppen:
    > 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
  13. Validieren Sie die Analysegruppe:
    > curl -u sysAdminEmail:password http://<ms_IP>:8080/v1/analytics/groups/ax

    Sie sollten die UUIDs der neuen Master- und Standby-Knoten in der Analysegruppe und der Consumer-Gruppe sehen.
  14. Starten Sie den Edge Management Server neu:
    > /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
  15. Starten Sie alle Qpid-Server neu:
    > /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
  16. Starten Sie alle Postgres-Server neu:
    > /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
  17. Prüfen Sie den Replikationsstatus, indem Sie die folgenden Skripts auf beiden Servern ausführen. Das System sollte auf beiden Servern identische Ergebnisse anzeigen, um eine erfolgreiche Replikation zu gewährleisten:

    Führen Sie auf dem neuen Master Folgendes aus:
    > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master

    Prüfen Sie, ob es sich um den Master handelt.

    Auf dem alten Standby-Knoten:
    > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby

    Prüfen Sie, ob es sich um den Standby-Knoten handelt.
  18. Wiederholen Sie den vorherigen Schritt, nachdem Sie mehrere API-Anfragen gestellt haben, um sicherzustellen, dass die Knoten synchron sind.
  19. Nehmen Sie den alten Postgres-Master außer Betrieb. Folgen Sie dazu der Anleitung unter Apigee Edge 4.16.01/4.16.05 auf 4.17.05 aktualisieren.

    Hinweis: Wenn auf dem alten Masterknoten Qpid ausgeführt wurde, können Sie diesen Server für die Ausführung von Qpid beibehalten. Prüfen Sie, ob er ausgeführt wird. Wenn nicht, starten Sie ihn:
    > /opt/apigee/apigee-service/bin/apigee-service edge-management-server start

    Alternativ können Sie Qpid vom alten Master deinstallieren und Qpid auf dem neuen Masterknoten installieren, wie unten beschrieben. Nach der Deinstallation von Qpid können Sie den alten Masterknoten außer Betrieb nehmen.

Deinstallieren Sie Qpid auf dem alten Master und installieren Sie Qpid auf dem neuen Master.

Gehen Sie so vor, um Qpid vom alten Master zu deinstallieren und auf dem neuen Master zu installieren:

  1. Blockieren Sie den Zugriff auf den Qpid-Port 5672 auf dem alten Master durch Message Processors, indem Sie den folgenden Befehl auf allen Message Processors ausführen:
    > iptables -A OUTPUT -p tcp -d 10.233.147.20 --dport 5672 -j DROP
  2. Prüfen Sie mit dem folgenden Befehl, ob die Qpid-Nachrichtenwarteschlange leer ist. Sie können Qpid erst deinstallieren, wenn alle ausstehenden Nachrichten verarbeitet wurden:
    > qpid-stat -q

    Dieser Befehl zeigt eine Tabelle mit der Anzahl für msg, msgIn und msgOut an. Alle Nachrichten wurden verarbeitet, wenn msg=0 und msgIn=msgOut.
  3. Ermitteln Sie die UUID des Qpid-Servers auf dem alten Master, indem Sie den folgenden Befehl auf dem alten Master ausführen. Speichern Sie diese Informationen für später im Verfahren:
    > curl -u sysAdminEmail:password http://<node_IP>::8083/v1/servers/self
  4. Beenden Sie Qpid auf dem alten Master:
    > /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
    > /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd stop
  5. Deinstallieren Sie den Qpid-Server:
    > /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server uninstall
    > /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd uninstall
  6. Entfernen Sie den alten Qpid-Server aus den Analyse- und Nutzergruppen:
    > 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
  7. Entfernen Sie den alten Qpid-Server aus ZooKeeper:
    > curl -u sysAdminEmail:password -X DELETE http://<ms_IP>:8080/v1/servers/qpid_UUID
  8. Installieren Sie Qpid auf dem neuen Master:
    > /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile
  9. Ermitteln Sie die UUID des Qpid-Servers auf dem neuen Master, indem Sie den folgenden Befehl auf dem neuen Master ausführen. Speichern Sie diese Informationen für später im Verfahren:
    > curl -u sysAdminEmail:password http://<node_IP>::8083/v1/servers/self
  10. Registrieren Sie den neuen Qpid-Server bei den Analyse- und Nutzergruppen:
    > 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
  11. Starten Sie alle Message Processors neu:
    > /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  12. Führen Sie auf dem neuen Qpid-Server den folgenden Befehl aus, um zu prüfen, ob Warteschlangen erstellt wurden:
    > qpid-stat -q

    Achten Sie darauf, dass msg, msgIn und msgOut aktualisiert werden, wenn der Qpid-Server Nachrichten verarbeitet.

So führen Sie ein Rollback einzelner Komponenten von 4.17.05 durch:

Im Rahmen des Rollbacks müssen Sie die Datei „bootstrap.sh“ für Ihre aktuelle Edge-Version herunterladen:

  • Laden Sie für ein Rollback auf 4.17.01 bootstrap_4.17.01.sh herunter.
  • Laden Sie für ein Rollback auf 4.16.09 bootstrap_4.16.09.sh herunter.
  • Wenn Sie ein Rollback auf 4.16.05 durchführen möchten, laden Sie bootstrap_4.16.05.sh herunter.
  • Laden Sie bootstrap.sh herunter, um ein Rollback auf 4.16.01 durchzuführen.

Führen Sie für jeden Knoten, auf dem eine Komponente gehostet wird, die folgenden Schritte aus:

  1. Beenden Sie die Komponente, um ein Rollback auszuführen:
    1. Wenn Sie eine der folgenden Komponenten auf dem Knoten zurücksetzen, müssen Sie alle beenden: Management Server, Router, Message Processor, Qpid Server oder 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
    2. Wenn Sie ein Rollback für eine andere Komponente auf dem Knoten durchführen, beenden Sie nur diese Komponente:
      • > apigee-service comp stop
  2. Wenn Sie ein Rollback der Monetarisierung durchführen, deinstallieren Sie sie von allen Management Server- und Message Processor-Knoten:
    > apigee-service edge-mint-gateway uninstall
  3. Deinstallieren Sie die Komponente, um ein Rollback auf dem Knoten durchzuführen:
    1. Wenn Sie eine der folgenden Komponenten auf dem Knoten zurücksetzen, deinstallieren Sie sie alle: Management Server, Router, Message Processor, Qpid Server oder Postgres Server:
      > apigee-service edge-gateway uninstall
    2. Wenn Sie eine andere Komponente auf dem Knoten zurücksetzen, deinstallieren Sie nur diese Komponente:
      > apigee-service comp uninstall
    3. Wenn Sie ein Rollback des Routers durchführen, müssen Sie den Inhalt von /opt/nginx/conf.d löschen:
      > cd /opt/nginx/conf.d
      > rm -rf *
  4. So führen Sie ein Rollback der Komponente durch:
    1. Deinstallieren Sie die Version 4.17.05 von apigee-setup:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
    2. Laden Sie bootstrap.sh für die Version 4.16.01, 4.16.05, 4.16.09 oder 4.17.01 herunter:

      Beispiel für 4.16.09:
      > curl https://software.apigee.com/bootstrap_4.16.09.sh -o /tmp/bootstrap_4.16.09.sh
    3. Installieren Sie das Dienstprogramm apigee-service und die Abhängigkeiten der Version 4.16.01, 4.16.05 oder 4.16.09.

      Beispiel für 4.16.09:
      > sudo bash /tmp/bootstrap_4.16.09.sh apigeeuser=uName apigeepassword=pWord

      Dabei sind uName und pWord der Nutzername und das Passwort, die Sie von Apigee erhalten haben. Wenn Sie pWord weglassen, werden Sie aufgefordert, es einzugeben.
    4. Installieren Sie die Version 4.16.01, 4.16.05 oder 4.16.09 von apigee-setup:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-setup install
    5. Installieren Sie die Version 4.16.01, 4.16.05, 4.16.09 oder 4.17.01 der Komponente:
      > /opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile

      Dabei ist comp die zu installierende Komponente und configFile Ihre Konfigurationsdatei 4.16.01, 4.16.05 oder 4.16.09.
    6. Wenn Sie ein Rollback von Qpid durchführen, leeren Sie iptables:
      > sudo iptables -F
  5. So führen Sie ein Rollback der Komponente auf eine bestimmte Version des Release 4.17.05 durch:
    1. Laden Sie die spezifische Komponentenversion herunter:
      > /opt/apigee/apigee-service/bin/apigee-service comp-version install

      Dabei ist comp-version die zu installierende Komponente und Version. Beispiel:
      > /opt/apigee/apigee-service/bin/apigee-service edge-ui-4.17.05-0.0.3749 install

      Wenn Sie das Apigee-Online-Repository verwenden, können Sie die verfügbaren Komponentenversionen mit dem folgenden Befehl ermitteln:
      > yum --showduplicates list comp

      Beispiel:
      > yum --showduplicates list edge-ui
    2. Verwenden Sie apigee-setup, um die Komponente zu installieren:
      > /opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile

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

      Beachten Sie, dass Sie bei der Installation nur den Komponentennamen angeben.

Wenden Sie sich an den Apigee-Support, wenn beim Rollback Probleme auftreten.