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

Edge для частного облака v4.18.01

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

Существует два сценария, в которых может потребоваться выполнить откат:

  1. Откат к более старой версии. Например с 18.04.01 по 17.04.01.
  2. Откат к более старой версии в том же выпуске.

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

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

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

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

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

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

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

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

    • Сервер управления
    • Маршрутизатор
    • Процессор сообщений
    • Qpid-сервер
    • Постгрес-сервер
  • Если вы обновляетесь с Edge 4.16.01 , не делайте откат Cassandra. Этот выпуск Edge содержит обновленную версию Cassandra. Если вы выполняете откат каких-либо компонентов, оставьте Cassandra на версии 4.18.01.

Откат 4.18.01

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

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

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

Чтобы откатить обновление 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. Восстановите старый резервный узел:
    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. Перезапустите пограничный сервер управления:
    > /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 со старого мастера и установите Qpid на новый мастер.

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

  1. Заблокируйте доступ к порту Qpid 5672 на старом главном устройстве от доступа процессоров сообщений, выполнив следующую команду на всех процессорах сообщений:
    > 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

    Убедитесь, что вы видите сообщение, сообщениевход и сообщениевыход обновляется по мере обработки сообщений сервером 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. Если вы выполняете откат любого из следующих компонентов на узле, вы должны остановить их все: сервер управления, маршрутизатор, процессор сообщений, сервер Qpid или сервер Postgres:
      • > 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. Если вы выполняете откат монетизации, удалите ее со всех узлов сервера управления и процессора сообщений:
    > apigee-service edge-mint-gateway uninstall
  3. Удалите компонент для отката на узле:
    1. Если вы выполняете откат любого из следующих компонентов на узле, удалите их все: сервер управления, маршрутизатор, процессор сообщений, сервер Qpid или сервер Postgres:
      > apigee-service edge-gateway uninstall
    2. Если вы выполняете откат любого другого компонента на узле, удалите только этот компонент:
      > apigee-service comp uninstall
    3. Если вы откатываете Маршрутизатор , то вам придется удалить содержимое /opt/nginx/conf.d :
      > cd /opt/nginx/conf.d
      > rm -rf *
  4. Чтобы откатить компонент:
    1. Удалите версию apigee-setup 4.18.01
      > /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 .