Rollback für Apigee Edge 4.18.05 durchführen

Edge for Private Cloud v4.18.05

Wenn während einer Aktualisierung auf Edge 4.18.05 ein Fehler auftritt, können Sie ein Rollback der Komponente durchführen, die den Fehler verursacht hat, und dann die Aktualisierung wiederholen.

Sie können für Edge 4.18.05 ein Rollback auf die folgenden Feature Release-Versionen durchführen:

  • Version
  • Version 4.17.09*
  • Version 4.17.05*

* Für ein Rollback von 4.18.05 auf 4.17.09 oder 4.17.05 müssen Sie nicht nur die Komponenten auf jedem Knoten, sondern auch ein Rollback von Postgres durchführen. Wenn Sie ein Rollback auf 4.18.01 durchführen, müssen Sie kein Rollback für Postgres durchführen, da der Upgradeprozess kein Postgres-Update umfasst.

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

  1. Führen Sie ein Rollback auf einen früheren Funktionsrelease durch. Beispiel: 4.18.05 bis 4.18.01.
  2. Führen Sie ein Rollback auf eine frühere Update-Version im selben Release durch. Beispiel: von 4.18.05.02 bis 4.18.05.01.

Weitere Informationen finden Sie unter Apigee Edge-Release-Prozess.

Wer kann ein Rollback durchführen?

Der Nutzer, der ein Rollback durchführt, sollte der 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 Benutzer aus. Wenn der Router beispielsweise auf privilegierte Ports zugreifen muss, z. B. auf Ports unter 1.000, muss er als Root oder als Nutzer mit Zugriff auf diese Ports ausgeführt werden. Oder Sie führen eine Komponente als ein Nutzer und eine andere als einen anderen Nutzer aus.

Komponenten mit gemeinsam genutztem Code

Die folgenden Edge-Komponenten verwenden denselben Code. Wenn Sie also für eine der Komponenten auf einem Knoten ein Rollback durchführen möchten, müssen Sie das Rollback für alle Komponenten auf diesem Knoten durchführen.

  • edge-management-server (Verwaltungsserver)
  • edge-message-processor (Nachrichtenprozessor)
  • edge-router (Router)
  • edge-postgres-server (Postgres-Server)
  • edge-qpid-server (Qpid-Server)

Wenn beispielsweise der Verwaltungsserver, der Router und der Message Processor auf dem Knoten installiert sind, müssen Sie für alle drei ein Rollback durchführen, um ein Rollback durchzuführen.

Rollback auf einen früheren Funktionsrelease durchführen

Für ein Rollback von 4.18.05 auf 4.17.09 oder 4.17.05 müssen Sie nicht nur die Komponenten auf jedem Knoten, sondern auch ein Rollback von Postgres durchführen. Wenn Sie ein Rollback von 4.18.01 durchführen, müssen Sie kein Rollback für Postgres durchführen, da der Upgradeprozess kein Postgres-Update enthielt.

