Rollback für Apigee Edge 4.19.01 durchführen

Edge for Private Cloud v4.19.01

Wenn während eines Updates auf Edge 4.19.01 ein Fehler auftritt, können Sie ein Rollback der Komponente durchführen, die den Fehler verursacht hat, und das Update dann noch einmal versuchen.

Sie können ein Rollback von Edge 4.19.01 auf die folgenden Feature-Release-Versionen durchführen:

  • Version 4.18.05
  • Version 4.18.01
  • Version 4.17.09*

* Wenn Sie ein Rollback von 4.19.01 auf 4.17.09 durchführen möchten, müssen Sie zusätzlich zum Rollback der Komponenten auf jedem Knoten ein Rollback von Postgres durchführen. Wenn Sie ein Rollback auf 4.18.01 oder 4.18.05 durchführen, müssen Sie kein Rollback für Postgres durchführen, da der Upgradevorgang kein Postgres-Update enthielt.

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

  1. Rollback zu einem vorherigen Feature-Release durchführen Beispiel: von 4.19.01 auf 4.18.05.
  2. Rollback auf eine vorherige Updateversion im selben Release durchführen. Beispiel: von 4.19.01.02 auf 4.19.01.01.

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

Wer kann ein Rollback ausführen?

Der Nutzer, der ein Rollback durchfü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.

Komponenten mit gemeinsamem Code

Die folgenden Edge-Komponenten verwenden gemeinsamen Code. Wenn Sie also eine dieser Komponenten auf einem Knoten zurücksetzen möchten, müssen Sie alle diese Komponenten auf diesem Knoten zurücksetzen.

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

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.

Rollback zu einem vorherigen Feature-Release durchführen

Wenn Sie ein Rollback von 4.19.01 auf 4.17.09 durchführen möchten, müssen Sie zusätzlich zum Rollback der Komponenten auf jedem Knoten ein Rollback von Postgres durchführen. Wenn Sie ein Rollback von 4.18.01 oder 4.18.05 durchführen, müssen Sie kein Rollback für Postgres durchführen, da der Upgradevorgang kein Postgres-Update enthielt.

So führen Sie ein Rollback zu einem vorherigen Feature Release durch:

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

    • Laden Sie bootstrap_4.18.05.sh herunter, um ein Rollback auf 4.18.05 durchzuführen:
      curl https://software.apigee.com/bootstrap_4.18.05.sh -o /tmp/bootstrap_4.18.05.sh 
    • Laden Sie bootstrap_4.18.01.sh herunter, um ein Rollback auf 4.18.01 durchzuführen:
      curl https://software.apigee.com/bootstrap_4.18.01.sh -o /tmp/bootstrap_4.18.01.sh 
    • Laden Sie bootstrap_4.17.09.sh herunter, um ein Rollback auf 4.17.09 durchzuführen:
      curl https://software.apigee.com/bootstrap_4.17.09.sh -o /tmp/bootstrap_4.17.09.sh 
  2. Beenden Sie die Komponente, um ein Rollback auszuführen:
    1. Wenn Sie eine der Komponenten mit gemeinsamem Code auf dem Knoten zurücksetzen möchten, müssen Sie alle Komponenten 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 eine andere Komponente auf dem Knoten zurücksetzen möchten, beenden Sie nur diese Komponente:
      • /opt/apigee/apigee-service/bin/apigee-service component stop
  3. Wenn Sie ein Rollback der Monetarisierung durchführen, deinstallieren Sie sie von allen Management Server- und Message Processor-Knoten:
    /opt/apigee/apigee-service/bin/apigee-service edge-mint-gateway uninstall
  4. Deinstallieren Sie die Komponente, um ein Rollback auf dem Knoten durchzuführen:
    1. Wenn Sie eine der Komponenten mit gemeinsamem Code auf dem Knoten zurücksetzen möchten, müssen 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. Wenn Sie eine andere Komponente auf dem Knoten zurücksetzen möchten, deinstallieren Sie nur diese Komponente, wie im folgenden Beispiel gezeigt:
      /opt/apigee/apigee-service/bin/apigee-service component uninstall

      Dabei ist component der Name der Komponente.

    3. Wenn Sie ein Rollback für Edge Router durchführen möchten, müssen Sie zusätzlich zur Deinstallation der Komponentengruppe edge-gateway den Inhalt der Datei /opt/nginx/conf.d löschen:
      cd /opt/nginx/conf.d
      rm -rf *
  5. Deinstallieren Sie die Version 4.19.01 von apigee-setup:
    /opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
  6. Installieren Sie die Version 4.18.05, 4.18.01 oder 4.17.09 des Dienstprogramms apigee-service und die zugehörigen Abhängigkeiten. Im folgenden Beispiel wird die Version 4.17.09 des 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, es einzugeben.

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

  7. Installieren Sie apigee-setup:
    /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 ausführen.

