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

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

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

  • Версия 4.52.00
  • Версия 4.51.00

Вы можете выполнить откат в двух случаях:

  1. Выполнить откат до предыдущей основной или дополнительной версии. Например, с 4.52.01 до 4.52.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 (процессор сообщений)
  • edge-router (маршрутизатор)
  • edge-postgres-server (сервер Postgres)
  • edge-qpid-server (сервер Qpid)

Например, если на узле установлены сервер управления, маршрутизатор и 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. Если вы отменяете монетизацию, удалите ее со всех узлов сервера управления и процессора сообщений:
    /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.01 приложения "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.50.00 или 4.51.00 до 4.52.01, вам нужно будет откатить обновление Postgres в дополнение к компонентам Edge.

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

  • Сделайте новый резервный узел основным узлом 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 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 можно деактивировать старый основной узел.

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