Cofanie zmian w Apigee Edge 4.18.05

Edge dla chmury prywatnej w wersji 4.18.05

Jeśli podczas aktualizacji do Edge 4.18.05 wystąpi błąd, możesz przywrócić komponent, który go spowodował, a następnie spróbować ponownie przeprowadzić aktualizację.

Możesz wycofać zmiany Edge 4.18.05 do tych wersji do publikacji Feature Release:

  • Wersja 4.18.01
  • Wersja 4.17.09*
  • Wersja 4.17.05*

* Aby przywrócić wersję 4.17.09 lub 4.17.05 z wersji 4.18.05, musisz przywrócić Postgres, a także przywrócić komponenty w każdym węźle. Jeśli przywrócisz wersję 4.18.01, nie musisz przywracać Postgres, ponieważ proces uaktualniania nie obejmował aktualizacji Postgres.

Istnieją 2 sytuacje, w których możesz chcieć przywrócić poprzednią wersję:

  1. Przywracanie poprzedniej wersji funkcji Na przykład z wersji 4.18.05 do 4.18.01.
  2. Przywróć poprzednią wersję aktualizacji w tej samej wersji. Na przykład z wersji 4.18.05.02 na 4.18.05.01.

Więcej informacji znajdziesz w artykule na temat procesu publikowania Apigee Edge.

Kto może przywrócić poprzednią wersję

Użytkownik, który przywraca poprzednią wersję, powinien być tym samym użytkownikiem, który pierwotnie zaktualizował Edge, lub użytkownikiem działającym jako root.

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

Komponenty ze wspólnym kodem

Te komponenty Edge współdzielą kod. Dlatego aby przywrócić którykolwiek 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 komunikatów)
  • edge-router (router)
  • edge-postgres-server (serwer Postgres)
  • edge-qpid-server (serwer Qpid)

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

Przywracanie poprzedniej wersji funkcji

Aby przywrócić wersję 4.17.09 lub 4.17.05 z wersji 4.18.05, musisz przywrócić Postgres, a także przywrócić komponenty na każdym węźle. Jeśli przywracasz wersję sprzed 4.18.01, nie musisz przywracać Postgres, ponieważ proces uaktualniania nie obejmował aktualizacji Postgres.

Aby przywrócić poprzednią wersję funkcji, wykonaj te czynności na każdym węźle, na którym znajduje się komponent:

  1. Pobierz plik bootstrap.sh dla wersji, do której chcesz wrócić:

    • 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, który chcesz wycofać:
    1. Aby przywrócić poprzednią wersję dowolnego komponentu 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 przywrócić inny komponent w węźle, zatrzymaj tylko ten komponent:
      • /opt/apigee/apigee-service/bin/apigee-service component stop
  3. Jeśli wycofujesz Zarabianie, odinstaluj je ze wszystkich węzłów serwera zarządzania i procesora komunikatów:
    /opt/apigee/apigee-service/bin/apigee-service edge-mint-gateway uninstall
  4. Odinstaluj komponent, aby przywrócić poprzednią wersję w węźle:
    1. Aby wycofać dowolny z komponentów ze wspólnym kodem w węźle, musisz odinstalować je wszystkie, 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, jak pokazano w tym przykładzie:
      /opt/apigee/apigee-service/bin/apigee-service component uninstall

      Gdzie component jest nazwą komponentu.

    3. Aby wycofać router brzegowy, musisz usunąć zawartość pliku /opt/nginx/conf.d i odinstalować grupę komponentów edge-gateway:
      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. W tym przykładzie instalowana jest wersja 4.17.09 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 od Apigee. Jeśli pominiesz pWord, pojawi się prośba o jego podanie.

    Jeśli pojawi się błąd, upewnij się, że 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 starszej wersji.

  9. Jeśli przywracasz Qpid, wyczyść iptables:
    sudo iptables -F
  10. Powtórz ten proces dla każdego węzła, który hostuje komponent, który chcesz przywrócić.

Aby przywrócić wersję 4.17.09 lub 4.17.05 z wersji 4.18.05, musisz przywrócić Postgres, a także przywrócić komponenty na każdym węźle. Jeśli przywracasz wersję sprzed 4.18.01, nie musisz przywracać Postgres, ponieważ proces uaktualniania nie obejmował aktualizacji Postgres.

