4.18.01 Процесс отката

Edge for Private Cloud v4.18.01

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

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

  1. Откат к более ранней версии. например с 4.18.01 до 4.17.01.
  2. Откат к более ранней версии в том же выпуске.

Ниже описано, как выполнить откат в обоих случаях.

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

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

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

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

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

  • Пять компонентов Edge, перечисленных ниже, используют общий код. Поэтому, чтобы выполнить откат любого из пяти компонентов на узле, необходимо выполнить откат любого из пяти компонентов, установленных на узле. Например, если на узле установлены Management Server, Router и Message Processor, то для отката любого из них необходимо выполнить откат всех трех.

    Вот эти пять компонентов:

    • Сервер управления
    • Маршрутизатор
    • Message Processor
    • Сервер Qpid
    • Сервер Postgres
  • Если вы обновляете Edge 4.16.01, не выполняйте откат Cassandra. This release of Edge contains an updated version of Cassandra. Если вы откатываете какие-либо компоненты, оставьте Cassandra версии 4.18.01.

Откат до версии 4.18.01

В этом разделе описана процедура отката Edge 4.18.01 до предыдущей версии. Этот раздел состоит из двух частей:

  • Откат обновления Postgres
    Последний этап каждой процедуры обновления – обновление узлов Postgres до версии 9.6. Если обновление не удастся, вы можете использовать эту процедуру, чтобы откатить его.
  • Откат всех остальных компонентов Edge
    Используйте эту процедуру для отката любых других компонентов Edge.

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

Чтобы откатить обновление 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. Пересоберите старый резервный узел:
    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

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

      > /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server start
  6. Убедитесь, что новый резервный узел был добавлен, проверив файл /opt/apigee/apigee-postgresql/conf/pg_hba.conf на новом главном узле.
  7. Чтобы посмотреть текущую информацию об аналитике и группе потребителей, выполните на сервере управления следующую команду:
    > 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" : {
      }
    }
  8. Получите UUID-адрес старого главного узла, выполнив на нем следующую команду cURL:
    > curl -u sysAdminEmail:password http://node_IP:8084/v1/servers/self

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

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

  11. Удалите старые основной и резервный узлы из группы аналитики:
    > 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 должно быть пустым.

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

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

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

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

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

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

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

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

  18. Повторите предыдущий шаг после выполнения нескольких запросов к API, чтобы убедиться, что узлы синхронизированы.
  19. Выведите из эксплуатации старый главный узел Postgres, следуя инструкциям в статье Как обновить Apigee Edge 4.16.01/4.16.05 до версии 4.17.09.

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

Удалите Qpid со старого главного узла и установите на новый.

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

  1. Заблокируйте доступ к порту 5672 Qpid на старом главном сервере для Message Processor, выполнив следующую команду на всех Message Processor:
    > iptables -A OUTPUT -p tcp -d 10.233.147.20 --dport 5672 -j DROP
  2. Убедитесь, что очередь сообщений Qpid пуста, выполнив следующую команду: Вы не сможете удалить Qpid, пока не будут обработаны все ожидающие сообщения.
    > qpid-stat -q

    Эта команда показывает таблицу с количеством msg, msgIn, and msgOut. Все сообщения будут обработаны, когда msg=0 и msgIn=msgOut.

  3. Определите UUID сервера Qpid на старом главном сервере, выполнив на нем следующую команду: Сохраните эту информацию, чтобы использовать ее позже:
    > curl -u sysAdminEmail:password http://node_IP::8083/v1/servers/self
  4. Остановите Qpid на старом главном сервере:
    > /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
    > /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd stop
  5. Удалите сервер Qpid:
    > /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server uninstall
    > /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd uninstall
  6. Удалите старый сервер Qpid из групп аналитики и потребителей:
    > curl -u sysAdminEmail:password -X DELETE -H "Content-Type: application/json" -d ''
      "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/consumers/qpid_UUID" -v
    > curl -u sysAdminEmail:password -X DELETE
      "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=qpid_UUID&type=qpid-server" -v
  7. Удалите старый сервер Qpid из Zookeeper:
    > curl -u sysAdminEmail:password -X DELETE
      http://ms_IP:8080/v1/servers/qpid_UUID
  8. Установите Qpid на новый главный сервер:
    > /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile
  9. Определите UUID сервера Qpid на новом главном сервере, выполнив на нем следующую команду: Сохраните эту информацию, чтобы использовать ее позже:
    > curl -u sysAdminEmail:password
      http://node_IP::8083/v1/servers/self
  10. Зарегистрируйте новый сервер Qpid в группах аналитики и потребителей:
    > curl -u sysAdminEmail:password -X POST -H "Content-Type: application/json" -d ''
      "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=qpid_UUID&type=qpid-server" -v
    > curl -u sysAdminEmail:password -X POST -H "Content-Type:application/json" -d ''
      "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/consumers?uuid=qpid_UUID" -v
  11. Перезапустите все процессоры сообщений:
    > /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  12. Чтобы проверить, созданы ли очереди, выполните на новом сервере Qpid следующую команду:
    > qpid-stat -q

    Убедитесь, что значения msg, msgIn и msgOut обновляются по мере того, как сервер Qpid обрабатывает сообщения.