Wenn Sie ein Rollback von 4.19.01 auf 4.17.09 durchführen möchten, müssen Sie zusätzlich zum Rollback der Komponenten auf jedem Knoten ein Rollback von Postgres durchführen. Wenn Sie ein Rollback von 4.18.01 oder 4.18.05 durchführen, müssen Sie kein Rollback für Postgres durchführen, da der Upgradevorgang kein Postgres-Update enthielt.

Rollback zu einer vorherigen Updateversion durchführen

So setzen Sie eine Komponente auf eine bestimmte Version eines Releases zurück: Führen Sie auf jedem Knoten, auf dem die Komponente gehostet wird, die folgenden Schritte aus:

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

    Dabei ist component_version die zu installierende Komponente und Updateversion. 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. 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, nicht die Version.

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

Wenn Sie ein Rollback von 4.19.01 auf 4.17.09 durchführen möchten, müssen Sie zusätzlich zum Rollback der Komponenten auf jedem Knoten ein Rollback von Postgres durchführen. Wenn Sie ein Rollback von 4.18.01 oder 4.18.05 durchführen, müssen Sie kein Rollback für Postgres durchführen, da der Upgradevorgang kein Postgres-Update enthielt.

Rollback für das Postgres 9.6-Update ausführen

Wenn Sie von Version 4.17.09 auf 4.19.01 aktualisiert haben, müssen Sie zusätzlich zu den Edge-Komponenten ein Rollback des Postgres-Updates durchführen.

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. Falls installiert, starten Sie Qpid auf dem alten Stand-by-Knoten:
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server start
  4. Stufen Sie den neuen Standby-Knoten zum Postgres-Master hoch:
    1. Stufen Sie den neuen Stand-by-Knoten zum neuen Master hoch:
      apigee-service apigee-postgresql promote-standby-to-master new_standby_IP

      Geben Sie das Postgres-Passwort für den Nutzer „apigee“ ein, wenn Sie dazu aufgefordert werden. Der Standardwert ist „postgres“.

    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 Standby-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 als Standby-Knoten des neuen Masters neu:
      /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. Rufen Sie dazu die Datei /opt/apigee/apigee-postgresql/conf/pg_hba.conf auf dem neuen Master auf.
  7. Führen Sie den folgenden Befehl auf dem Management Server aus, um die aktuellen Informationen zur Analyse und zur Consumer-Gruppe aufzurufen:
    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 so aussehen:

    {
      "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 Primärknotens ab, indem Sie den folgenden curl-Befehl auf dem alten Primärknoten ausführen:
    curl -u sysAdminEmail:password http://node_IP:8084/v1/servers/self

    Am Ende der Ausgabe sollte die UUID des Knotens 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 Primärknotens abzurufen.
  10. Entfernen Sie die 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. Die masterUUID,standbyUUID sind in derselben Reihenfolge wie oben, als Sie die aktuellen Analyse- und Nutzergruppeninformationen 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

    Die UUIDs der neuen Master- und Standby-Knoten sollten in der Analyse- und der Consumer-Gruppe aufgeführt sein.

  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 den 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 Stand-by-Knoten:

    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby

    Prüfen Sie, ob der Status „Standby“ lautet.

  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.09 aktualisieren.

    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.

Qpid auf dem alten Master deinstallieren und auf dem neuen Master installieren

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

  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

    Mit diesem Befehl wird eine Tabelle mit der Anzahl für msg, msgIn, and msgOut angezeigt. 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:
    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:
    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 den folgenden Befehl auf dem neuen Qpid-Server aus, um zu prüfen, ob Warteschlangen erstellt wurden:
    qpid-stat -q

    Prüfen Sie, ob msg, msgIn und msgOut aktualisiert werden, wenn der Qpid-Server Nachrichten verarbeitet.

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