Откатить Apigee Edge 4.18.05

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

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

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

  • Версия 4.18.01
  • Версия 4.17.09 *
  • Версия 4.17.05 *

* Для отката с 4.18.05 на 4.17.09 или 4.17.05 необходимо помимо отката компонентов на каждом узле выполнить откат Postgres . Если вы откатитесь к версии 4.18.01, вам не нужно откатывать Postgres, поскольку процесс обновления не включал обновление Postgres.

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

  1. Откат к предыдущей версии функции . Например с 18.04.05 по 18.04.01.
  2. Откатитесь к предыдущей версии обновления в том же выпуске . Например, с 18.05.02 по 18.05.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-сервер)

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

Откат к предыдущей версии функции

Для отката с 4.18.05 на 4.17.09 или 4.17.05 необходимо откатить Postgres помимо отката компонентов на каждом узле. Если вы выполняете откат с версии 4.18.01, вам не нужно откатывать Postgres, поскольку процесс обновления не включал обновление Postgres.

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

  1. Загрузите файл bootstrap.sh для той версии, до которой вы хотите откатиться:

    • Чтобы откатиться на 4.18.01, скачайте bootstrap_4.18.01.sh :
      curl https://software.apigee.com/bootstrap_4.18.01.sh -o /tmp/bootstrap_4.18.01.sh 
    • Чтобы откатиться на 4.17.09, скачайте bootstrap_4.17.09.sh :
      curl https://software.apigee.com/bootstrap_4.17.09.sh -o /tmp/bootstrap_4.17.09.sh 
    • Чтобы откатиться на 4.17.05, скачайте bootstrap_4.17.05.sh :
      curl https://software.apigee.com/bootstrap_4.17.05.sh -o /tmp/bootstrap_4.17.05.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. Удалите версию apigee-setup 4.18.05:
    /opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
  6. Установите версию 4.18.01, 4.17.09 или 4.17.05 утилиты apigee-service и ее зависимости. В следующем примере устанавливается версия 4.17.09 apigee-service :
    sudo bash /tmp/bootstrap_4.17.09.sh apigeeuser=uName apigeepassword=pWord

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

    Если вы получили сообщение об ошибке, убедитесь, что вы загрузили файл bootstrap.sh на шаге 1.

  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. Повторите этот процесс для каждого узла, на котором размещен компонент, откат которого выполняется.

Для отката с 4.18.05 на 4.17.09 или 4.17.05 необходимо откатить Postgres помимо отката компонентов на каждом узле. Если вы выполняете откат с версии 4.18.01, вам не нужно откатывать Postgres, поскольку процесс обновления не включал обновление Postgres.

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

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

  1. Загрузите конкретную версию компонента:
    /opt/apigee/apigee-service/bin/apigee-service component_version install

    Где component_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

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

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

Для отката с 4.18.05 на 4.17.09 или 4.17.05 необходимо откатить Postgres помимо отката компонентов на каждом узле. Если вы выполняете откат с версии 4.18.01, вам не нужно откатывать Postgres, поскольку процесс обновления не включал обновление Postgres.

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

Если вы обновились до 4.18.05 с версии 4.17.05 или 4.17.09, вам необходимо выполнить откат обновления 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. Восстановите старый резервный узел:
    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

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

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