Przywracanie poprzedniej wersji aktualizacji

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

  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 określić dostępne wersje komponentów za pomocą tego polecenia:

    yum --showduplicates list comp

    Na przykład:

    yum --showduplicates list edge-ui
  2. Użyj apigee-setup, aby zainstalować komponent:
    /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 jego wersję.

  3. Powtórz ten proces dla każdego węzła, który hostuje komponent, który chcesz przywrócić.

Aby przywrócić wersję 4.17.09 lub 4.17.05 z wersji 4.18.05, musisz przywrócić Postgres, a także przywrócić komponenty w każdym węźle. Jeśli przywracasz wersję sprzed 4.18.01, nie musisz przywracać Postgres, ponieważ proces uaktualniania nie obejmował aktualizacji Postgres.

Cofanie aktualizacji Postgres 9.6

Jeśli uaktualniasz wersję 4.18.05 z wersji 4.17.05 lub 4.17.09, musisz wycofać aktualizację Postgres oraz komponenty Edge.

Aby wycofać aktualizację Postgres podczas aktualizowania Postgres w konfiguracji master-standby:

  • Awansuj nowy węzeł rezerwowy na mastera Postgres. Nowa instancja główna Postgres będzie w tej samej wersji co poprzednia instalacja Edge.
  • Skonfiguruj stary węzeł rezerwowy jako węzeł rezerwowy nowego węzła głównego. Stary węzeł rezerwowy będzie w tej samej wersji co poprzednia instalacja Edge.
  • Zarejestruj nowe węzły nadrzędne i rezerwowe w grupach analitycznych i konsumenckich.

