Как выполнить откат до версии Apigee Edge 4.52.00

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

Вы можете откатить Edge 4.52.00 до следующих версий Feature Release:

  • Версия 4.51.00

Откат может потребоваться в двух случаях:

  1. Откат к предыдущему выпуску нововведений например с 4.52.00 на 4.51.00.
  2. Откатитесь до предыдущей версии обновления в том же выпуске. Например, с 4.52.00.02 до 4.52.00.01.

Дополнительную информацию можно найти в статье Процесс выпуска Apigee Edge.

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

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

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

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

Указанные ниже компоненты 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.51.00, скачайте bootstrap_4.51.00.sh:
      curl https://software.apigee.com/bootstrap_4.51.00.sh -o /tmp/bootstrap_4.51.00.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. Если вы выполняете откат Монетизации, удалите ее со всех узлов Management Server и Message Processor:
    /opt/apigee/apigee-service/bin/apigee-service edge-mint-gateway uninstall
  4. Удалите компонент, чтобы выполнить откат на узле:
    1. Чтобы выполнить откат любого из компонентов с общим кодом на узле, необходимо удалить их все, удалив группу компонентов edge-gateway, как показано в следующем примере:
      /opt/apigee/apigee-service/bin/apigee-service edge-gateway uninstall
    2. Чтобы выполнить откат любого другого компонента на узле, удалите только этот компонент, как показано в следующем примере:
      /opt/apigee/apigee-service/bin/apigee-service component uninstall

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

    3. Чтобы выполнить откат Edge Router, необходимо удалить содержимое файла /opt/nginx/conf.d, а также удалить группу компонентов edge-gateway.
      cd /opt/nginx/conf.d
      rm -rf *
  5. Удалите версию 4.52.00 приложения apigee-setup:
    /opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
  6. Установите утилиту apigee-service версии 4.51.00 и ее зависимости. В примере ниже устанавливается версия 4.51.00 apigee-service:
    sudo bash /tmp/bootstrap_4.51.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. Повторите эту процедуру для каждого узла, на котором размещен компонент, для которого выполняется откат.

Как выполнить откат к предыдущей версии обновления

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

  1. Скачайте нужную версию компонента:
    /opt/apigee/apigee-service/bin/apigee-service component_version install

    где component_version – компонент и версия обновления, которую нужно установить. Пример:

    /opt/apigee/apigee-service/bin/apigee-service edge-ui-4.51.05-0.0.3749 install

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

    yum --showduplicates list comp

    Пример:

    yum --showduplicates list edge-ui
  2. Установите компонент с помощью apigee-setup:
    /opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile

    Пример:

    /opt/apigee/apigee-setup/bin/setup.sh -p ui -f configFile

    Обратите внимание, что при установке компонента вы указываете только его название, а не версию.

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

Откат обновления Postgres 10.17

Если вы обновились до версии 4.52.00 с версии 4.50.00 или 4.51.00, вам необходимо откатить обновление Postgres в дополнение к компонентам Edge.

Чтобы откатить обновление Postgres при обновлении Postgres в конфигурации master-standby:

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

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

  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 new_standby_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 будут настроены репозитории 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 Management Server:
    /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 вы можете вывести из эксплуатации старый главный узел.

Как выполнить откат 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