Как выполнить откат Apigee Edge 4.53.01

Если при обновлении до версии Edge 4.53.01 возникла ошибка, вы можете откатить компонент, вызвавший ее, а затем повторить попытку обновления.

Вы можете выполнить откат Edge 4.53.01 до любой из следующих основных версий:

  • Версия 4.53.00
  • Версия 4.52.02

При откате версии выполняется откат всех компонентов, которые вы могли обновить. Кроме того, в зависимости от исходной версии вам может потребоваться выполнить специальные действия перед откатом некоторых компонентов ПО. В таблице ниже перечислены различные компоненты ПО, для которых при откате могут потребоваться специальные действия.

Откат к версии Особые требования к программному обеспечению
4.53.00 Zookeeper, Postgres, LDAP
4.52.02 Zookeeper, Cassandra, Postgres, LDAP

Вот сценарий, в котором может потребоваться откат:

Выполнить откат до предыдущей основной или дополнительной версии. Например, с 4.53.01 до 4.53.00.

Подробнее о процессе выпуска версий Apigee Edge…

Порядок отката

Откат компонентов следует выполнять в обратном порядке по сравнению с их обновлением. Исключение составляют серверы управления, откат которых следует выполнять после Cassandra. Обычно откат к версии Private Cloud 4.53.01 выполняется в следующем порядке:

  1. Выполните откат Qpid, других компонентов, связанных с аналитикой, и Postgres.
  2. Как выполнить откат маршрутизаторов и процессоров сообщений
  3. Как выполнить откат Cassandra и Zookeeper
  4. Сервер управления откатом
  5. Как выполнить откат LDAP

Предположим, вы обновили весь кластер Cassandra, все серверы управления и несколько RMP с версии 4.52.02 до версии 4.53.01 и хотите выполнить откат. В этом случае вам нужно:

  • Как поочередно отменить все изменения в правилах ценообразования
  • Как выполнить откат всего кластера Cassandra с помощью резервных копий
  • Как выполнить откат узлов сервера управления Edge по одному

Кто может выполнить откат

Пользователь, выполняющий откат, должен быть тем же, кто изначально обновил Edge, или пользователем с правами root.

По умолчанию компоненты Edge работают от имени пользователя apigee. В некоторых случаях компоненты Edge могут быть запущены от имени разных пользователей. Например, если маршрутизатору нужно получить доступ к привилегированным портам, таким как порты ниже 1000, то маршрутизатор должен быть запущен от имени пользователя root или пользователя с доступом к этим портам. Или вы можете запустить один компонент как одного пользователя, а другой компонент – как другого пользователя.

Компоненты с общим кодом

Следующие компоненты Edge используют общий код: Поэтому, чтобы выполнить откат любого из этих компонентов на узле, необходимо выполнить откат всех компонентов, которые находятся на этом узле.

  • edge-management-server (сервер управления)
  • edge-message-processor (процессор сообщений)
  • edge-router (маршрутизатор)
  • edge-postgres-server (сервер Postgres)
  • edge-qpid-server (сервер Qpid)

Например, если на узле установлены сервер управления, маршрутизатор и Message Processor, для отката любого из них необходимо выполнить откат всех трех.

Как выполнить откат Cassandra

При выполнении крупного обновления Cassandra на определенном узле Cassandra изменяет схему данных, хранящихся на этом узле. Поэтому прямой откат на месте невозможен.

Сценарии отката

Cassandra 4.0.X, доступная в Edge для частного облака 4.53.01, совместима с другими компонентами частного облака 4.52.02.

В таблице ниже приведены различные стратегии отката.

Сценарий Стратегия отката
Одна зона доступности, некоторые узлы Cassandra обновлены Как использовать резервные способы входа
Один центр обработки данных, все узлы Cassandra обновлены Не выполнять откат Cassandra. Другие компоненты можно будет вернуть к предыдущей версии.
Один центр обработки данных, все узлы (Cassandra и другие) обновлены Не выполнять откат Cassandra. Другие компоненты можно будет вернуть к предыдущей версии.
Несколько центров обработки данных, некоторые узлы в одном из них обновлены Как восстановить ЦУЛ
Несколько центров обработки данных, все узлы Cassandra в некоторых центрах обработки данных обновлены Как восстановить ЦУЛ
Несколько центров обработки данных, узлы Cassandra последнего обновляемого центра обработки данных Попробуйте завершить обновление. Если это невозможно, выполните откат одного контроллера домена с помощью резервной копии. Восстановите оставшиеся контроллеры домена из контроллера домена, к которому был выполнен откат.
Несколько центров обработки данных, все узлы Cassandra обновлены Не выполнять откат Cassandra. Другие компоненты можно будет вернуть к предыдущей версии.
Несколько центров обработки данных, все узлы (Cassandra и другие) обновлены Не выполнять откат Cassandra. Другие компоненты можно будет вернуть к предыдущей версии.

Общие положения

