Cofanie zmian w Apigee Edge 4.18.05

Edge for Private Cloud w wersji 4.18.05

Jeśli podczas aktualizacji do Edge 4.18.05 napotkasz błąd, możesz przywrócić komponent, który spowodował błąd, i spróbować ponownie przeprowadzić aktualizację.

W przeglądarce Edge 4.18.05 możesz przywrócić te wersje nowych funkcji:

  • Wersja 4.18.01
  • Wersja 4.17.09*
  • Wersja 4.17.05*

* Aby wycofać zmiany z wersji 4.18.05 na 4.17.09 lub 4.17.05, oprócz przywrócenia komponentów w każdym węźle musisz przywrócić Postgres. Jeśli wrócisz do wersji 4.18.01, nie musisz wycofywać Postgres, ponieważ proces uaktualniania nie zawierał aktualizacji Postgres.

Są 2 sytuacje, w których warto przeprowadzić przywrócenie:

  1. Przywracanie poprzedniej wersji funkcji Na przykład od 4.18.05 do 4.18.01.
  2. Przywracanie poprzedniej wersji aktualizacji tej samej wersji. Na przykład od 4.18.05.02 do 4.18.05.01.

Więcej informacji znajdziesz w artykule o procesie publikowania Apigee Edge.

Kto może przywracać zmiany

Użytkownik wykonujący przywracanie musi być taki sam jak użytkownik, który pierwotnie zaktualizował Edge, lub użytkownik root.

Domyślnie komponenty Edge są uruchamiane jako użytkownik „apigee”. W niektórych przypadkach komponenty Edge mogą być używane jako różni użytkownicy. Jeśli na przykład router musi mieć dostęp do portów z podwyższonymi uprawnieniami, takich jak te poniżej 1000, musisz uruchomić router jako użytkownik root lub jako użytkownik z dostępem do tych portów. Możesz też uruchomić jeden komponent jako jeden użytkownik, a drugi jako inny użytkownik.

Komponenty ze wspólnym kodem

Poniższe komponenty Edge mają wspólny kod. Dlatego, aby wycofać dowolny z tych komponentów w węźle, musisz przywrócić wszystkie te komponenty, które znajdują się w tym węźle.

  • edge-management-server (serwer zarządzania)
  • edge-message-processor (procesor wiadomości)
  • edge-router (router)
  • edge-postgres-server (serwer Postgres)
  • edge-qpid-server (serwer Qpid)

Jeśli na przykład w węźle zainstalowano serwer zarządzania, router i procesor wiadomości, to aby przywrócić dowolny z nich, musisz przywrócić wszystkie 3 z nich.

Przywracanie poprzedniej wersji funkcji

Aby wycofać zmiany z wersji 4.18.05 na 4.17.09 lub 4.17.05, oprócz przywrócenia komponentów w każdym węźle musisz przywrócić Postgres. Jeśli cofniesz wersję 4.18.01, nie musisz tego robić, ponieważ proces uaktualniania nie zawierał aktualizacji Postgres.