Чтобы выполнить откат отдельных компонентов с версии 4.18.01:

Чтобы выполнить откат, скачайте файл bootstrap.sh для текущей версии Edge:

  • Чтобы вернуться к версии 4.17.09, скачайте bootstrap_4.17.09.sh.
  • Чтобы вернуться к версии 4.17.05, скачайте bootstrap_4.17.05.sh.
  • Чтобы вернуться к версии 4.17.01, скачайте bootstrap_4.17.01.sh.
  • Чтобы вернуться к версии 4.16.09, скачайте bootstrap_4.16.09.sh.
  • Чтобы выполнить откат до версии 4.16.05, скачайте bootstrap_4.16.05.sh.
  • Чтобы вернуться к версии 4.16.01, скачайте bootstrap.sh.

Для каждого узла, на котором размещен компонент, который нужно откатить:

  1. Остановите компонент, чтобы выполнить откат:
    1. Если вы откатываете любой из следующих компонентов на узле, необходимо остановить их все: Management Server, Router, Message Processor, Qpid Server или Postgres Server.
      • > apigee-service edge-management-server stop
      • > apigee-service edge-router stop
      • > apigee-service edge-message-processor stop
      • > apigee-service edge-qpid-server stop
      • > apigee-service edge-postgres-server stop
    2. Если вы откатываете любой другой компонент на узле, остановите только этот компонент:
      • > apigee-service comp stop
  2. Если вы выполняете откат Монетизации, удалите ее со всех узлов Management Server и Message Processor:
    > apigee-service edge-mint-gateway uninstall
  3. Удалите компонент, чтобы выполнить откат на узле:
    1. Если вы откатываете любой из следующих компонентов на узле, удалите их все: Management Server, Router, Message Processor, Qpid Server или Postgres Server.
      > apigee-service edge-gateway uninstall
    2. Если вы откатываете любой другой компонент на узле, удалите только этот компонент:
      > apigee-service comp uninstall
    3. Если вы откатываете маршрутизатор, удалите содержимое /opt/nginx/conf.d:
      > cd /opt/nginx/conf.d
      > rm -rf *
  4. Чтобы выполнить откат компонента:
    1. Удалите версию 4.18.01 apigee-setup:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
    2. Скачайте файл bootstrap.sh для нужного выпуска. Например, для версии 4.16.09:
      > curl https://software.apigee.com/bootstrap_4.16.09.sh -o /tmp/bootstrap_4.16.09.sh 
    3. Установите утилиту apigee-service версии 4.16.01, 4.16.05 или 4.16.09 и зависимости. Пример для версии 4.16.09:
      > sudo bash /tmp/bootstrap_4.16.09.sh apigeeuser=uName apigeepassword=pWord

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

    4. Установите apigee-setup:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-setup install
    5. Установите нужную версию компонента:
      > /opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile

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

    6. Если вы откатываете Qpid, очистите iptables:
      > sudo iptables -F
  5. Чтобы выполнить откат компонента до определенной версии выпуска 4.18.01:
    1. Скачайте нужную версию компонента:
      > /opt/apigee/apigee-service/bin/apigee-service comp-version install

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

      > /opt/apigee/apigee-service/bin/apigee-service edge-ui-4.17.09-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

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

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