Wenn Sie zu einem vorherigen Feature-Release zurückkehren möchten, führen Sie auf jedem Knoten, auf dem die Komponente gehostet wird, folgende Schritte aus:

  1. Laden Sie die Datei bootstrap.sh für die Version herunter, auf die Sie das Rollback durchführen möchten:

    • Für ein Rollback auf 4.18.01 laden Sie bootstrap_4.18.01.sh herunter:
      curl https://software.apigee.com/bootstrap_4.18.01.sh -o /tmp/bootstrap_4.18.01.sh 
    • Für ein Rollback auf 4.17.09 laden Sie bootstrap_4.17.09.sh herunter:
      curl https://software.apigee.com/bootstrap_4.17.09.sh -o /tmp/bootstrap_4.17.09.sh 
    • Für ein Rollback auf 4.17.05 laden Sie bootstrap_4.17.05.sh herunter:
      curl https://software.apigee.com/bootstrap_4.17.05.sh -o /tmp/bootstrap_4.17.05.sh 
  2. Beenden Sie die Komponente für das Rollback:
    1. Wenn Sie für eine der Komponenten mit gemeinsamem Code auf dem Knoten ein Rollback durchführen möchten, müssen Sie sie alle beenden, wie im folgenden Beispiel gezeigt:
      /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. Wenn Sie für eine andere Komponente auf dem Knoten ein Rollback durchführen möchten, beenden Sie nur diese Komponente:
      • /opt/apigee/apigee-service/bin/apigee-service component stop
  3. Wenn Sie die Monetarisierung zurücksetzen möchten, deinstallieren Sie sie auf allen Verwaltungsserver- und Nachrichtenprozessor-Knoten:
    /opt/apigee/apigee-service/bin/apigee-service edge-mint-gateway uninstall
  4. Deinstallieren Sie die Komponente, um ein Rollback auf den Knoten durchzuführen:
    1. Wenn Sie für eine der Komponenten mit gemeinsamem Code auf dem Knoten ein Rollback durchführen möchten, müssen Sie sie alle deinstallieren. Dazu deinstallieren Sie die Komponentengruppe edge-gateway wie im folgenden Beispiel gezeigt:
      /opt/apigee/apigee-service/bin/apigee-service edge-gateway uninstall
    2. Um ein Rollback einer anderen Komponente auf dem Knoten durchzuführen, deinstallieren Sie nur diese Komponente, wie im folgenden Beispiel gezeigt:
      /opt/apigee/apigee-service/bin/apigee-service component uninstall

      Dabei ist component der Komponentenname.

    3. Für das Rollback von Edge Router müssen Sie nicht nur die Komponentengruppe edge-gateway deinstallieren, sondern auch den Inhalt der Datei /opt/nginx/conf.d löschen:
      cd /opt/nginx/conf.d
      rm -rf *
  5. Deinstallieren Sie Version 4.18.05 von apigee-setup:
    /opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
  6. Installieren Sie die Version 4.18.01, 4.17.09 oder 4.17.05 des Dienstprogramms apigee-service und die zugehörigen Abhängigkeiten. Im folgenden Beispiel wird Version 4.17.09 von apigee-service installiert:
    sudo bash /tmp/bootstrap_4.17.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, ihn einzugeben.

    Wenn Sie eine Fehlermeldung erhalten, prüfen Sie, ob Sie die Datei bootstrap.sh in Schritt 1 heruntergeladen haben.

  7. apigee-setup installieren:
    /opt/apigee/apigee-service/bin/apigee-service apigee-setup install
  8. Installieren Sie die ältere Version der Komponente:
    /opt/apigee/apigee-setup/bin/setup.sh -p component -f configFile

    Dabei ist component die zu installierende Komponente und configFile die Konfigurationsdatei für die ältere Version.

  9. Wenn Sie ein Rollback von Qpid durchführen, leeren Sie iptables:
    sudo iptables -F
  10. Wiederholen Sie diesen Vorgang für jeden Knoten, auf dem die Komponente gehostet wird, für die Sie ein Rollback durchführen möchten.

Für ein Rollback von 4.18.05 auf 4.17.09 oder 4.17.05 müssen Sie nicht nur die Komponenten auf jedem Knoten, sondern auch ein Rollback von Postgres durchführen. Wenn Sie ein Rollback von 4.18.01 durchführen, müssen Sie kein Rollback für Postgres durchführen, da der Upgradeprozess kein Postgres-Update enthielt.

Rollback auf eine vorherige Updateversion durchführen

Wenn Sie für eine Komponente ein Rollback auf eine bestimmte Version eines Release durchführen möchten, führen Sie auf jedem Knoten, auf dem die Komponente gehostet wird, folgende Schritte aus:

  1. Laden Sie die spezifische Komponentenversion herunter:
    /opt/apigee/apigee-service/bin/apigee-service component_version install

    Dabei ist component_version die zu installierende Komponente und die zu installierende Version. Beispiel:

    /opt/apigee/apigee-service/bin/apigee-service edge-ui-4.17.09-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. Verwende 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, nicht die Version.

  3. Wiederholen Sie diesen Vorgang für jeden Knoten, auf dem die Komponente gehostet wird, für die Sie ein Rollback durchführen möchten.

Für ein Rollback von 4.18.05 auf 4.17.09 oder 4.17.05 müssen Sie nicht nur die Komponenten auf jedem Knoten, sondern auch ein Rollback von Postgres durchführen. Wenn Sie ein Rollback von 4.18.01 durchführen, müssen Sie kein Rollback für Postgres durchführen, da der Upgradeprozess kein Postgres-Update enthielt.

Rollback für Postgres 9.6-Update durchführen