Aby przywrócić poprzednią wersję funkcji, wykonaj te czynności w każdym węźle hostującym komponent:

  1. Pobierz plik bootstrap.sh odpowiadający wersji, do której chcesz przywrócić poprzednią wersję:

    • Aby przywrócić wersję 4.18.01, pobierz bootstrap_4.18.01.sh:
      curl https://software.apigee.com/bootstrap_4.18.01.sh -o /tmp/bootstrap_4.18.01.sh 
    • Aby przywrócić wersję 4.17.09, pobierz bootstrap_4.17.09.sh:
      curl https://software.apigee.com/bootstrap_4.17.09.sh -o /tmp/bootstrap_4.17.09.sh 
    • Aby przywrócić wersję 4.17.05, pobierz bootstrap_4.17.05.sh:
      curl https://software.apigee.com/bootstrap_4.17.05.sh -o /tmp/bootstrap_4.17.05.sh 
  2. Zatrzymaj komponent, aby przywrócić poprzednią wersję:
    1. Aby wycofać dowolny komponent ze wspólnym kodem w węźle, musisz zatrzymać je wszystkie, jak pokazano w tym przykładzie:
      /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. Aby wycofać dowolny inny komponent w węźle, zatrzymaj tylko ten komponent:
      • /opt/apigee/apigee-service/bin/apigee-service component stop
  3. Jeśli przywracasz poprzednią wersję funkcji Generowanie przychodu, odinstaluj ją ze wszystkich węzłów serwera zarządzania i procesora wiadomości:
    /opt/apigee/apigee-service/bin/apigee-service edge-mint-gateway uninstall
  4. Odinstaluj komponent, aby wycofać zmiany w węźle:
    1. Aby wycofać dowolny z komponentów ze wspólnym kodem w węźle, musisz je wszystkie odinstalować, odinstalowując grupę komponentów edge-gateway, jak pokazano w tym przykładzie:
      /opt/apigee/apigee-service/bin/apigee-service edge-gateway uninstall
    2. Aby wycofać dowolny inny komponent w węźle, odinstaluj tylko ten komponent zgodnie z tym przykładem:
      /opt/apigee/apigee-service/bin/apigee-service component uninstall

      Gdzie component to nazwa komponentu.

    3. Aby wycofać zmiany z routera Edge, oprócz odinstalowania grupy komponentów edge-gateway musisz usunąć zawartość pliku /opt/nginx/conf.d:
      cd /opt/nginx/conf.d
      rm -rf *
  5. Odinstaluj wersję 4.18.05 apigee-setup:
    /opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
  6. Zainstaluj wersję 4.18.01, 4.17.09 lub 4.17.05 narzędzia apigee-service i jego zależności. Ten przykład pokazuje zainstalowanie wersji 4.17.09 klucza apigee-service:
    sudo bash /tmp/bootstrap_4.17.09.sh apigeeuser=uName apigeepassword=pWord

    Gdzie uName i pWord to nazwa użytkownika i hasło otrzymane z Apigee. Jeśli pominiesz właściwość pWord, poprosimy Cię o jej podanie.

    Jeśli pojawi się błąd, sprawdź, czy w kroku 1 został pobrany plik bootstrap.sh.

  7. Zainstaluj apigee-setup:
    /opt/apigee/apigee-service/bin/apigee-service apigee-setup install
  8. Zainstaluj starszą wersję komponentu:
    /opt/apigee/apigee-setup/bin/setup.sh -p component -f configFile

    Gdzie component to komponent do zainstalowania, a configFile to plik konfiguracji dla starszej wersji.

  9. Jeśli przywracasz Qpid, wyczyść iptables:
    sudo iptables -F
  10. Powtórz ten proces dla każdego węzła hostującego przywracany komponent.

Aby wycofać zmiany z wersji 4.18.05 na 4.17.09 lub 4.17.05, oprócz przywrócenia komponentów w każdym węźle musisz przywrócić Postgres. Jeśli cofniesz wersję 4.18.01, nie musisz tego robić, ponieważ proces uaktualniania nie zawierał aktualizacji Postgres.

Przywracanie poprzedniej wersji aktualizacji

Aby przywrócić komponent do określonej wersji wersji, w każdym węźle, który hostuje komponent, wykonaj te czynności:

  1. Pobierz konkretną wersję komponentu:
    /opt/apigee/apigee-service/bin/apigee-service component_version install

    Gdzie component_version to komponent i wersja aktualizacji do zainstalowania. Na przykład:

    /opt/apigee/apigee-service/bin/apigee-service edge-ui-4.17.09-0.0.3749 install

    Jeśli używasz repozytorium online Apigee, możesz sprawdzić dostępne wersje komponentów za pomocą tego polecenia:

    yum --showduplicates list comp

    Na przykład:

    yum --showduplicates list edge-ui
  2. Aby zainstalować komponent, użyj narzędzia apigee-setup:
    /opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile

    Na przykład:

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

    Pamiętaj, że podczas instalacji podajesz tylko nazwę komponentu, a nie wersję.

  3. Powtórz ten proces dla każdego węzła hostującego przywracany komponent.

Aby wycofać zmiany z wersji 4.18.05 na 4.17.09 lub 4.17.05, oprócz przywrócenia komponentów w każdym węźle musisz przywrócić Postgres. Jeśli cofniesz wersję 4.18.01, nie musisz tego robić, ponieważ proces uaktualniania nie zawierał aktualizacji Postgres.

Cofanie aktualizacji Postgres 9.6

W przypadku uaktualnienia do wersji 4.18.05 z wersji 4.17.05 lub 4.17.09 musisz wycofać aktualizację Postgres nie tylko z komponentami Edge.