При откате учитывайте следующее:

  • Откат компонентов среды выполнения или управления. Если вы хотите выполнить откат таких компонентов, как edge-management-server, edge-message-processor или любого компонента, отличного от Cassandra, до версии Private Cloud 4.52.02, не рекомендуется выполнять откат Cassandra. Версия Cassandra, поставляемая с Private Cloud 4.53.00, совместима со всеми компонентами Edge для Private Cloud 4.52.02, кроме Cassandra. Вы можете выполнить откат компонентов, отличных от Cassandra, используя описанную здесь методику, при этом Cassandra останется версии 4.0.13.
  • Откат после обновления всего кластера Cassandra до версии 4.0.X. Если в рамках обновления до версии Private Cloud 4.53.00 весь кластер Cassandra был обновлен до версии 4.0.X, рекомендуется продолжить работу с этой конфигурацией кластера и НЕ выполнять откат Cassandra. Компоненты Private Cloud версии 4.52.02, такие как edge-management-server, edge-message-processor, edge-router и т. д., совместимы с Cassandra версии 4.0.X.
  • Откат Cassandra во время обновления. Если во время обновления Cassandra возникнут проблемы, вы можете выполнить откат. Стратегии отката, перечисленные в этой статье, можно использовать в зависимости от того, на каком этапе процесса обновления вы находитесь.
  • Откат с использованием резервных копий. Резервные копии, созданные в Cassandra 4.0.X, несовместимы с резервными копиями Cassandra 3.11.X. Чтобы выполнить откат Cassandra с помощью восстановления резервной копии, необходимо создать резервные копии Cassandra 3.11.X до попытки обновления.

Как выполнить откат Cassandra с помощью rebuild

Требования

  • Вы используете кластер Edge for Private Cloud 4.52.02 в нескольких центрах обработки данных.
  • Вы обновляете Cassandra с версии 3.11.X до 4.0.X и столкнулись с проблемами.
  • В кластере есть хотя бы один полностью функциональный центр обработки данных, в котором по-прежнему используется более старая версия Cassandra (Cassandra 3.11.X).

Эта процедура основана на потоковой передаче данных из существующего центра обработки данных. Это может занять много времени в зависимости от объема данных, хранящихся в Cassandra. Во время отката вам нужно будет перенаправить трафик времени выполнения из этого центра обработки данных.

Общая последовательность действий

  1. Выберите центр обработки данных, который вы хотите откатить (частично или полностью обновленный). Перенаправить трафик времени выполнения в другой работающий центр обработки данных.
  2. Определите исходный узел в центре обработки данных и начните с одного из исходных узлов.
  3. Остановите, удалите и очистите узел Cassandra.
  4. Установите на узле более раннюю версию Cassandra и настройте ее.
  5. Удалите дополнительные конфигурации, добавленные ранее.
  6. Повторите описанные выше действия для всех узлов инициализации в центре обработки данных.
  7. Повторите описанные выше действия для всех оставшихся узлов Cassandra в центре обработки данных.
  8. Восстановите узлы из существующего функционального центра обработки данных по одному.
  9. Перезапустите все компоненты edge-* в центре обработки данных, подключенные к Cassandra.
  10. Протестируйте его и перенаправьте трафик обратно в этот центр обработки данных.
  11. Повторите эти шаги для каждого центра обработки данных по очереди.

