Edge для частного облака v4.18.01
В случае возникновения ошибки во время обновления до Edge 4.18.01 вы можете откатить компонент, вызвавший ошибку, а затем повторить попытку обновления. Например, если обновление до Postgres 9.6 завершится неудачно, вы можете выполнить откат только узлов Postgres и повторить попытку обновления.
Существует два сценария, в которых может потребоваться выполнить откат:
- Откат к более старой версии. Например с 18.04.01 по 17.04.01.
- Откат к более старой версии в том же выпуске.
Используйте описанную ниже процедуру, чтобы выполнить откат для обоих сценариев.
Кто может выполнить откат
Пользователь, выполняющий откат, должен быть тем же пользователем, который первоначально обновил 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.
- Зарегистрируйте новые главный и резервный узлы в группах аналитики и потребителей.
Когда вы закончите откат, старый главный узел больше не понадобится. Затем вы можете вывести из эксплуатации старый главный узел.
- Убедитесь, что новый резервный узел Postgres запущен:
> /opt/apigee/apigee-service/bin/apigee-all status
Если Postgres не запущен, запустите его:
> /opt/apigee/apigee-service/bin/apigee-all start
- Убедитесь, что 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
- Если установлен, запустите Qpid на старом резервном узле:
> /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server start
- Продвиньте новый резервный узел в качестве главного узла Postgres:
- Сделайте новый резервный узел новым главным :
> apigee-service apigee-postgresql promote-standby-to-master new_standby_IP
При появлении запроса введите пароль Postgres для пользователя «apigee», который по умолчанию — «postgres».
- Отредактируйте файл конфигурации, который вы использовали для установки текущей версии Edge, указав следующее:
# IP address of the new master: PG_MASTER=new_standby_IP # IP address of the old standby node PG_STANDBY=old_standby_IP
- Настройте новый мастер :
> /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFile
- Сделайте новый резервный узел новым главным :
- Восстановите старый резервный узел:
- Отредактируйте файл конфигурации, который вы использовали для установки текущей версии Edge, указав следующее:
# IP address of the new master: PG_MASTER=new_standby_IP # IP address of the old standby node PG_STANDBY=old_standby_IP
- Удалите каталог данных на старом резервном узле:
> cd /opt/apigee/data/apigee-postgresql/pgdata > rm -rf *
- Переконфигурируйте старый резервный узел как резервный узел нового ведущего узла:
> /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
- Убедитесь, что Postgres работает на старом резервном узле:
> /opt/apigee/apigee-service/bin/apigee-all status
Если он не запущен, запустите его:
> /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server start
- Отредактируйте файл конфигурации, который вы использовали для установки текущей версии Edge, указав следующее:
- Убедитесь, что новый резервный узел добавлен, просмотрев файл
/opt/apigee/apigee-postgresql/conf/pg_hba.conf
на новом главном узле. - Просмотрите текущую аналитику и информацию о группах потребителей, выполнив следующую команду на сервере управления:
> 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" : { } }
- Получите адрес UUID старого главного узла, выполнив следующую команду cURL на старом главном узле:
> curl -u sysAdminEmail:password http://node_IP:8084/v1/servers/self
В конце вывода вы должны увидеть UUID узла в форме:
"type" : [ "postgres-server" ], "uUID" : "599e8ebf-5d69-4ae4-aa71-154970a8ec75"
- Повторите предыдущий шаг, чтобы получить IP-адреса старого резервного узла и нового главного узла.
- Удалите старые главные и резервные узлы из группы потребителей:
> 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
теперь должно быть пустым. - Удалите старые главный и резервный узлы из группы аналитики:
> 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
теперь должно быть пустым. - Зарегистрируйте новые главные и резервные узлы 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
- Подтвердите группу аналитики:
> curl -u sysAdminEmail:password http://ms_IP:8080/v1/analytics/groups/ax
Вы должны увидеть UUID новых главных и резервных узлов, перечисленных в группе аналитики и группе потребителей.
- Перезапустите пограничный сервер управления:
> /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
- Перезапустите все серверы Qpid:
> /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
- Перезапустите все серверы Postgres:
> /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
- Проверьте состояние репликации, выполнив следующие сценарии на обоих серверах. Система должна отображать одинаковые результаты на обоих серверах, чтобы гарантировать успешную репликацию:
На новом мастере запустите:
> /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
Убедитесь, что он говорит, что он является мастером. На старом резервном узле:
> /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby
Убедитесь, что он говорит, что это режим ожидания.
- Повторите предыдущий шаг после нескольких запросов API, чтобы убедиться, что узлы синхронизированы.
- Выведите из эксплуатации старый мастер Postgres, используя процедуру, описанную в разделе Обновление Apigee Edge с 4.16.01/4.16.05 до 4.17.09 .
Альтернативно вы можете удалить Qpid со старого главного узла и установить Qpid на новом главном узле, как описано ниже. После удаления Qpid вы можете вывести из эксплуатации старый главный узел.
Удалите Qpid со старого мастера и установите Qpid на новый мастер.
Используйте следующую процедуру, чтобы удалить Qpid со старого мастера и установить его на новый мастер:
- Заблокируйте доступ к порту Qpid 5672 на старом главном устройстве от доступа процессоров сообщений, выполнив следующую команду на всех процессорах сообщений:
> iptables -A OUTPUT -p tcp -d 10.233.147.20 --dport 5672 -j DROP
- Убедитесь, что очередь сообщений Qpid пуста, выполнив следующую команду. Вы не можете удалить Qpid, пока он не обработает все ожидающие сообщения:
> qpid-stat -q
Эта команда отображает таблицу, содержащую количество сообщений
msg, msgIn, and msgOut
. Все сообщения будут обработаны, когдаmsg=0
иmsgIn=msgOut
. - Определите UUID сервера Qpid на старом мастере, выполнив на старом мастере следующую команду. Сохраните эту информацию для дальнейшего использования в процедуре:
> curl -u sysAdminEmail:password http://node_IP::8083/v1/servers/self
- Остановите Qpid на старом мастере:
> /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop > /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd stop
- Удалите сервер Qpid:
> /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server uninstall > /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd uninstall
- Удалите старый сервер 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
- Удалите старый сервер Qpid из Zookeeper:
> curl -u sysAdminEmail:password -X DELETE http://ms_IP:8080/v1/servers/qpid_UUID
- Установите Qpid на новый мастер:
> /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile
- Определите UUID сервера Qpid на новом ведущем устройстве, выполнив на новом ведущем устройстве следующую команду. Сохраните эту информацию для дальнейшего использования в процедуре:
> curl -u sysAdminEmail:password http://node_IP::8083/v1/servers/self
- Зарегистрируйте новый сервер 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
- Перезапустите все процессоры сообщений:
> /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Запустите следующую команду на новом сервере 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
Для каждого узла, на котором размещен компонент для отката:
- Остановите компонент для отката:
- Если вы выполняете откат любого из следующих компонентов на узле, вы должны остановить их все: сервер управления, маршрутизатор, процессор сообщений, сервер 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
- Если вы выполняете откат любого другого компонента на узле, остановите только этот компонент:
> apigee-service comp stop
- Если вы выполняете откат любого из следующих компонентов на узле, вы должны остановить их все: сервер управления, маршрутизатор, процессор сообщений, сервер Qpid или сервер Postgres:
- Если вы выполняете откат монетизации, удалите ее со всех узлов сервера управления и процессора сообщений:
> apigee-service edge-mint-gateway uninstall
- Удалите компонент для отката на узле:
- Если вы выполняете откат любого из следующих компонентов на узле, удалите их все: сервер управления, маршрутизатор, процессор сообщений, сервер Qpid или сервер Postgres:
> apigee-service edge-gateway uninstall
- Если вы выполняете откат любого другого компонента на узле, удалите только этот компонент:
> apigee-service comp uninstall
- Если вы откатываете Router , то вам придется удалить содержимое
/opt/nginx/conf.d
:> cd /opt/nginx/conf.d > rm -rf *
- Если вы выполняете откат любого из следующих компонентов на узле, удалите их все: сервер управления, маршрутизатор, процессор сообщений, сервер Qpid или сервер Postgres:
- Чтобы откатить компонент:
- Удалите версию
apigee-setup
4.18.01:> /opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
- Загрузите bootstrap.sh для нужной версии: Например, для 4.16.09 :
> curl https://software.apigee.com/bootstrap_4.16.09.sh -o /tmp/bootstrap_4.16.09.sh
- Установите утилиту
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 , вам будет предложено ввести его.
- Установите
apigee-setup
:> /opt/apigee/apigee-service/bin/apigee-service apigee-setup install
- Установите нужную версию компонента:
> /opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile
где comp — это компонент для установки, а configFile — ваш файл конфигурации для нужной версии.
- Если вы откатываете Qpid, очистите iptables:
> sudo iptables -F
- Удалите версию
- Чтобы откатить компонент до конкретной версии релиза 4.18.01:
- Загрузите конкретную версию компонента:
> /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
- Используйте
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 .