Откат Apigee Edge 4.54.00

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

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

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

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

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

Откат компонентов следует выполнять в порядке, обратном их обновлению. Типичный общий порядок отката для Private Cloud 4.54.00 будет выглядеть следующим образом:

  • Откатите Cassandra и Zookeeper.
  • Выполните откат Qpid, других компонентов, связанных с аналитикой, и Postgres.
  • Как вернуться к предыдущему интерфейсу
  • Выполните откат LDAP.
  • Откатите сервер управления.
  • Выполните откат маршрутизаторов и процессоров сообщений.

Например, вы обновили все маршрутизаторы и процессоры сообщений, все серверы управления, LDAP и несколько узлов пользовательского интерфейса до версии 4.54.00 с версии 4.53.00 (или) 4.53.01 и хотите выполнить откат. В этом случае вы:

  • Как выполнить откат узлов обновленного интерфейса
  • Откат узлов LDAP
  • Как поочередно откатить узлы сервера управления
  • Откатите все пакеты RMP по очереди.

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

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

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

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

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

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

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

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

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

Принимая решение об откате, учитывайте следующее:

  • Откат Cassandra во время обновления Cassandra. Если во время обновления Cassandra у вас возникнут проблемы, вы можете выполнить откат. Следуйте стратегиям отката, описанным в этой статье, в зависимости от вашего состояния в процессе обновления.
  • Выполните откат с помощью резервных копий. Резервные копии, созданные в Cassandra 5.0.X, несовместимы с резервными копиями Cassandra 4.0.X. Чтобы выполнить откат Cassandra с помощью восстановления резервной копии, необходимо создать резервные копии Cassandra 4.0.X до попытки обновления.

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

