Edge for Private Cloud v4.18.01
Если во время обновления до Edge 4.18.01 произойдет ошибка, вы можете откатить компонент, который ее вызвал, и повторить попытку. Например, если обновление до Postgres 9.6 не удалось, вы можете откатить только узлы Postgres и повторить попытку.
Откат может потребоваться в двух случаях:
- Откат к более ранней версии. например с 4.18.01 до 4.17.01.
- Откат к более ранней версии в том же выпуске.
Ниже описано, как выполнить откат в обоих случаях.
Кто может выполнить откат
Пользователь, выполняющий откат, должен быть тем же пользователем, который изначально обновил 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.
- Зарегистрируйте новые основной и резервный узлы в группах аналитики и потребителей.
После завершения отката старый главный узел больше не понадобится. После этого вы можете вывести из эксплуатации старый главный узел.
- Убедитесь, что новый резервный узел 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 новых основных и резервных узлов, перечисленных в группе аналитики и группе потребителей.
- Перезапустите Edge Management Server:
> /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 со старого главного узла и установить его на новый, выполните следующие действия:
- Заблокируйте доступ к порту 5672 Qpid на старом главном сервере для Message Processor, выполнив следующую команду на всех Message Processor:
> 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
Убедитесь, что значения
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.
Для каждого узла, на котором размещен компонент, который нужно откатить:
- Остановите компонент, чтобы выполнить откат:
- Если вы откатываете любой из следующих компонентов на узле, необходимо остановить их все: 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
- Если вы откатываете любой другой компонент на узле, остановите только этот компонент:
> apigee-service comp stop
- Если вы откатываете любой из следующих компонентов на узле, необходимо остановить их все: Management Server, Router, Message Processor, Qpid Server или Postgres Server.
- Если вы выполняете откат Монетизации, удалите ее со всех узлов Management Server и Message Processor:
> apigee-service edge-mint-gateway uninstall
- Удалите компонент, чтобы выполнить откат на узле:
- Если вы откатываете любой из следующих компонентов на узле, удалите их все: Management Server, Router, Message Processor, Qpid Server или Postgres Server.
> apigee-service edge-gateway uninstall
- Если вы откатываете любой другой компонент на узле, удалите только этот компонент:
> apigee-service comp uninstall
- Если вы откатываете маршрутизатор, удалите содержимое
/opt/nginx/conf.d:> cd /opt/nginx/conf.d > rm -rf *
- Если вы откатываете любой из следующих компонентов на узле, удалите их все: Management Server, Router, Message Processor, Qpid Server или Postgres Server.
-
Чтобы выполнить откат компонента:
- Удалите версию 4.18.01
apigee-setup:> /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
- Чтобы выполнить откат компонента до определенной версии выпуска 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.