Подробные инструкции

  1. Выберите один центр обработки данных, в котором будут обновлены все или некоторые узлы Cassandra. Перенаправьте весь трафик прокси-сервера времени выполнения и трафик управления из этого центра обработки данных, пока выполняется откат узлов Cassandra в этом центре обработки данных. Убедитесь, что все узлы Cassandra находятся в состоянии UN (Up/Normal), когда на них выполняется команда nodetool ring. Если некоторые узлы не работают, устраните проблему и восстановите их работу, прежде чем продолжать.

    Изучите пример ниже.

    /opt/apigee/apigee-cassandra/bin/nodetool status
    Datacenter: dc-1
    ================
    Status=Up/Down
    |/ State=Normal/Leaving/Joining/Moving
    --  Address      Load       Tokens       Owns (effective)  Host ID                               Rack
    UN  DC1-1IP1  456.41 KiB  1            100.0%            78fc4ddd-2ed9-4a8c-98a2-63a38c2f1920  ra-1
    UN  DC1-1IP2  870.93 KiB  1            100.0%            160db01a-64ab-43a7-b9ea-3b7f8f66d52b  ra-1
    UN  DC1-1IP3  824.08 KiB  1            100.0%            21d61543-d59e-403a-bf5d-bfe7f664baa6  ra-1
    Datacenter: dc-2
    ================
    Status=Up/Down
    |/ State=Normal/Leaving/Joining/Moving
    --  Address      Load       Tokens       Owns (effective)  Host ID                               Rack
    UN  DC2-1IP1   802.08 KiB  1            100.0%            583e0576-336d-4ce7-9729-2ae74e0abde2  ra-1
    UN  DC2-1IP2   844.4 KiB   1            100.0%            fef794d5-f4c2-4a4e-bb05-9adaeb4aea4b  ra-1
    UN  DC2-1IP3   878.12 KiB  1            100.0%            3894b3d9-1f5a-444d-83db-7b1e338bbfc9  ra-1

    Вы можете выполнить команду nodetool describecluster на узлах, чтобы узнать текущее состояние всего кластера. Например, ниже показан экземпляр кластера с двумя центрами обработки данных, где все узлы DC-1 работают с Cassandra версии 4, а все узлы DC-2 – с Cassandra версии 3:

    # On nodes where Cassandra is upgraded
    /opt/apigee/apigee-cassandra/bin/nodetool describecluster
    Cluster Information:
        Name: Apigee
        Snitch: org.apache.cassandra.locator.PropertyFileSnitch
        DynamicEndPointSnitch: enabled
        Partitioner: org.apache.cassandra.dht.RandomPartitioner
        Schema versions:
            2eadcd74-0245-309a-9992-3625afa70038: [DC-1-IP1, DC-1-IP2, DC-1-IP3]
            129dc15e-198e-3c11-b64c-701044a3a1ad: [DC-2-IP1, DC-2-IP2, DC-2-IP3]
    
    Stats for all nodes:
        Live: 6
        Joining: 0
        Moving: 0
        Leaving: 0
        Unreachable: 0
    
    Data Centers:
        dc-1 #Nodes: 3 #Down: 0
        dc-2 #Nodes: 3 #Down: 0
    
    Database versions:
        4.0.13: [DC-1-IP1:7000, DC-1-IP2:7000, DC-1-IP3:7000]
        3.11.16: [DC-2-IP1:7000, DC-2-IP2:7000, DC-2-IP3:7000]
    
    Keyspaces:
        system_schema -> Replication class: LocalStrategy {}
        system -> Replication class: LocalStrategy {}
        auth -> Replication class: NetworkTopologyStrategy {dc-2=3, dc-1=3}
        cache -> Replication class: NetworkTopologyStrategy {dc-2=3, dc-1=3}
        devconnect -> Replication class: NetworkTopologyStrategy {dc-2=3, dc-1=3}
        dek -> Replication class: NetworkTopologyStrategy {dc-2=3, dc-1=3}
        user_settings -> Replication class: NetworkTopologyStrategy {dc-2=3, dc-1=3}
        apprepo -> Replication class: NetworkTopologyStrategy {dc-2=3, dc-1=3}
        kms -> Replication class: NetworkTopologyStrategy {dc-2=3, dc-1=3}
        identityzone -> Replication class: NetworkTopologyStrategy {dc-2=3, dc-1=3}
        audit -> Replication class: NetworkTopologyStrategy {dc-2=3, dc-1=3}
        analytics -> Replication class: NetworkTopologyStrategy {dc-2=3, dc-1=3}
        keyvaluemap -> Replication class: NetworkTopologyStrategy {dc-2=3, dc-1=3}
        counter -> Replication class: NetworkTopologyStrategy {dc-2=3, dc-1=3}
        apimodel_v2 -> Replication class: NetworkTopologyStrategy {dc-2=3, dc-1=3}
        system_distributed -> Replication class: SimpleStrategy {replication_factor=3}
        system_traces -> Replication class: SimpleStrategy {replication_factor=2}
        system_auth -> Replication class: SimpleStrategy {replication_factor=1}
    
    # On nodes where Cassandra is not upgraded
    /opt/apigee/apigee-cassandra/bin/nodetool describecluster
    Cluster Information:
        Name: Apigee
        Snitch: org.apache.cassandra.locator.PropertyFileSnitch
        DynamicEndPointSnitch: enabled
        Partitioner: org.apache.cassandra.dht.RandomPartitioner
        Schema versions:
            2eadcd74-0245-309a-9992-3625afa70038: [DC-1-IP1, DC-1-IP2, DC-1-IP3]
            129dc15e-198e-3c11-b64c-701044a3a1ad: [DC-2-IP1, DC-2-IP2, DC-2-IP3]
            
  2. Определите начальные узлы в центре обработки данных. См. раздел Как определить начальные узлы в приложении. Выполните следующие действия на одном из начальных узлов:
  3. Остановите, удалите и очистите данные из узла Cassandra. Выберите первый узел инициализации в Cassandra версии 4 в этом центре обработки данных. Прекрати.
    # Stop Cassandra service on the node
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra stop
    
    # Uninstall Cassandra software
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra uninstall
    
    # Wipe out Cassandra data
    rm -rf /opt/apigee/data/apigee-cassandra
            
  4. Установите на узле более раннюю версию ПО Cassandra и задайте некоторые настройки. Выполните файл начальной загрузки Edge для частного облака 4.52.02.
  5. # Download bootstrap of 4.52.02
    curl https://software.apigee.com/bootstrap_4.52.02.sh -o /tmp/bootstrap_4.52.02.sh -u uName:pWord
    
    # Execute bootstrap of 4.52.02
    sudo bash /tmp/bootstrap_4.52.02.sh apigeeuser=uName apigeepassword=pWord
        
  6. Создайте или измените файл /opt/apigee/customer/application/cassandra.properties.
  7. Добавьте в файл следующее содержимое: ipOfNode – это IP-адрес узла, который Cassandra использует для связи с другими узлами Cassandra.
    conf_jvm_options_custom_settings=-Dcassandra.replace_address=ipOfNode -Dcassandra.allow_unsafe_replace=true
  8. Убедитесь, что файл принадлежит пользователю apigee и доступен ему для чтения:
    chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
  9. Установите и настройте Cassandra:
  10. # Install cassandra version 3.11.X
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra install
    # Setup cassandra while passing standard configuration file
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra setup -f configFile
    # Ensure Cassandra version is correct and service is running
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra version
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra status
  11. Убедитесь, что узел запущен. Проверьте следующую команду на этом и других узлах кластера. Узел должен сообщать, что находится в состоянии "UN" (Up/Normal – Включено/Нормально):
    /opt/apigee/apigee-cassandra/bin/nodetool status
  12. Удалите из файла /opt/apigee/customer/application/cassandra.properties лишние конфигурации, добавленные ранее.
  13. Повторите шаги 3–10 на всех узлах Cassandra в центре обработки данных по очереди.
  14. Повторите шаги 3–10 для всех оставшихся узлов Cassandra в центре обработки данных по очереди.
  15. Перестройте все узлы в центре обработки данных из центра обработки данных, в котором используется более старая версия Cassandra. Выполните следующие действия для каждого узла:
    /opt/apigee/apigee-cassandra/bin/nodetool rebuild -dc <name of working DC>

    Это может занять некоторое время. При необходимости вы можете изменить streamingthroughput. Чтобы узнать статус операции, откройте nodetool netstats.

  16. (Необязательно) Если данные не восстанавливаются, выполните команду восстановления в узле Cassandra.
    /opt/apigee/apigee-cassandra/bin/nodetool -h node-IP repair -pr
  17. Перезапустите все компоненты edge-* в центре обработки данных по одному:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
  18. Проверьте его и перенаправьте трафик обратно в него. Выполните некоторые проверки для трафика времени выполнения и API управления в этом центре обработки данных и начните перенаправлять трафик прокси-сервера и API управления обратно в него.
  19. Повторите описанные выше действия для каждого центра обработки данных, который вы хотите откатить.