Aby wycofać aktualizację Postgres podczas aktualizowania Postgres w konfiguracji gotowości głównej:

  • Awansuj nowy węzeł gotowości na status mastera Postgres. Nowy master Postgres będzie w tej samej wersji co poprzednia instalacja Edge.
  • Skonfiguruj stary węzeł gotowości jako węzeł gotowości dla nowego węzła głównego. Stary węzeł gotowości będzie w tej samej wersji co poprzednia instalacja Edge.
  • Zarejestruj nowe węzły główne i zapasowe w grupach analitycznych i konsumentów.

Po zakończeniu przywracania stary węzeł nadrzędny nie będzie już potrzebny. Możesz wtedy wyłączyć stary węzeł nadrzędny.

  1. Sprawdź, czy nowy węzeł gotowości Postgres jest uruchomiony:
    /opt/apigee/apigee-service/bin/apigee-all status

    Jeśli Postgres nie jest uruchomiony, uruchom go:

    /opt/apigee/apigee-service/bin/apigee-all start
  2. Upewnij się, że w starym węźle głównym i starym węźle gotowości jego usługa Postgres jest zatrzymana:
    /opt/apigee/apigee-service/bin/apigee-all status

    Jeśli Postgres jest uruchomiony, zatrzymaj go:

    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop

  3. Jeśli moduł Qpid został zainstalowany, uruchom go w starym węźle gotowości:
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server start
  4. Awansuj nowy węzeł gotowości jako węzeł główny Postgres:
    1. Wyznacz nowy węzeł gotowości na nowy węzeł nadrzędny:
      apigee-service apigee-postgresql promote-standby-to-master new_standby_IP

      Jeśli pojawi się prośba, wpisz hasło użytkownika „apigee” do Postgres. Wartością domyślną jest „postgres”.

    2. Edytuj plik konfiguracyjny użyty do zainstalowania bieżącej wersji Edge, aby określić następujące ustawienia:
      # IP address of the new master:
      PG_MASTER=new_standby_IP
      # IP address of the old standby node
      PG_STANDBY=old_standby_IP
    3. Skonfiguruj nowy wzorzec:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFile
  5. Ponownie utwórz stary węzeł gotowości:
    1. Edytuj plik konfiguracyjny użyty do zainstalowania bieżącej wersji Edge, aby określić następujące ustawienia:
      # IP address of the new master:
      PG_MASTER=new_standby_IP
      # IP address of the old standby node
      PG_STANDBY=old_standby_IP
    2. Usuń katalog danych w starym węźle gotowości:
      cd /opt/apigee/data/apigee-postgresql/pgdata > rm -rf *
    3. Skonfiguruj ponownie stary węzeł gotowości jako węzeł gotowości dla nowego węzła głównego:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
    4. Upewnij się, że Postgres działa w starym węźle gotowości:
      /opt/apigee/apigee-service/bin/apigee-all status

      Jeśli nie jest uruchomiony, uruchom go:

      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server start
  6. Sprawdź, czy został dodany nowy węzeł gotowości, wyświetlając plik /opt/apigee/apigee-postgresql/conf/pg_hba.conf w nowym masterze.
  7. Wyświetl bieżące statystyki i informacje o grupie klientów, uruchamiając na serwerze zarządzania to polecenie:
    curl -u sysAdminEmail:password http://ms_IP:8080/v1/analytics/groups/ax

    To polecenie zwraca nazwę grupy Analytics w polu name oraz nazwę grupy konsumentów w polu name w sekcji consumer-groups. Zwraca też identyfikatory UUID starego węzła głównego Postgres i węzłów gotowości w polach postgres-server i datastores. Dane wyjściowe powinny mieć postać:

    {
      "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. Uzyskaj adres UUID starego węzła głównego, uruchamiając na nim to polecenie curl:
    curl -u sysAdminEmail:password http://node_IP:8084/v1/servers/self

    Identyfikator UUID węzła powinien pojawić się na końcu danych wyjściowych w formacie:

    "type" : [ "postgres-server" ],
    "uUID" : "599e8ebf-5d69-4ae4-aa71-154970a8ec75"
  9. Powtórz poprzedni krok, aby uzyskać adresy IP starego węzła gotowości i nowego węzła głównego.
  10. Usuń z grupy klientów stare węzły główne i gotowości:
    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

    Gdzie axgroup-001 i consumer-group-001 to domyślne nazwy grup użytkowników i analityki. Kolejność masterUUID,standbyUUID jest taka sama jak powyżej podczas wyświetlania bieżących statystyk i informacji o grupie klientów. Być może trzeba będzie określić je jako standbyUUID,masterUUID.

    Właściwość datastores elementu consumer-groups powinna być teraz pusta.

  11. Usuń z grupy analityki Analytics stary węzeł główny i węzeł gotowości:
    curl -u sysAdminEmail:password -X DELETE \
      "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=masterUUID,standbyUUID&type=postgres-server" -v

    Właściwość postgres-server w polu uuids powinna być teraz pusta.

  12. Zarejestruj nowe węzły główne i zapasowe PG w grupach analitycznych i konsumentów:
    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. Zweryfikuj grupę analityczną:
    curl -u sysAdminEmail:password http://ms_IP:8080/v1/analytics/groups/ax

    Powinny się wyświetlić identyfikatory UUID nowych węzłów głównych i gotowości na liście w grupie analityki i grupie konsumentów.

  14. Ponownie uruchom serwer zarządzania brzegowymi:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
  15. Uruchom ponownie wszystkie serwery Qpid:
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
  16. Uruchom ponownie wszystkie serwery Postgres:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
  17. Sprawdź stan replikacji, uruchamiając te skrypty na obu serwerach. System powinien wyświetlać identyczne wyniki na obu serwerach, aby zapewnić prawidłową replikację:

    Na nowym wzorcu uruchom polecenie:

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

    Potwierdź, że jest oznaczony jako master. W starym węźle gotowości:

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

    Potwierdź, że jest w trybie gotowości.

  18. Po wykonaniu kilku żądań do interfejsu API powtórz poprzedni krok, aby upewnić się, że węzły są zsynchronizowane.
  19. Usuń starego mastera Postgres, wykonując procedurę aktualizacji Apigee Edge z wersji 4.16.01/4.16.05 do 4.17.09.

    Możesz też odinstalować Qpid ze starego głównego węzła i zainstalować Qpid w nowym węźle głównym. Po odinstalowaniu Qpid możesz wyłączyć stary węzeł główny.

Odinstaluj Qpid ze starego mastera i zainstaluj Qpid na nowym

Aby odinstalować Qpid ze starego mastera i zainstalować go w nowym:

  1. Zablokuj dostęp firmom przetwarzającym wiadomości do portu Qpid 5672 w starym masterze, uruchamiając to polecenie we wszystkich procesorach wiadomości:
    iptables -A OUTPUT -p tcp -d 10.233.147.20 --dport 5672 -j DROP
  2. Sprawdź, czy kolejka wiadomości Qpid jest pusta, uruchamiając poniższe polecenie. Nie możesz odinstalować Qpid, dopóki nie przetworzy on wszystkich oczekujących wiadomości:
    qpid-stat -q

    To polecenie wyświetla tabelę z liczbą zdarzeń msg, msgIn, and msgOut. Wszystkie wiadomości zostaną przetworzone w dniach msg=0 i msgIn=msgOut.

  3. Ustal identyfikator UUID serwera Qpid na starym masterze, uruchamiając następujące polecenie na starym masterze. Zapisz te informacje na później:
    curl -u sysAdminEmail:password http://node_IP::8083/v1/servers/self
  4. Zatrzymaj Qpid na starym masterze:
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
    /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd stop
  5. Odinstaluj serwer Qpid:
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server uninstall
    /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd uninstall
  6. Usuń stary serwer Qpid z grup analitycznych i grup konsumentów:
    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. Usuń stary serwer Qpid z Zookeeper:
    curl -u sysAdminEmail:password -X DELETE \
      http://ms_IP:8080/v1/servers/qpid_UUID
  8. Zainstaluj Qpid w nowym masterze:
    /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile
  9. Określ identyfikator UUID serwera Qpid w nowym masterze, uruchamiając na nim poniższe polecenie. Zapisz te informacje na później:
    curl -u sysAdminEmail:password
      http://node_IP::8083/v1/servers/self
  10. Zarejestruj nowy serwer Qpid w grupach analitycznych i grup konsumentów:
    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. Uruchom ponownie wszystkie procesory wiadomości:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  12. Uruchom to polecenie na nowym serwerze Qpid, aby sprawdzić, czy kolejki zostały utworzone:
    qpid-stat -q

    Sprawdź, czy gdy serwer Qpid przetwarza komunikaty, msg, msgIn i msgOut są aktualizowane.

Jeśli podczas przywracania wcześniejszej wersji wystąpią problemy, skontaktuj się z zespołem pomocy Apigee Edge.