4.18.01 Przywracanie poprzedniej wersji

Edge dla chmury prywatnej w wersji 4.18.01

Jeśli podczas aktualizacji do Edge 4.18.01 wystąpi błąd, możesz przywrócić komponent, który go spowodował, a następnie spróbować ponownie przeprowadzić aktualizację. Jeśli na przykład aktualizacja Postgres do wersji 9.6 się nie powiedzie, możesz wycofać tylko węzły Postgres i spróbować ponownie.

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

  1. Przywróć starszą wersję. Na przykład z 4.18.01 na 4.17.01.
  2. Przywróć starszą wersję w tej samej wersji.

Aby przywrócić poprzednią wersję w obu przypadkach, wykonaj czynności opisane poniżej.

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 z uprawnieniami roota.

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.

Które komponenty można przywrócić

Podczas przywracania pamiętaj o tych kwestiach:

  • 5 wymienionych poniżej komponentów Edge korzysta ze wspólnego kodu. Dlatego aby przywrócić dowolny z 5 komponentów w węźle, musisz przywrócić wszystkie 5 komponentów zainstalowanych w węźle. Jeśli na przykład na węźle zainstalowano serwer zarządzania, router i procesor komunikatów, aby wycofać dowolny z nich, musisz wycofać wszystkie 3.

    Te 5 komponentów, które współdzielą kod, to:

    • Serwer zarządzania
    • Router
    • procesor komunikatów
    • Serwer Qpid
    • Serwer Postgres
  • Jeśli aktualizujesz Edge z wersji 4.16.01, nie przywracaj Cassandry. Ta wersja Edge zawiera zaktualizowaną wersję Cassandra. Jeśli wycofasz jakiekolwiek komponenty, pozostaw Cassandrę w wersji 4.18.01.

Wycofuję zmiany w wersji 4.18.01

Ta sekcja zawiera procedurę przywracania Edge 4.18.01 do poprzedniej wersji. Ta sekcja jest podzielona na 2 części:

  • Cofanie aktualizacji Postgres
    Ostatnim etapem każdej procedury aktualizacji jest zaktualizowanie węzłów Postgres do wersji 9.6. Jeśli aktualizacja się nie powiedzie, możesz użyć tej procedury, aby ją wycofać.
  • Przywracanie wszystkich pozostałych komponentów Edge
    Użyj tej procedury, aby przywrócić wszystkie pozostałe komponenty Edge.

Aby wycofać aktualizację Postgres 9.6:

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

    Powinny być widoczne identyfikatory UUID nowych węzłów podstawowego i rezerwowego na liście w grupie analityki i grupie konsumentów.

  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 się powiodła, 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, jak opisano poniżej. 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 węzła głównego i zainstalować go na nowym, wykonaj te czynności:

  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 widzisz, że wartości msg, msgIn i msgOut są aktualizowane, gdy serwer Qpid przetwarza wiadomości.

Aby przywrócić poszczególne komponenty z wersji 4.18.01:

Aby przeprowadzić wycofanie, musisz pobrać plik bootstrap.sh dla bieżącej wersji Edge:

  • Aby przywrócić wersję 4.17.09, pobierz bootstrap_4.17.09.sh
  • Aby przywrócić wersję 4.17.05, pobierz bootstrap_4.17.05.sh
  • Aby przywrócić wersję 4.17.01, pobierz bootstrap_4.17.01.sh
  • Aby przywrócić wersję 4.16.09, pobierz plik bootstrap_4.16.09.sh
  • Aby przywrócić wersję 4.16.05, pobierz bootstrap_4.16.05.sh
  • Aby przywrócić wersję 4.16.01, pobierz bootstrap.sh

W przypadku każdego węzła, na którym znajduje się komponent do przywrócenia:

  1. Zatrzymaj komponent, aby przywrócić poprzednią wersję:
    1. Jeśli przywracasz którykolwiek z tych komponentów w węźle, musisz zatrzymać je wszystkie: serwer zarządzania, router, procesor komunikatów, serwer Qpid lub serwer Postgres:
      • > 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. Jeśli przywracasz inny komponent w węźle, zatrzymaj tylko ten komponent:
      • > apigee-service comp stop
  2. Jeśli wycofujesz Zarabianie, odinstaluj je ze wszystkich węzłów serwera zarządzania i procesora komunikatów:
    > apigee-service edge-mint-gateway uninstall
  3. Odinstaluj komponent, aby przywrócić poprzednią wersję w węźle:
    1. Jeśli przywracasz którykolwiek z tych komponentów w węźle, odinstaluj je wszystkie: serwer zarządzania, router, procesor komunikatów, serwer Qpid lub serwer Postgres:
      > apigee-service edge-gateway uninstall
    2. Jeśli przywracasz inny komponent w węźle, odinstaluj tylko ten komponent:
      > apigee-service comp uninstall
    3. Jeśli przywracasz router, musisz usunąć zawartość katalogu /opt/nginx/conf.d:
      > cd /opt/nginx/conf.d
      > rm -rf *
  4. Aby przywrócić komponent:
    1. Odinstaluj wersję 4.18.01 apigee-setup:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
    2. Pobierz plik bootstrap.sh dla odpowiedniej wersji: na przykład dla wersji 4.16.09:
      > curl https://software.apigee.com/bootstrap_4.16.09.sh -o /tmp/bootstrap_4.16.09.sh 
    3. Zainstaluj narzędzie apigee-service w wersji 4.16.01, 4.16.05 lub 4.16.09 oraz zależności. Na przykład w przypadku wersji 4.16.09:
      > sudo bash /tmp/bootstrap_4.16.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.

    4. Zainstaluj apigee-setup:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-setup install
    5. Zainstaluj odpowiednią wersję komponentu:
      > /opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile

      gdzie comp to komponent do zainstalowania, a configFile to plik konfiguracji dla wybranej wersji.

    6. Jeśli przywracasz Qpid, wyczyść iptables:
      > sudo iptables -F
  5. Aby przywrócić komponent do określonej wersji 4.18.01:
    1. Pobierz konkretną wersję komponentu:
      > /opt/apigee/apigee-service/bin/apigee-service comp-version install

      gdzie comp-version to komponent i wersja 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

      Zwróć uwagę, że podczas instalacji podajesz tylko nazwę komponentu.

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