Как выполнить откат Cassandra с помощью резервной копии

Требования

  1. Вы обновляете Cassandra с версии 3.11.X до 4.0.X и столкнулись с проблемами.
  2. У вас есть резервные копии для узла, который вы откатываете. Резервная копия была создана до попытки обновления с версии 3.11.X до 4.0.X.

Шаги

  1. Выберите узел, который нужно откатить. Если вы восстанавливаете все узлы в центре обработки данных из резервных копий, сначала восстановите начальные узлы. Информацию о том, как определить узлы-инициаторы, можно найти в приложении.

  2. Остановите, удалите и очистите узел Cassandra:

    # Stop Cassandra service on the node
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra stop
    
    # Uninstall Cassandra software
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra uninstall
    
    # Wipe Cassandra data
    rm -rf /opt/apigee/data/apigee-cassandra
  3. Установите на узле более раннюю версию ПО Cassandra и настройте ее:

    • Выполните файл начальной загрузки для Edge for Private Cloud 4.52.02:
    • # Download bootstrap for 4.52.02
      curl https://software.apigee.com/bootstrap_4.52.02.sh -o /tmp/bootstrap_4.52.02.sh -u ‘uName:pWord’
      
      # Execute bootstrap for 4.52.02
      sudo bash /tmp/bootstrap_4.52.02.sh apigeeuser=uName apigeepassword=pWord
    • Создайте или измените файл /opt/apigee/customer/application/cassandra.properties:
    • conf_jvm_options_custom_settings=-Dcassandra.replace_address=ipOfNode -Dcassandra.allow_unsafe_replace=true
    • Убедитесь, что файл принадлежит пользователю apigee и доступен для чтения:
    • chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
    • Установите и настройте Cassandra:
    • # Install Cassandra version 3.11.X
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra install
      
      # Set up Cassandra with the standard configuration file
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra setup -f configFile
      
      # Verify Cassandra version and check service status
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra version
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra status

    Убедитесь, что узел запущен. Проверьте следующую команду на этом и других узлах кластера. Узлы должны сообщать, что узел находится в состоянии "UN":

    /opt/apigee/apigee-cassandra/bin/nodetool status
  4. Остановите сервис Cassandra и восстановите резервную копию. Подробная информация приведена в документации по резервному копированию и восстановлению:

    # Stop Cassandra service on the node
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra stop
    
    # Wipe the data directory in preparation for restore
    rm -rf /opt/apigee/data/apigee-cassandra/data
    
    # Restore the backup taken before the upgrade attempt
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restore backupFile
            
  5. После восстановления резервной копии удалите дополнительные конфигурации:

    Удалите из файла /opt/apigee/customer/application/cassandra.properties добавленную ранее конфигурацию.

  6. Запустите сервис Cassandra на узле:

    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra start
  7. Повторите описанные выше действия для каждого узла Cassandra, который нужно восстановить из резервной копии.

  8. После того как все узлы Cassandra будут восстановлены, перезапустите все компоненты edge-* по одному:

    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
            

