Edge for Private Cloud версии 4.17.05
Если во время обновления до Edge 4.17.05 произойдет ошибка, вы можете откатить компонент, который ее вызвал, и повторить попытку. Например, если обновление до Postgres 9.4 не удалось, вы можете откатить только узлы Postgres и повторить попытку.
Откат может потребоваться в двух случаях:
- Откат к более ранней версии. например с 4.17.05 на 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.17.05.
Откат до версии 4.17.05
В этом разделе описывается процедура отката Edge 4.17.05 до предыдущей версии. Этот раздел состоит из двух частей:
- Если вы выполняете обновление только с версии 4.16.01 или 4.16.05 – откат обновления Postgres до версии 9.4
Последний этап каждой процедуры обновления с версии 4.16.01 или 4.16.05 – обновление узлов Postgres до версии 9.4. Если обновление не удастся, вы сможете выполнить откат, следуя инструкциям ниже. - Откат всех остальных компонентов Edge
Используйте эту процедуру для отката любых других компонентов Edge.
Чтобы откатить обновление Postgres 9.4:
Чтобы откатить обновление 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, а не Qpid. - Сделайте новый резервный узел основным узлом 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-адрес нового головного экземпляра:
PG_MASTER=new_standby_IP
# IP-адрес старого резервного узла
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
Если Postgres не работает, запустите его:
> /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"
Примечание. Сервис edge-postgres-server должен быть запущен. Если сервер Postgres не запущен, вы можете выполнить следующую команду на сервере управления, чтобы определить UUID:
> curl -u sysAdminEmail:password http://<ms_IP>:8080/v1/servers?pod=analytics
В выходных данных этой команды будет указан UUID для IP-адреса каждого узла Postgres. - Повторите предыдущий шаг, чтобы получить 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.05.
Примечание. Если на старом главном узле работал Qpid, вы можете оставить этот сервер для работы Qpid. Убедитесь, что она запущена. Если нет, запустите его:
> /opt/apigee/apigee-service/bin/apigee-service edge-management-server start
Вы также можете удалить 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 и 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.17.05,
Чтобы выполнить откат, скачайте файл bootstrap.sh для текущей версии Edge:
- Чтобы выполнить откат до версии 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.
- Если вы выполняете откат Monetization, удалите его со всех узлов 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.17.05 apigee-setup:
> /opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall - Скачайте файл bootstrap.sh для выпуска 4.16.01, 4.16.05, 4.16.09 или 4.17.01.
Пример для выпуска 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, вам будет предложено ввести его. - Установите версию 4.16.01, 4.16.05 или 4.16.09 утилиты apigee-setup:
> /opt/apigee/apigee-service/bin/apigee-service apigee-setup install - Установите версию 4.16.01, 4.16.05, 4.16.09 или 4.17.01 компонента:
> /opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile
где comp – компонент, который нужно установить, а configFile – файл конфигурации версии 4.16.01, 4.16.05 или 4.16.09. - Если вы выполняете откат Qpid, очистите iptables:
> sudo iptables -F
- Удалите версию 4.17.05 apigee-setup:
-
Чтобы выполнить откат компонента до определенной версии выпуска 4.17.05, сделайте следующее:
- Скачайте определенную версию компонента:
> /opt/apigee/apigee-service/bin/apigee-service comp-version install
где comp-version – компонент и версия, которые нужно установить. Пример:
> /opt/apigee/apigee-service/bin/apigee-service edge-ui-4.17.05-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.