4.17.05 Przywracanie poprzedniej wersji

Edge dla chmury prywatnej w wersji 4.17.05

W przypadku błędu podczas aktualizacji do Edge 4.17.05 możesz przywrócić komponent, który spowodował błąd, a następnie spróbować ponownie przeprowadzić aktualizację. Jeśli na przykład aktualizacja Postgres 9.4 się nie powiedzie, możesz przywrócić 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.17.05 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 przywrócić dowolny z nich, musisz przywrócić wszystkie 3.
    5 komponentów, które udostępniają kod:
    • 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.17.05.

Wycofuję wersję 4.17.05

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

  • Jeśli przeprowadzasz aktualizację tylko z wersji 4.16.01 lub 4.16.05 – przywracanie aktualizacji Postgres do wersji 9.4
    Ostatnim etapem każdej procedury aktualizacji z wersji 4.16.01 lub 4.16.05 jest aktualizacja węzłów Postgres do wersji 9.4. 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.4:

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. Sprawdź, czy Postgres jest zatrzymany na starym węźle głównym i starym węźle rezerwowym:
    > /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 jest zainstalowany, uruchom Qpid na starym węźle rezerwowym:
    > /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server start

    Uwaga: w wielu konfiguracjach stary węzeł rezerwowy będzie hostować tylko Postgres, a nie Qpid.
  4. Awansuj nowy węzeł rezerwowy na mastera Postgres:
    1. Przekształć nowy węzeł rezerwowy w nowy węzeł główny:
      > apigee-service apigee-postgresql promote-standby-to-master new_standby_IP

      Jeśli pojawi się taka prośba, wpisz hasło Postgres dla użytkownika „apigee”, które domyślnie brzmi „postgres”.
    2. Zmodyfikuj plik konfiguracji użyty do zainstalowania bieżącej wersji Edge, aby określić te informacje:
      # Adres IP nowego węzła głównego:
      PG_MASTER=new_standby_IP
      # Adres IP starego węzła rezerwowego
      PG_STANDBY=old_standby_IP
    3. Skonfiguruj nowy serwer główny:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFile
  5. Odbuduj stary węzeł rezerwowy:
    1. Zmodyfikuj plik konfiguracji użyty do zainstalowania bieżącej wersji Edge, aby określić te informacje:
      # 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 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. Sprawdź, czy Postgres działa na starym węźle rezerwowym:
      > /opt/apigee/apigee-service/bin/apigee-all status

      Jeśli nie działa, 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. Wyświetl bieżące informacje o grupie konsumentów i grupie analitycznej, 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 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 wyświetlić się 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 takiej postaci:
    "type" : [ "postgres-server" ],
    "uUID" : "599e8ebf-5d69-4ae4-aa71-154970a8ec75"


    Uwaga: usługa edge-postgres-server musi być uruchomiona. Jeśli serwer Postgres nie działa, możesz uruchomić na serwerze zarządzania to polecenie, aby określić identyfikator UUID:
    > curl -u sysAdminEmail:password http://<ms_IP>:8080/v1/servers?pod=analytics

    Dane wyjściowe tego polecenia zawierają identyfikator UUID adresu IP każdego węzła Postgres.
  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 podstawowy i rezerwowy 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świetlono bieżące informacje o statystykach i 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 podstawowy i rezerwowy z grupy analitycznej:
    > 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 podstawowe i rezerwowe PG w grupach analitycznych i grupach klientó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. Sprawdź grupę analityczną:
    > 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. Uruchom ponownie 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świetlać identyczne wyniki na obu serwerach:

    Na nowym serwerze głównym uruchom:
    > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master

    Sprawdź, czy jest on oznaczony jako serwer główny.

    Na starym węźle rezerwowym:
    > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby

    Sprawdź, czy jest on oznaczony jako rezerwowy.
  18. Po wysłaniu kilku żądań do interfejsu API powtórz poprzedni krok, aby upewnić się, że węzły są zsynchronizowane.
  19. Wycofaj starą instancję główną Postgres, korzystając z procedury opisanej w artykule Aktualizowanie Apigee Edge z wersji 4.16.01/4.16.05 do wersji 4.17.05.

    Uwaga: jeśli na starym węźle głównym działał Qpid, możesz pozostawić ten serwer, aby uruchomić Qpid. Sprawdź, czy działa. Jeśli nie, uruchom go:
    > /opt/apigee/apigee-service/bin/apigee-service edge-management-server start

    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 węźle głównym dla procesorów komunikatów, uruchamiając 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 i 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, aby użyć ich później w procedurze:
    > 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 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 ZooKeepera:
    > curl -u sysAdminEmail:password -X DELETE http://<ms_IP>:8080/v1/servers/qpid_UUID
  8. Zainstaluj Qpid na nowym serwerze 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, aby użyć ich później w procedurze:
    > curl -u sysAdminEmail:password http://<node_IP>::8083/v1/servers/self
  10. Zarejestruj nowy serwer Qpid 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=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 to polecenie na nowym serwerze Qpid, aby sprawdzić, czy kolejki zostały utworzone:
    > qpid-stat -q

    Upewnij się, że widzisz aktualizowanie msg, msgIn i msgOut podczas przetwarzania wiadomości przez serwer Qpid.

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

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

  • Aby przywrócić wersję 4.17.01, pobierz plik 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 plik bootstrap_4.16.05.sh.
  • Aby przywrócić wersję 4.16.01, pobierz plik 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 wycofujesz dowolny 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.17.05 narzędzia apigee-setup:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
    2. Pobierz plik bootstrap.sh dla wersji 4.16.01, 4.16.05, 4.16.09 lub 4.17.01:

      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 parametr pWord, pojawi się prośba o jego podanie.
    4. Zainstaluj wersję 4.16.01, 4.16.05 lub 4.16.09 narzędzia apigee-setup:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-setup install
    5. Zainstaluj komponent w wersji 4.16.01, 4.16.05, 4.16.09 lub 4.17.01:
      > /opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile

      gdzie comp to komponent do zainstalowania, a configFile to plik konfiguracji w wersji 4.16.01, 4.16.05 lub 4.16.09.
    6. Jeśli przywracasz Qpid, wyczyść iptables:
      > sudo iptables -F
  5. Aby przywrócić komponent do określonej wersji 4.17.05:
    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.05-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.