Оптимизация резервного копирования (дополнительный параметр)

Чтобы свести к минимуму (или исключить) потерю данных при восстановлении резервных копий, можно использовать реплики с последними данными. Если реплики доступны, после восстановления резервной копии запустите восстановление на узле, который был восстановлен.

Приложение

Как определить начальные узлы

На любом узле Cassandra в центре обработки данных выполните следующую команду:

/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure -search conf_cassandra_seeds

Команда выведет несколько строк. Найдите последнюю строку в выходных данных. IP-адреса, указанные в последней строке, – это узлы инициализации. В приведенном ниже примере DC-1-IP1, DC-1-IP2, DC-2-IP1 и DC-2-IP2 – это IP-адреса начальных узлов:

Found key conf_cassandra_seeds, with value, "127.0.0.1", in /opt/apigee/apigee-cassandra/token/default.properties

Found key conf_cassandra_seeds, with value, 127.0.0.1, in /opt/apigee/apigee-cassandra/token/application/cassandra.properties

Found key conf_cassandra_seeds, with value, "DC-1-IP1, DC-1-IP2, DC-2-IP1, DC-2-IP2", in /opt/apigee/token/application/cassandra.properties
apigee-configutil: apigee-cassandra: # OK

Как откатить обновление Zookeeper 3.8.4

Откат

Если потребуется выполнить откат:

  1. Сначала выполните откат на наблюдателях и подписчиках.
  2. Скачайте и запустите загрузчик версии, на которую вы хотите вернуться (4.52.02 или 4.53.00). Процесс установки может различаться в зависимости от того, подключен ли узел к интернету или вы выполняете офлайн-установку.
  3. Остановите Zookeeper, если он запущен на узле:
      /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper stop
  4. Удалите существующий zookeeper:
      /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper uninstall
  5. Установите Zookeeper обычным способом:
      /opt/apigee/apigee-setup/bin/setup.sh -p zk -f <silent-config-file>
  6. После того как все подчиненные узлы и наблюдатели будут откатаны, выполните шаги 2–5 на главном узле.
  7. После отката всех узлов проверьте состояние кластера и убедитесь, что в нем есть ведущий узел.

Восстановление из резервной копии

Подробнее о том, как восстановить данные из резервной копии… Обратите внимание, что резервные копии Zookeeper, созданные в более ранних версиях Edge для частного облака, например 4.52.02 или 4.53.00, должны быть совместимы с версией Zookeeper в Edge для частного облака 4.53.01.

Как откатить обновление до Postgres 17

Если вы обновили версию 4.52.02 или 4.53.00 до 4.53.01, вам нужно будет откатить не только компоненты Edge, но и обновление Postgres.

Чтобы выполнить откат обновления Postgres при обновлении Postgres в конфигурации "основной-резервный":

  • Сделайте новый резервный узел основным узлом Postgres. Новый основной сервер Postgres будет той же версии, что и предыдущая установка Edge.
  • Настройте старый резервный узел как резервный узел нового основного узла. Старый резервный узел будет той же версии, что и предыдущая установка Edge.
  • Зарегистрируйте новый основной и резервный узлы в группах аналитики и потребителей.

После отката старый основной узел больше не понадобится. После этого можно отключить старый основной узел.

Подготовка