Требования

  • Вы используете кластер Edge для Private Cloud 4.53.00/4.53.01 в нескольких центрах обработки данных.
  • Вы обновляете Cassandra с версии 4.0.X до 5.0.X и столкнулись с проблемами.
  • У вас есть по крайней мере один полностью функционирующий центр обработки данных в кластере, в котором по-прежнему работает более старая версия Cassandra (Cassandra 4.0.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:
        5.0.8: [DC-1-IP1:7000, DC-1-IP2:7000, DC-1-IP3:7000]
        4.0.13: [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 версии 5 в этом центре обработки данных. Прекрати.
    # 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 для Private Cloud 4.53.00/4.53.01.
  5. # Download bootstrap of 4.53.00
    curl https://software.apigee.com/bootstrap_4.53.00.sh -o /tmp/bootstrap_4.53.00.sh -u uName:pWord
    
    # Execute bootstrap of 4.53.00
    sudo bash /tmp/bootstrap_4.53.00.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 4.0.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 с версии 4.0.X до 5.0.X и столкнулись с проблемами.
  2. У вас есть резервные копии для узла, который вы откатываете. Резервная копия была создана до попытки обновления с версии 4.0.X до 5.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.53.00/4.53.01:
    • # Download bootstrap for 4.53.00
      curl https://software.apigee.com/bootstrap_4.53.00.sh -o /tmp/bootstrap_4.53.00.sh -u uName:pWord
      
      # Execute bootstrap for 4.53.00
      sudo bash /tmp/bootstrap_4.53.00.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 4.0.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

Откат

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

  1. Сначала выполните откат на наблюдателях и подписчиках. Информацию о том, как выбрать наблюдателей и подписчиков, можно найти в статье Как определить лидера, подписчиков и наблюдателей.
  2. Скачайте и запустите загрузчик версии, на которую вы хотите вернуться (4.53.00 или 4.53.01). Процесс может различаться в зависимости от того, есть ли у узла внешнее подключение к интернету или вы выполняете офлайн-установку.
  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. После отката всех узлов проверьте состояние кластера и убедитесь, что в нем есть ведущий узел.

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

Подробнее о том, как восстановить данные из резервной копии…

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

Чтобы выполнить откат до предыдущего выпуска, скачайте файл bootstrap.sh для нужной версии. Чтобы выполнить откат до версии 4.53.00/4.53.01, скачайте bootstrap_4.53.00.sh.

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

  1. Остановите существующий брокер Qpid:
    apigee-service apigee-qpidd stop
  2. Заблокируйте входящий трафик на порт брокера 5672 от всех процессоров сообщений, применив брандмауэр. Вы можете применить этот брандмауэр на уровне экземпляра узла Qpid или другого внешнего брандмауэра/сетевого компонента.

    Рекомендуем выполнить то же действие для всех IP-адресов обработчиков сообщений. Например, чтобы с помощью IPTables отклонять запросы, поступающие с IP-адресов Message Processor на узел Qpid через порт 5672, можно использовать следующую команду:

    iptables -A INPUT -p tcp --dport 5672 -s MESSAGE_PROCESSOR_IP -j DROP
  3. Запустите брокер Qpid снова, чтобы удалить существующие сообщения, если они есть:
    apigee-service apigee-qpidd start
  4. Убедитесь, что существующие очереди пусты. Чтобы проверить, войдите на портал управления Qpid:
    http://QPID_NODE_IP:8090
  5. Убедившись, что очереди очищены, остановите и удалите Qpid:
    /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd stop
    /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd uninstall
  6. Удалите каталог данных Qpid:
    rm -r APIGEE_ROOT/data/apigee-qpidd
  7. Переустановите брокер Qpid:
    /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile
  8. После переустановки брокера Qpid удалите настройки брандмауэра и выведите список существующих настроек с помощью следующих команд:
    iptables -F
    iptables -L

Откат Postgres

Чтобы перейти с версии 4.54.00 на версию 4.53.00/4.53.01, необходимо откатить обновление Postgres в дополнение к компонентам Edge.

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

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

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

Подготовка

Прежде чем выполнять откат Postgres 18 до 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
      apigee-service edge-analytics uninstall
    3. Удалите каталог данных Postgres со старого резервного узла:
      cd /opt/apigee/data/apigee-postgresql/pgdata
      rm -rf *
    4. Скачайте и запустите начальную загрузку старой версии (для версии Apigee, к которой вы откатываетесь) на старом резервном узле. Точные шаги могут различаться в зависимости от того, используете ли вы онлайн- или офлайн-установку. При запуске старой версии начальной загрузки Apigee будут настроены репозитории 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.

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

Откатить новый интерфейс Edge

В Apigee Edge для частного облака 4.54.00 классический интерфейс (edge-ui) заменен на новый интерфейс Edge (edge-management-ui). Поскольку в версии 4.54.00 компонент интерфейса изменился, для отката к версии 4.53.00 или 4.53.01 необходимо удалить edge-management-ui и переустановить предыдущий профиль интерфейса.

  • Классический интерфейс (edge-ui). Переустановите профиль ui.
  • Новый интерфейс Edge (edge-ui и edge-management-ui). Переустановите профили ui и ue в соответствующих узлах.

Чтобы откатить интерфейс на узле:

  1. Остановите и удалите New Edge UI версии 4.54.00, а затем установите предыдущую версию, чтобы выполнить откат:
    1. Остановите и удалите New Edge UI версии 4.54.00 (edge-management-ui):
      /opt/apigee/apigee-service/bin/apigee-service edge-management-ui stop
      /opt/apigee/apigee-service/bin/apigee-service edge-management-ui uninstall
      /opt/apigee/apigee-service/bin/apigee-service edge-management-ui-static uninstall
    2. Выполните файл начальной загрузки для Apigee Edge для Private Cloud 4.53.00/4.53.01:
      # Download bootstrap for 4.53.00
      curl https://software.apigee.com/bootstrap_4.53.00.sh -o /tmp/bootstrap_4.53.00.sh -u uName:pWord
      
      # Execute bootstrap for 4.53.00
      sudo bash /tmp/bootstrap_4.53.00.sh apigeeuser=uName apigeepassword=pWord
    3. Откат apigee-setup с версии 4.54.00 до предыдущей:
      # Uninstall apigee-setup
      /opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
      
      # Install apigee-setup
      /opt/apigee/apigee-service/bin/apigee-service apigee-setup install
  2. Как восстановить конфигурации интерфейса версий 4.53.00 и 4.53.01
    • Если вы создали резервную копию файла конфигурации для автоматической установки из версии 4.53.00 или 4.53.01, используйте ее для отката. В противном случае в файле конфигурации версии 4.54.00 восстановите или раскомментируйте свойства интерфейса версии 4.53.00 или 4.53.01, которые были удалены или закомментированы во время обновления. Подробнее об обновлении интерфейса…
    • Если файл /opt/apigee/customer/application/ui.properties был удален во время обновления, восстановите его из каталога резервных копий:
      cp -rf /opt/apigee/backup/ui/customer/application/ui.properties /opt/apigee/customer/application/
      chown apigee:apigee /opt/apigee/customer/application/ui.properties
  3. Как переустановить и настроить предыдущую версию интерфейса
    • Вернуться к классическому интерфейсу (edge-ui):
      1. Установите и настройте классический интерфейс (для базовой аутентификации дополнительные действия не требуются):
        /opt/apigee/apigee-setup/bin/setup.sh -p ui -f configFile
      2. Если SSO включена, настройте SSO в классическом интерфейсе (сначала убедитесь, что выполняется apigee-sso):
        /opt/apigee/apigee-service/bin/apigee-service edge-ui configure-sso -f configFile
    • Как вернуться к версии 4.53.00 или 4.53.01 нового интерфейса Edge (edge-management-ui и Shoehorn edge-ui)
      1. Убедитесь, что в файле конфигурации без вывода сообщений задан параметр EDGEUI_ENABLE_UNIFIED_UI=y, а затем установите и настройте профили ui и ue:
        /opt/apigee/apigee-setup/bin/setup.sh -p ui -f configFile
        /opt/apigee/apigee-setup/bin/setup.sh -p ue -f configFile
      2. Если система единого входа включена, настройте ее для обоих компонентов пользовательского интерфейса (сначала убедитесь, что apigee-sso работает):
        /opt/apigee/apigee-service/bin/apigee-service edge-ui configure-sso -f configFile
        /opt/apigee/apigee-service/bin/apigee-service edge-management-ui configure-sso -f configFile
  4. Проверьте статус и версию интерфейса после отката:
    • Для классического интерфейса (edge-ui):
      /opt/apigee/apigee-service/bin/apigee-service edge-ui status
      /opt/apigee/apigee-service/bin/apigee-service edge-ui version
    • Для нового интерфейса Edge (edge-management-ui):
      /opt/apigee/apigee-service/bin/apigee-service edge-management-ui status
      /opt/apigee/apigee-service/bin/apigee-service edge-management-ui version

Откат OpenLDAP

В этом разделе приведены пошаговые инструкции по откату Symas OpenLDAP 2.6.10 в Edge for Private Cloud 4.54.00 до OpenLDAP 2.4.46 (Edge for Private Cloud 4.53.00) или Symas OpenLDAP 2.6.7 (Edge for Private Cloud 4.53.01). Откат необходимо выполнить для всего кластера LDAP, используя действительную резервную копию LDAP, созданную до обновления.

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

Подготовка

  • Несовместимость резервной копии. Используйте резервную копию, созданную до обновления OpenLDAP 2.4.46 (Edge для Private Cloud 4.53.00) или Symas OpenLDAP 2.6.7 (Edge для Private Cloud 4.53.01) с помощью apigee-service apigee-openldap backup до попытки обновления. Резервные копии, созданные после обновления, несовместимы и не могут быть использованы.
  • Недоступность Management API. Во время отката LDAP Management API будет недоступен, что может повлиять на выполнение административных задач. Прежде чем выполнять откат LDAP, закройте все экземпляры edge-management-server и edge-ui.
  • Риск потери данных. Если продолжить без совместимой резервной копии, данные могут быть безвозвратно утеряны.
  • Действительная резервная копия. Требуется действительная резервная копия LDAP, созданная до обновления.
  • Резервные копии файлов silent.conf. Сохраните резервные копии файлов silent.conf из предыдущей и текущей версий, чтобы избежать путаницы в конфигурации при обновлении и откате.
  • Последовательность отката. Прежде чем выполнять откат OpenLDAP, выполните процедуры отката для Cassandra, ZooKeeper, Qpid, PostgreSQL, apigee-sso и Edge UI.

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

  1. Остановите сервер управления и интерфейс. Прежде чем откатывать LDAP, остановите все экземпляры edge-management-server и edge-ui.
    apigee-service edge-management-server stop
    apigee-service edge-ui stop
  2. Запишите текущее количество записей LDAP (до остановки LDAP). Получите общее количество записей для справки со всех серверов LDAP, заменив YOUR_PASSWORD текущим паролем менеджера 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.46 или 2.6.7:
    • Установите старую версию LDAP:
      /opt/apigee/apigee-setup/bin/setup.sh -p ld -f /opt/silent.conf
    • Проверьте версию LDAP:
      source ~/.bash_profile
      ldapsearch -VV
      
      # Expected output if rolled back to 4.53.00:
      ldapsearch: @(#) $OpenLDAP: ldapsearch 2.4.46
      
      # Expected output if rolled back to 4.53.01:
      ldapsearch: @(#) $OpenLDAP: ldapsearch 2.6.7
    • Повторите описанные выше действия для каждого узла LDAP по очереди.
  5. Удалите остаточные данные. На всех серверах LDAP по очереди остановите только что установленный сервис и очистите его каталог данных, чтобы подготовиться к восстановлению из резервной копии.
    apigee-service apigee-openldap stop
    rm -rf /opt/apigee/data/apigee-openldap/*
  6. Восстановите данные LDAP. Если у вас один сервер, перейдите к шагу 6б. Если у вас несколько серверов, перейдите к шагу 6а.
    1. Определите активный сервер LDAP. Перед восстановлением данных LDAP определите активный сервер (поставщика), выполнив следующую команду:
      grep -i '^olcSyncrepl:' /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase*.ldif
    2. Восстановите данные LDAP (перед этим убедитесь, что шаг 5 выполнен на всех серверах):
      • На единственном или активном сервере LDAP (определенном на шаге 6а) перейдите в каталог резервных копий и восстановите резервную копию, созданную до обновления (например, 2025.07.28,13.59.00, или опустите временную метку, если резервная копия, созданная до обновления, является последней резервной копией в каталоге):
        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. Если у вас несколько серверов LDAP, запустите сервис на каждом из них:
    apigee-service apigee-openldap start
  8. Окончательная проверка:
    • Убедитесь, что откат выполнен успешно и данные согласованы во всем кластере LDAP.
    • Выполните команду проверки на всех серверах LDAP, заменив YOUR_PASSWORD текущим паролем администратора LDAP. Количество записей должно быть одинаковым на всех серверах и соответствовать количеству, полученному на шаге 2:
      # 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
    • Убедившись, что данные верны и согласованы, запустите edge-management-server, edge-ui и другие зависимые компоненты в соответствии со стандартной процедурой вашей организации.

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

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

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

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

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

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

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

    • Чтобы вернуться к версии 4.53.00/4.53.01, скачайте bootstrap_4.53.00.sh/bootstrap_4.53.01.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.30.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.54.00 приложения "apigee-setup":
    /opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
  6. Установите утилиту apigee-service версии 4.53.00 и ее зависимости. В примере ниже устанавливается версия 4.53.00 apigee-service:
    sudo bash /tmp/bootstrap_4.53.00.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