Wenn Sie von Version 4.17.05 oder 4.17.09 ein Upgrade auf 4.18.05 durchgeführt haben, müssen Sie zusätzlich zu den Edge-Komponenten ein Rollback für das Postgres-Update durchführen.

So führen Sie ein Rollback des Postgres-Updates durch, wenn Postgres in einer Master-Standby-Konfiguration aktualisiert wird:

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

Wenn Sie das Rollback abgeschlossen haben, ist der alte Masterknoten nicht mehr erforderlich. Anschließend können Sie den alten Masterknoten außer Betrieb nehmen.

  1. Achten Sie darauf, dass der neue Stand-by-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. Achten Sie darauf, dass Postgres auf dem alten Masterknoten und dem alten Stand-by-Knoten angehalten 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 dies installiert ist, starten Sie Qpid auf dem alten Standby-Knoten:
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server start
  4. Stufen Sie den neuen Standby-Knoten als 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 Benutzer „apigee“ ein, der standardmäßig „postgres“ lautet.

    2. Bearbeiten Sie die Konfigurationsdatei, mit der Sie Ihre aktuelle Version von Edge installiert 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 Standby-Knoten neu:
    1. Bearbeiten Sie die Konfigurationsdatei, mit der Sie Ihre aktuelle Version von Edge installiert 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 neu als Standby-Knoten des neuen Masters:
      /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 er nicht ausgeführt wird, starten Sie ihn:

      /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 Analyse- und Verbrauchergruppeninformationen auf. Führen Sie dazu den folgenden Befehl auf dem Verwaltungsserver aus:
    curl -u sysAdminEmail:password http://ms_IP:8080/v1/analytics/groups/ax

    Dieser Befehl gibt den Analysegruppennamen im Feld name und den Namen der Verbrauchergruppe 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. Sie sollten die Ausgabe im folgenden Format sehen:

    {
      "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. Führen Sie dazu den folgenden curl-Befehl auf dem alten Masterknoten aus:
    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"
  9. Wiederholen Sie den vorherigen Schritt, um die IP-Adressen des alten Standby-Knotens und des neuen Masters abzurufen.
  10. Entfernen Sie den alten 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 befinden sich in der gleichen Reihenfolge wie oben beim Anzeigen der aktuellen Analyse- und Verbrauchergruppeninformationen oben. Möglicherweise müssen Sie sie als standbyUUID,masterUUID angeben.

    Das Attribut datastores für consumer-groups sollte jetzt leer sein.

  11. Entfernen Sie den 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

    Die Eigenschaft 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. Prüfen Sie die Analysegruppe:
    curl -u sysAdminEmail:password http://ms_IP:8080/v1/analytics/groups/ax

    Die UUIDs der neuen Master- und Standby-Knoten sollten in der Analysegruppe und der Nutzergruppe aufgeführt sein.

  14. Starten Sie den Edge-Verwaltungsserver 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. Überprü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 folgenden Befehl 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-Modus handelt.

  18. Wiederholen Sie den vorherigen Schritt nach mehreren API-Anfragen, um zu prüfen, ob die Knoten synchron sind.
  19. außer Betrieb nehmen

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

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

So deinstallieren Sie Qpid vom alten Master und installieren es auf dem neuen Master:

  1. Blockieren Sie den Zugriff auf Qpid-Port 5672 des alten Masters für den Zugriff von Message Processorn, indem Sie den folgenden Befehl auf allen Message Processorn ausführen:
    iptables -A OUTPUT -p tcp -d 10.233.147.20 --dport 5672 -j DROP
  2. Stellen Sie sicher, dass die Qpid-Nachrichtenwarteschlange leer ist, indem Sie den folgenden Befehl ausführen. Sie können Qpid erst deinstallieren, wenn alle ausstehenden Nachrichten verarbeitet wurden:
    qpid-stat -q

    Dieser Befehl zeigt eine Tabelle mit einer Anzahl für msg, msgIn, and 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 folgende Informationen für später:
    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. Qpid-Server deinstallieren:
    /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 folgende Informationen für später:
    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 Nachrichtenprozessoren neu:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  12. Führen Sie den folgenden Befehl auf dem neuen Qpid-Server aus, um zu prüfen, ob Warteschlangen erstellt wurden:
    qpid-stat -q

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

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