Прежде чем выполнять откат с Postgres 17 до 14, выполните следующие действия на новом и старом резервном хосте, чтобы обновить свойство max_locks_per_transaction на apigee-postgresql:

  1. Если его нет, создайте файл /opt/apigee/customer/application/postgresql.properties.
  2. Измените владельца файла на apigee:
    sudo chown apigee:apigee /opt/apigee/customer/application/postgresql.properties
  3. Добавьте в файл следующее свойство:
    conf/postgresql.conf+max_locks_per_transaction=30000
  4. Настройте apigee-postgresql:
    apigee-service apigee-postgresql configure
  5. Перезапустите apigee-postgresql:
    apigee-service apigee-postgresql restart
  1. Убедитесь, что новый резервный узел Postgres работает:
    /opt/apigee/apigee-service/bin/apigee-all status

    Если Postgres не запущен, запустите его:

    /opt/apigee/apigee-service/bin/apigee-all start
  2. Убедитесь, что Postgres остановлен на старом основном узле и старом резервном узле:
    /opt/apigee/apigee-service/bin/apigee-all status

    Если Postgres запущен, остановите его:

    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop  
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
  3. Если Qpid установлен, запустите его на старом резервном узле:
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server start
  4. Сделайте новый резервный узел основным узлом Postgres:
    1. Сделайте новый резервный узел основным:
      apigee-service apigee-postgresql promote-standby-to-master old_master_IP

      При появлении запроса введите пароль пользователя Postgres apigee. По умолчанию используется пароль postgres.

    2. Измените файл конфигурации, который вы использовали для установки текущей версии Edge, чтобы указать следующее:
      # IP address of the new master:
      PG_MASTER=new_standby_IP
      # IP address of the old standby node
      PG_STANDBY=old_standby_IP
    3. Настройте новый основной сервер:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFile
  5. Если вы уже обновили старый резервный узел до более новой версии, сначала необходимо выполнить откат программного обеспечения Apigee на старом резервном узле. Если на старом резервном узле по-прежнему установлена более ранняя версия, вы можете пропустить этот шаг и перейти к шагу 6.
    1. Остановите Postgres на старом резервном узле:
      apigee-service apigee-postgresql stop
      apigee-service edge-postgres-server stop
    2. Удалите Postgres со старого резервного узла:
      apigee-service apigee-postgresql uninstall
      apigee-service edge-postgres-server uninstall
    3. Удалите каталог данных Postgres со старого резервного узла:
      cd /opt/apigee/data/apigee-postgresql/pgdata
      rm -rf *
    4. Скачайте и запустите старую версию загрузчика (для версии Apigee, к которой вы возвращаетесь) на старом резервном узле. Точные шаги могут различаться в зависимости от того, используете ли вы установку через интернет или офлайн-установку. При запуске более старой версии Apigee bootstrap репозитории yum будут настроены с данными более старой версии Apigee.
    5. Настройте компоненты Postgres на старом резервном узле:
      /opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile
    6. Проверьте, что компоненты Postgres на старом резервном узле были возвращены к предыдущей версии:
      apigee-service apigee-postgresql version
      apigee-service edge-postgres-server version
  6. Восстановите старый резервный узел:
    1. Измените файл конфигурации, который вы использовали для установки текущей версии Edge, чтобы указать следующее:
      # IP address of the new master:
      PG_MASTER=new_standby_IP
      # IP address of the old standby node
      PG_STANDBY=old_standby_IP
    2. Удалите каталог данных на старом резервном узле:
      cd /opt/apigee/data/apigee-postgresql/pgdata
      rm -rf *
    3. Настройте старый резервный узел как резервный узел нового основного узла:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
    4. Убедитесь, что Postgres работает на старом резервном узле:
      /opt/apigee/apigee-service/bin/apigee-all status

      Если Postgres не запущен, запустите его:

      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server start
  7. Убедитесь, что новый резервный узел добавлен, просмотрев файл /opt/apigee/apigee-postgresql/conf/pg_hba.conf на новом основном узле.
  8. Чтобы посмотреть текущую аналитику и информацию о группе потребителей, выполните на сервере управления следующую команду:
    curl -u sysAdminEmail:password http://ms_IP:8080/v1/analytics/groups/ax

    Эта команда возвращает название группы аналитики в поле name и название группы потребителей в поле name в разделе consumer-groups. Также возвращаются UUID старых основного и резервного узлов Postgres в полях postgres-server и datastores. Вы должны увидеть выходные данные в следующем формате:

    {
      "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" : {
      }
    }
  9. Получите UUID старого основного узла, выполнив следующую команду curl на старом основном узле:
    curl -u sysAdminEmail:password http://node_IP:8084/v1/servers/self

    В конце выходных данных должен быть указан UUID узла в следующем формате:

    "type" : [ "postgres-server" ],
    "uUID" : "599e8ebf-5d69-4ae4-aa71-154970a8ec75"
  10. Повторите предыдущий шаг, чтобы получить IP-адреса старого резервного узла и нового основного узла.
  11. Удалите старые основные и резервные узлы из группы потребителей:
    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

    где axgroup-001 и consumer-group-001 – названия групп аналитики и потребителей по умолчанию. masterUUID,standbyUUID указаны в том же порядке, в котором они были перечислены выше, когда вы просматривали текущие аналитические данные и информацию о группах потребителей. Возможно, вам придется указать их как standbyUUID,masterUUID.

    Свойство datastores для consumer-groups должно быть пустым.

  12. Удалите старые основной и резервный узлы из группы аналитики:
    curl -u sysAdminEmail:password -X DELETE \
      "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=masterUUID,standbyUUID&type=postgres-server" -v

    Свойство postgres-server в разделе uuids должно быть пустым.

  13. Зарегистрируйте новые основные и резервные узлы PG в группах аналитики и потребителей:
    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
  14. Проверьте группу аналитики:
    curl -u sysAdminEmail:password http://ms_IP:8080/v1/analytics/groups/ax

    UUID новых основного и резервного узлов должны быть указаны в группе аналитики и группе потребителей.

  15. Перезапустите сервер управления Edge:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
  16. Перезапустите все серверы Qpid:
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
  17. Перезапустите все серверы Postgres:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
  18. Проверьте статус репликации, выполнив на обоих серверах следующие скрипты: Система должна показывать одинаковые результаты на обоих серверах, чтобы репликация прошла успешно:

    На новом основном сервере выполните следующие действия:

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

    Убедитесь, что это основной сервер. На старом резервном узле:

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

    Убедитесь, что это резервный сервер.

  19. Повторите предыдущий шаг после выполнения нескольких запросов к API, чтобы убедиться, что узлы синхронизированы.
  20. Выведите из эксплуатации старый основной сервер Postgres, следуя инструкциям в разделе Вывод из эксплуатации узла Postgres.

    Также можно удалить Qpid с прежнего основного узла и установить Qpid на новом основном узле. После удаления Qpid можно деактивировать старый основной узел.