Po zakończeniu przywracania stary węzeł główny nie będzie już potrzebny. Następnie możesz wycofać stary węzeł główny.

  1. Sprawdź, czy nowy węzeł Postgres w trybie gotowości 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 usługa Postgres została zatrzymana na starym węźle głównym i starym węźle rezerwowym:
    /opt/apigee/apigee-service/bin/apigee-all status

    Jeśli Postgres działa, 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 jest zainstalowany, uruchom Qpid na starym węźle rezerwowym:
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server start
  4. Awansuj nowy węzeł rezerwowy na mastera Postgres:
    1. Awansuj nowy węzeł rezerwowy na nowy węzeł główny:
      apigee-service apigee-postgresql promote-standby-to-master new_standby_IP

      Jeśli pojawi się prośba, wpisz hasło Postgres dla użytkownika „apigee”, które domyślnie brzmi „postgres”.

    2. Zmodyfikuj plik konfiguracyjny użyty do zainstalowania bieżącej wersji Edge, aby określić te elementy:
      # 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 nową instancję główną:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFile
  5. Odbuduj stary węzeł rezerwowy:
    1. Zmodyfikuj plik konfiguracyjny użyty do zainstalowania bieżącej wersji Edge, aby określić te elementy:
      # 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 na starym węźle rezerwowym:
      cd /opt/apigee/data/apigee-postgresql/pgdata > rm -rf *
    3. Zmień konfigurację starego węzła rezerwowego, aby stał się węzłem rezerwowym 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 na starym węźle rezerwowym:
      /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 nowy węzeł rezerwowy został dodany, wyświetlając plik /opt/apigee/apigee-postgresql/conf/pg_hba.conf na nowym węźle głównym.
  7. Aby wyświetlić bieżące informacje o statystykach i grupie konsumentów, uruchom to polecenie na serwerze zarządzania:
    curl -u sysAdminEmail:password http://ms_IP:8080/v1/analytics/groups/ax

    To polecenie zwraca nazwę grupy analitycznej w polu name i nazwę grupy konsumentów w polu name w sekcji consumer-groups. Zwraca też identyfikatory UUID starych węzłów głównych i rezerwowych Postgres w polach postgres-server i datastores. Powinny się wyświetlić dane wyjściowe w tej postaci:

    {
      "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. Pobierz 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

    Na końcu danych wyjściowych powinien pojawić się identyfikator UUID węzła w formie:

    "type" : [ "postgres-server" ],
    "uUID" : "599e8ebf-5d69-4ae4-aa71-154970a8ec75"
  9. Powtórz poprzedni krok, aby uzyskać adresy IP starego węzła rezerwowego i nowego węzła głównego.
  10. Usuń stare węzły główne i rezerwowe z grupy konsumentów:
    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 analitycznych i konsumenckich. masterUUID,standbyUUID są w tej samej kolejności, w jakiej pojawiły się powyżej, gdy wyświetlałeś(-aś) bieżące statystyki i informacje o grupie konsumentów. Może być konieczne określenie ich jako standbyUUID,masterUUID.

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

  11. Usuń stare węzły nadrzędne i rezerwowe z grupy analityki:
    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 sekcji uuids powinna być teraz pusta.

  12. Zarejestruj nowe węzły główne i rezerwowe PG w grupach analitycznych i konsumenckich:
    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. Sprawdź grupę statystyk:
    curl -u sysAdminEmail:password http://ms_IP:8080/v1/analytics/groups/ax

    W grupie analitycznej i grupie konsumentów powinny być widoczne identyfikatory UUID nowych węzłów głównych i węzłów gotowości.

  14. Ponownie uruchom serwer zarządzania Edge:
    /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. Aby replikacja przebiegła pomyślnie, system powinien wyświetlić identyczne wyniki na obu serwerach:

    Na nowym węźle głównym uruchom:

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

    Sprawdź, czy jest oznaczony jako główny. Na starym węźle gotowości:

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

    Sprawdź, czy jest oznaczony jako zapasowy.

  18. Po wysłaniu kilku żądań do interfejsu API powtórz poprzedni krok, aby upewnić się, że węzły są zsynchronizowane.
  19. Wycofaj stary serwer główny Postgres, postępując zgodnie z procedurą opisaną w artykule Aktualizowanie Apigee Edge z wersji 4.16.01/4.16.05 do wersji 4.17.09.

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

Odinstalowywanie Qpid na starym serwerze głównym i instalowanie Qpid na nowym serwerze głównym

Aby odinstalować Qpid ze starego serwera głównego i zainstalować go na nowym:

  1. Zablokuj dostęp do portu Qpid 5672 na starym serwerze głównym, aby procesory komunikatów nie mogły się z nim połączyć. W tym celu uruchom to polecenie na wszystkich procesorach komunikatów:
    iptables -A OUTPUT -p tcp -d 10.233.147.20 --dport 5672 -j DROP
  2. Upewnij się, że kolejka wiadomości Qpid jest pusta, uruchamiając to polecenie. Nie możesz odinstalować Qpid, dopóki nie przetworzy wszystkich oczekujących wiadomości:
    qpid-stat -q

    To polecenie wyświetla tabelę zawierającą liczbę msg, msgIn, and msgOut. Wszystkie wiadomości zostaną przetworzone, gdy msg=0 i msgIn=msgOut.

  3. Określ identyfikator UUID serwera Qpid na starym serwerze głównym, uruchamiając na nim to polecenie. Zapisz te informacje, ponieważ będą potrzebne w dalszej części procedury:
    curl -u sysAdminEmail:password http://node_IP::8083/v1/servers/self
  4. Zatrzymaj Qpid na starym serwerze głównym:
    /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 konsumenckich:
    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 ZooKeepera:
    curl -u sysAdminEmail:password -X DELETE \
      http://ms_IP:8080/v1/servers/qpid_UUID
  8. Zainstaluj Qpid na nowym węźle głównym:
    /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile
  9. Określ identyfikator UUID serwera Qpid na nowym serwerze głównym, uruchamiając na nim to polecenie. Zapisz te informacje, ponieważ będą potrzebne w dalszej części procedury:
    curl -u sysAdminEmail:password
      http://node_IP::8083/v1/servers/self
  10. Zarejestruj nowy serwer Qpid w grupach Analytics 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=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 komunikatów:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  12. Uruchom na nowym serwerze Qpid to polecenie, aby sprawdzić, czy kolejki zostały utworzone:
    qpid-stat -q

    Sprawdź, czy wartości msg, msgIn i msgOut są aktualizowane, gdy serwer Qpid przetwarza wiadomości.

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