Как выполнить откат обновления LDAP 2.6

В этом разделе приведено подробное пошаговое руководство по откату установки LDAP к предыдущей версии LDAP. Откат необходимо выполнить для всего кластера LDAP. Это можно сделать только с помощью действительной резервной копии LDAP, созданной до обновления.

Основная цель – восстановить весь кластер LDAP до согласованного состояния из известной хорошей резервной копии. Эта процедура одинакова для всех сценариев: с одним сервером, с активным и пассивным серверами и с двумя активными серверами.

Требования и рекомендации

  • Несовместимость резервных копий. Используйте резервную копию более ранней версии LDAP 2.4, которая использовалась с Edge для частного облака 4.52.02 или 4.53.00. Резервная копия должна быть создана до попытки обновления. Резервные копии, созданные после обновления, несовместимы и не могут быть использованы.
  • Время простоя Management API. Во время отката LDAP Management API будут недоступны, что может повлиять на выполнение административных задач. Перед тем как откатывать LDAP, убедитесь, что все серверы управления периферией и интерфейсы Edge UI отключены.
  • Риск потери данных. Если продолжить без совместимой резервной копии, данные могут быть безвозвратно утеряны.
  • Действительная резервная копия. Требуется действительная резервная копия LDAP, созданная до обновления.

Процедура отката

  1. Перед тем как продолжить обновление LDAP, убедитесь, что все серверы управления периферией и интерфейс Edge выключены.
    apigee-service edge-management-server stop
    apigee-service edge-ui stop
  2. Создайте резервную копию существующих данных LDAP (до остановки LDAP)

    Получите общее количество записей для справки со всех серверов LDAP. (Количество записей должно быть одинаковым на всех серверах LDAP.)

          # Note: Replace 'YOUR_PASSWORD' with your current LDAP manager password. 
    ldapsearch -o ldif-wrap=no -b "dc=apigee,dc=com" \ -D "cn=manager,dc=apigee,dc=com" -H ldap://:10389 -LLL -x -w 'YOUR_PASSWORD' | wc -l
  3. Как остановить и удалить новую версию LDAP 2.6

    Остановите сервис apigee-openldap и удалите его конфигурацию и каталоги данных. Это необходимо сделать на всех серверах LDAP, по одному узлу за раз в кластере, чтобы обеспечить согласованность.

    apigee-service apigee-openldap stop
    apigee-service apigee-openldap uninstall
    rm -rf /opt/apigee/data/apigee-openldap/*
  4. Установка старой версии LDAP 2.4
    • Как установить старую версию LDAP
      /opt/apigee/apigee-setup/bin/setup.sh -p ld -f /opt/silent.conf
    • Проверьте версию LDAP
      source ~/.bash_profile
      ldapsearch -VV
      
      #Expected output:
      ldapsearch: @(#) $OpenLDAP: ldapsearch 2.4.46
    • Повторите описанные выше действия для каждого узла LDAP по очереди.
  5. Удаление остаточных данных

    На всех серверах LDAP по очереди остановите недавно установленный сервис и очистите каталог его данных, чтобы подготовиться к восстановлению из резервной копии.

    apigee-service apigee-openldap stop
    rm -rf /opt/apigee/data/apigee-openldap/*
  6. Как восстановить данные LDAP

    Если вы настраиваете один сервер, перейдите сразу к шагу 5б. Если вы настраиваете несколько серверов, перейдите к шагу 5а.

    1. Как определить активный сервер LDAP

      Прежде чем восстанавливать данные LDAP, определите активный сервер (поставщика), выполнив следующую команду:

      grep -i '^olcSyncrepl:' /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase*\ldif
      
      * **Note**:
      * If this command returns output, the server is a passive server. 
      * If it returns no output, the server is the active server.
    2. Восстановите данные LDAP. (Прежде чем восстанавливать данные, убедитесь, что шаг 4 выполнен на всех серверах.)
      • На единственном активном сервере LDAP (определенном на шаге 5а) восстановите резервную копию.
        cd /opt/apigee/backup/openldap
        
        # To restore a specific backup, provide the timestamp as shown below:
        apigee-service apigee-openldap restore 2025.07.28,13.59.00
        # Note: If no timestamp is provided, the latest available backup will be restored by default.
        apigee-service apigee-openldap restore
        
        # It is recommended to specify the backup explicitly to avoid restoring an unintended version.
      • Запустите сервис apigee-openldap.
        apigee-service apigee-openldap start
  7. Запустите оставшиеся серверы LDAP

    Если у вас настроено несколько серверов, запустите службу на каждом из них:

    apigee-service apigee-openldap start
  8. Окончательная проверка
    • На последнем этапе необходимо убедиться, что откат выполнен успешно и данные во всем кластере LDAP согласованы.
    • Выполните команду проверки на всех серверах LDAP. Количество записей должно быть одинаковым на всех серверах и соответствовать количеству, полученному на шаге 1.
      # Note: Replace 'YOUR_PASSWORD' with your current LDAP manager password.
      ldapsearch -o ldif-wrap=no -b "dc=apigee,dc=com" \ -D "cn=manager,dc=apigee,dc=com" -H ldap://:10389 -LLL -x -w 'YOUR_PASSWORD' | wc -l
    • После того как вы убедитесь, что данные верны и согласованы, откат LDAP будет завершен. Теперь вы можете запустить edge-management-server, edge-ui и другие зависимые компоненты в соответствии со стандартной процедурой обновления вашей организации.

Как откатить до предыдущей основной или промежуточной версии

Чтобы выполнить откат к предыдущей основной или дополнительной версии, выполните следующие действия на каждом узле, на котором размещен компонент:

  1. Скачайте файл bootstrap.sh для версии, к которой хотите откатиться:

    • Чтобы выполнить откат до версии 4.52.02, скачайте bootstrap_4.52.02.sh.
  2. Остановите компонент, который нужно откатить:
    1. Чтобы отменить изменения в любом из компонентов с общим кодом на узле, необходимо остановить их все, как показано в следующем примере:
      /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. Чтобы выполнить откат другого компонента на узле, остановите только этот компонент:
      /opt/apigee/apigee-service/bin/apigee-service component stop
  3. Если вы отменяете монетизацию, удалите ее со всех узлов сервера управления и процессора сообщений:
    /opt/apigee/apigee-service/bin/apigee-service edge-mint-gateway uninstall
  4. Удалите компонент, чтобы выполнить откат на узле:
    1. Чтобы выполнить откат любого из компонентов с общим кодом на узле, необходимо удалить их все, удалив группу компонентов edge-gateway и apigee-cassandra-client, как показано в следующем примере:
      /opt/apigee/apigee-service/bin/apigee-service edge-gateway uninstall
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra-client uninstall
    2. Чтобы выполнить откат Nginx, сделайте следующее:
      ###Find the apigee-nginx RPM 
      rpm -qa | grep -i "apigee-nginx"
      
      ###Remove the apigee-nginx RPM
      dnf remove apigee-nginx-1.26.x
      
    3. Чтобы выполнить откат для любого другого компонента на узле, удалите только этот компонент, как показано в следующем примере:
      /opt/apigee/apigee-service/bin/apigee-service component uninstall

      где component – название компонента.

    4. Чтобы выполнить откат Edge Router, необходимо удалить содержимое файла /opt/nginx/conf.d, а также удалить группу компонентов edge-gateway:
      cd /opt/nginx/conf.d
      rm -rf *
  5. Удалите версию 4.53.01 приложения apigee-setup:
    /opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
  6. Установите утилиту apigee-service версии 4.52.02 и ее зависимости. В следующем примере устанавливается версия 4.52.02 приложения apigee-service:
    sudo bash /tmp/bootstrap_4.52.02.sh apigeeuser=uName apigeepassword=pWord

    где uName и pWord – это имя пользователя и пароль, полученные от Apigee. Если вы не укажете pWord, вам будет предложено ввести его.

    Если возникнет ошибка, убедитесь, что на шаге 1 вы скачали файл bootstrap.sh.

  7. Установите apigee-setup:
    /opt/apigee/apigee-service/bin/apigee-service apigee-setup install
  8. Установите более раннюю версию компонента:
    /opt/apigee/apigee-setup/bin/setup.sh -p component -f configFile

    где component – компонент, который нужно установить, а configFile – файл конфигурации для более ранней версии.

  9. Если вы выполняете откат Qpid, очистите iptables:
    sudo iptables -F
  10. Повторите этот процесс для каждого узла, на котором размещен компонент, который вы откатываете.

Как выполнить откат mTLS

Чтобы отменить обновление mTLS, выполните следующие действия на всех хостах:

  1. Остановите Apigee:
    apigee-all stop
  2. Остановить mTLS:
    apigee-service apigee-mtls uninstall
  3. Переустановите mTLS:
    apigee-service apigee-mtls install
    apigee-service apigee-mtls setup -f /opt/silent.conf